Problème de requete SQL

cs_ksper92 Messages postés 5 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 16 septembre 2005 - 16 sept. 2005 à 12:10
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 - 17 sept. 2005 à 05:52
Bonjour,
Alors voilà, je verifie un champ numéro d'un DB Access (numéro est un champ NumeroAuto en entier long) grace à un numéro généré se trouvant dans une textbox "text1"
Je veux qu'après vérification de ce numéro, s'il y a correspondance entre les deux, les champs correspondants aux données de la DB se remplissent automatiquement.
Pour ce faire, j'utilise ce code :


Dim Conn As New ADODB.Connection
Dim rst As New ADODB.Recordset

With Conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open "C:\clients.mdb"
End With

Set rst = New ADODB.Recordset

rst.Open "SELECT * From Clients where Numero =" & Text1 & "", Conn, adOpenKeyset, adLockReadOnly, adCmdText

If rst.Fields("Numero").Value = Text1 Then

rst.Find "Numero = " & Val(Text1.Text) & ", 1, adSearchForward"

txtNom = rst.Fields("Nom").Value
txtPrenom = rst.Fields("Prenom").Value
txtAdresse = rst.Fields("Adresse").Value
txtCodePostal = rst.Fields("CodePostal").Value
txtVille = rst.Fields("Ville").Value
txtDateNaissance = rst.Fields("DateNaissance").Value
txtTotalRemise = rst.Fields("TotalRemise").Value
txtEmail = rst.Fields("Email").Value
txtTelephone = rst.Fields("Telephone").Value
txtCommentaires = rst.Fields("Commentaires").Value
txtDateCreation = rst.Fields("DateCreation").Value
txtTotal = rst.Fields("Total").Value
End If


mon soucis est qu'invariablement, j'ai le même message d'erreur sur la ligne :

rst.Find "Numero = " & Val(Text1.Text) & ", 1, adSearchForward"

Run-time error '3001':

Les arguments sont des types incorrects, en dehors des limites autorisées ou en conflit les uns avec les autres.

Je ne sais pas trouver mon erreur qui je l'avoue me dépasse un peu. J'ai essayé beaucoup de modifications mais toujours avec le même message d'erreur.

Si quelqu'un pouvait me signaler mon erreur, ce serait top.
Merci.

3 réponses

Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
16 sept. 2005 à 18:34
Moi je l'écrirais plutot comme ça. Sinon cela vient du fait que "Text1.Text" est d'un type différent de "Numero". Du genre texte et numérique ou autres.

Rst.Find "Numero = '" & Val(Text1.Text) & "', 1, adSearchForward"
0
cs_ksper92 Messages postés 5 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 16 septembre 2005
16 sept. 2005 à 19:24
Hélas, ce code ne fonctionne pas non plus. Les deux valeurs à verifier sont des chiffres entiers.
Je ne sais plus quoi essayer. :(
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
17 sept. 2005 à 05:52
bonsoir,

je te conseillerais plutôt ce code :

Dim Conn As ADODB.Connection
Dim rst As ADODB.Recordset

Set conn= new adodb.connection
With Conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open "C:\clients.mdb"
End With

Set rst = New ADODB.Recordset

rst.Open "SELECT * FROM [Clients] WHERE [Numero] =" & Text1.text & "", Conn, adopendynamic,adlockoptimistic

if (not rst.eof) then

txtNom.text= rst.!Nom

txtPrenom.text = rst.!Prenom

txtAdresse.text = rst!Adresse

txtCodePostal.text= rst.!CodePostal

txtVille.text = rst!Ville

txtDateNaissance.text = rst!DateNaissance

txtTotalRemise.text = rst!TotalRemise

txtEmail.text= rst!Email

txtTelephone.text = rst!Telephone

txtCommentaires.text = rst!Commentaires

txtDateCreation.text = rst!DateCreation

txtTotal.text= rst!Total

else

msgbox ("Données inexistantes !")

End If

salut
doro
0
Rejoignez-nous