Bonjour,
Je dois enregistrer un ensemble de ligne une par une dans un fichier xls. J'ai donc utilisé le code suivant dispo sur le net (merci à son auteur) :
J'ai bien un fichier excel, dont voici une capture d'écran :
Code : 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 Sub InsertRecord(ByVal nom As String, ByVal prenom As String, ByVal age As Integer) Dim Cnx As ADODB.Connection Dim fichier As String, Feuille As String, strSQL As String fichier = "d:\arboserveur\recapitulatif_erreurs.xls" 'chemin complet du fichier fermé Feuille = "Feuil1" 'Onglet où les données doivent être insérées Set Cnx = New ADODB.Connection With Cnx .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 ( '" & nom & "', '" & prenom & "', " & age & ")" Cnx.Execute strSQL Cnx.Close Set Cnx = Nothing End Sub
Colonne 1 en text
Colonne 2 en text
Colonne 3 en numérique
Lors ce que je tente d'enregistrer en appelant la fonction d'execution de la requête j'ai le message suivant :
"ODBC EXCEL : le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination"
Je pense que mon erreur est toute bête, mais après beaucoup de recherches, j'arrive pas à trouver :/
Merci d'avance !
Partager