Bonjour,
J'ai un soucis,
Je souhaite pouvoir modifier des données dans ma base "excel"(version 2000 grâce à la macro suivante:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Sub modifEnregistrement(SqlStr As String, ParamArray PrmLst() As Variant)
Dim Conn As Connection, Rst As New ADODB.Recordset
Dim B As Integer, A As Integer, rg As Range, Fichier As String
Fichier = "" & ThisWorkbook.Path & "\Base\Base.xls"
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"""
'Fusion entre la chaîne et les paramètres
x = SqlStr
For i = 0 To UBound(PrmLst)
x = Replace(x, "%" & (i + 1) & "%", "" & PrmLst(i))
Next i
Rst.Open x, Conn, _
adOpenKeyset, adLockOptimistic
Rst.Update
Rst.Close: Conn.Close
Set Rst = Nothing
Set Conn = Nothing
End Sub |
mais quand je fais un test avec :
modifEnregistrement "DELETE FROM [SALARIE$] WHERE id_salarie=%1%", 1
ça ne fonctionne pas.
J'obtiens le message d'erreur suivant: "erreur d'éxécution -2147217904(80040e10) Aucune valeur donnée pour un ou plusieurs des paramètres requis"
Je ne comprends pas.
Pouvez-vous m'aider??
Merci d'avance.
Partager