Bonjour,
J'ai suivis ce tuto : http://silkyroad.developpez.com/VBA/ClasseursFermes/ IV-B. Ajouter un enregistrement
J'ai crée le fichier excel c:\Base.xls qui est vierge mais quand j'exécute la macro je me heurte à un message d'erreur :
Erreur d'éxecution '-2147217900 (80040e14)' :
[Microsoft] [Pilote ODBC Excel] Le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination
il me met en jaune le Cn.Execute strSQL
Voila la macro que j'essaie d'utiliser :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34
35
36
37 Sub ajoutEnregistrement() Dim Cn As ADODB.Connection Dim Fichier As String, Feuille As String, strSQL As String Dim LaDate As Date Dim PrixUnit As Integer Dim leNom As String, lePrenom As String Fichier = "C:\Base.xls" Feuille = "Feuil1" 'Les données à insérer: LaDate = CDate("26/05/2006") leNom = "NomTest" lePrenom = "PrenomTest" PrixUnit = 40 Set Cn = New ADODB.Connection With Cn .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & Fichier & "; ReadOnly=False;" .Open End With 'Les données doivent être indiquées dans le même ordre que les champs dans la base de données. strSQL = "INSERT INTO [" & Feuille & "$] " _ & "VALUES (#" & LaDate & "#, " & _ "'" & leNom & "', " & _ "'" & lePrenom & "', " & _ PrixUnit & ")" MsgBox strSQL Cn.Execute strSQL Cn.Close Set Cn = Nothing End Sub
Avez vous quelques conseils à me donner pour faire marcher cette macro ? dois-je crée des champs dans le fichier Base.xls ? et si oui les quelles s'il vous plait ?
En vous remerciant.
Cordialement,
Partager