Bonjour
Voila mon soucis :
G une base Access créer sous 97 et je dois l utiliser avec VBA 6.3
Je voudrais savoir comment faire la connection a la base de données car mon fichier plante :
Voila mon code :
Sub COdispatcher()
Dim colCOd As Integer 'N° de la colonne pour la feuille COdispatcher
Dim ligdmh As Integer 'N° de la colonne pour la feuille FamilleCO
Dim i As Integer
Dim a As String
colCOd = 3
While (Not (IsEmpty(Worksheets("COdispatcher").Cells(8, colCOd))))
'Entrée des heures + Msg si la famille existe pas
i = 8
While (Not (IsEmpty(Worksheets("COdispatcher").Cells(i, colCOd))))
Worksheets("COdispatcher").Cells(i, colCOd + 1).ClearContents
ligdmh = 7
While (Not (IsEmpty(Worksheets("familleRequete").Cells(ligdmh, 3))) And Worksheets("familleRequete").Cells(ligdmh, 3) <> Worksheets("COdispatcher").Cells(i, colCOd))
ligdmh = ligdmh + 1
Wend
If (Not (IsEmpty(Worksheets("familleRequete").Cells(ligdmh, 3)))) Then
Worksheets("COdispatcher").Cells(i, colCOd + 1) = Worksheets("familleRequete").Cells(ligdmh, 4)
Else
MsgBox ("ATTENTION La famille " & Worksheets("COdispatcher").Cells(i, colCOd) & " n'existe pas")
End If
i = i + 1
Wend
'Requete pour le CO
a = "select sum(" & Range("Parametre!E11") & ") from " & Range("Parametre!D7") & " where " & Range("Parametre!D11") & " like '" & Worksheets("COdispatcher").Cells(7, colCOd) & "';"
Sheets("COdispatcher").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=MS Access 97 Database;DBQ=" & Range("Parametre!D6") & ";DefaultDir="chemin";DriverId=281;FIL", _
Destination:=Worksheets("COdispatcher").Cells(7, colCOd + 2), Sql:=a) 'emplacement du resultat
.Sql = a
.FieldNames = False 'Nom des champs de la BD
.RefreshStyle = xldeleteEntireRows ' Pour l insertion des nouvelles données
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = False 'surement a laisser
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With
'Calcul de la somme
Worksheets("COdispatcher").Cells(7, colCOd + 1) = "=SUM(R[1]C:R[65000]C)"
'Calcul des Heures / Famille
i = 8
While (Not (IsEmpty(Worksheets("COdispatcher").Cells(i, colCOd))))
Worksheets("Codispatcher").Cells(i, colCOd + 2) = "=R[-" & i - 8 + 1 & "]C* RC[-1]/R[-" & i - 8 + 1 & "]C[-1]"
i = i + 1
Wend
colCOd = colCOd + 3
Wend
End Sub
Est ce que l appel de la connection a la base de données se fait de cette façon???
j en peu plus ca fait une semaine que je cherche!!!!!
Merci pour tout