Bonjour à tous,
Une fois de plus je fais appel à l'aide du forum
Je souhaite faire une update d'une table Access à partir d'Excel.
La démarche du code :
- Prendre chaque ligne de mon fichier Excel
- Retrouver pour chaque ligne l'enregistrement correspondant dans ma table Access
- Mettre à jour les données liées à cet enregistrement
Je me suis dis, une petite UPDATE ... SET ... WHERE et le tour est joué, mais le message d'erreur suivant apparaît :
Erreur d'execution [Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent).
Voci mon code :
ChDir ActiveWorkbook.Path
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=LicenseData2007.mdb"
Dim rs As New ADODB.Recordset
rs.Open "licensor", cnn, adOpenKeyset, adLockOptimistic
Dim SQL As String
Dim str1 As String
str1 = Sheets("ExportToAccess").Range("G5")
Dim str2 As String
str2 = Sheets("ExportToAccess").Range("B5")
Dim Plage As Range
Dim Array1 As Variant
Dim x As Variant
Set Plage = Worksheets("ExportToAccess").Range("A6").CurrentRegion.Offset(1, 0)
Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
Plage.Select
Array1 = Plage.Value
For x = 1 To UBound(Array1, 1)
If rs.Fields("12NC").Value = Array1(x, 2) Then
SQL = "UPDATE licensor SET " & str1 & " ='" & Array1(x, 7) & "' WHERE " & str2 & " =" & Array1(x, 2) & " "
cnn.Execute SQL
End If
Next
cnn.Close
Merci par avance pour votre aide.