Problème comptabilité excel 2007 -2003 avec VBA

Signaler
Messages postés
4
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
9 juin 2010
-
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
-
Bonjour à tous,

mon petit programme marchant sous excel 2003 grâce à l'aide de plusieurs personnes qui ont répondu à mon dernier post(que je remercie encore), je décide de le tester sous 2007 histoire de voir si cela marche.Bien entendu cela ne marche pas sinon ce serait trop facile :)

Je recois le message d'erreur suivant

"Erreur d'exécution '-2147217904 (80040e10)':

[Microsoft][Pilote ODBC Texte] Trop peu de paramètres. 5 attendu.
"


Ce n'est pas la première fois que je vois ce message , c'est pour çà que j'ai pensé que ma requête sql était en cause mais après moultes tentatives , j'avais toujours le même message d'erreur.Alors je demande si le problème ne provient pas d'autre part!

Le debugueur se bloque à la ligne " Set Record = Connex.Execute(sql)"


Voici mon code :


Dim mavar As Variant
Dim mavar1 As Variant
Dim sql As Variant
Dim Connex As ADODB.Connection
Dim Record As ADODB.Recordset
Set Connex = New ADODB.Connection
Set Record = New ADODB.Recordset


mavar = Range("A4").Value
mavar1 = Range("D4").Value







'si une des cases est vide ou les 2
If (IsEmpty(mavar) And IsEmpty(mavar1)) Or (IsEmpty(mavar)) Or (IsEmpty(mavar1)) Then

'Affichage du message ci dessous
MsgBox "Il faut entrer une référence ET un numéro"
Else
'chargement de la feuille

Set f = Sheets("Feuil2")
'Supprimer les données de 5.7 a 31.9
For i = 31 To 5 Step -1
f.Cells(i, 7) = ""
f.Cells(i, 8) = ""
f.Cells(i, 9) = ""
Next
'Connection base

Repertnom = "C:\Users\Public\Documents"
Connex.ConnectionString = "ODBC;DBQ=" & Repertnom & ";" & _
"DefaultDir=C:\;" & _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;MaxBufferS"

Connex.Open

'Lancement requete sql

sql " SELECT NO_ORDRE,NO_REFDET,NO_QTE FROM f.csv WHERE AR_REF '" & mavar & "' And NO_OPERATION = " & mavar1 & " ORDER BY NO_ORDRE "


Set Record = Connex.Execute(sql)



'Chargement sur la feuille

Set f = Sheets("Feuil2")


If Record.BOF = True Then
MsgBox "La requête n'a trouvé aucun résultat.Revoyez votre numéro d'opération et / ou votre référénce"
Else
Record.MoveFirst
'Commence sur la ligne 5
i = 5

Do While Not Record.EOF

'colonne 7 /ligne 5
f.Cells(i, 7) = Record("NO_ORDRE")
'colonne 8 /ligne 5
f.Cells(i, 8) = Record("NO_REFDET")
'colonne 9 /ligne 5
f.Cells(i, 9) = Record("NO_QTE")
i = i + 1
Record.MoveNext
Loop

Record.Close
'fin
Connex.Close
End If

End If

Merci d'avance pour les réponses apportées.

1 réponse

Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011

salut,

Ce type de message est typiquement de la requête SQL.
Lorsque tu arrives dans ton code sur la requête qu'il doit exécuter, tu bloques.
Essaie à la main de lancer ta requête, tu verras il te fera la même erreur.

Aurais tu pas changer qq chose dans ta requête ?
A tout les coups si ! ==> Contrôle le nom des champs, il doit lui en manquer un.