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