Erreur dans une requete sous VBA Access

cs_lancelolo Messages postés 21 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 16 octobre 2009 - 16 nov. 2004 à 18:13
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007 - 17 nov. 2004 à 15:35
bon, avant d'envoyer ce message j'ai chercherdans tout le site en vain, j'espere que vous pourrez m'aider. Voila mon pb :

J'ai un formulaire avec un champ qui contient une valeur. J'aimerai effectuer une requete avec cette valeur mais j'ai toujours la même erreur : Erreur d'execution '3061' - Trop peu de parametre. 1 attendu

voila les code que j'ai essayé

1-
Dim Verif As Recordset
Set Verif = db.OpenRecordset("SELECT * FROM ordinateurs WHERE id_carte='" & Me!id & "';")

2-
Dim Verif As Recordset
Set Verif = db.OpenRecordset("SELECT * FROM ordinateurs WHERE id_carte='" & Forms![f_reseau]![id] & "';")

3-
Dim Verif As Recordset
Dim param As Integer
Me!id.SetFocus
param = Me!id.Text
Set Verif = db.OpenRecordset("SELECT * FROM ordinateurs WHERE id_carte='" & param & "';")

D'ou viens le pb ???
Merci d'avance

16 réponses

gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
16 nov. 2004 à 18:53
Salut lancelolo,

quelle version de Access utilises-tu ?

j'ai essayé sur 2003 en créant un formulaire bato et en collant texto ta requête et elle fonctionne.

1°) as tu initialisé db via set db=currentdb() ???
2°) le controle texte id de ton formulaire a t il le même format que id_carte de ta table (si tu essaies de comparer un texte et un num il apprécie peut être pas trop
3°) essaie d'utiliser id.value ou id.text
4°) essaie la requête en forçant une valeur en dur afin de savoir si c'est l'appelle de la requête ou la récupération du paramètre qu'il aime pas.

Tiens nous au courant,
Guich
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 08:28
d'ou provient le filtre Forms![f_reseau]![id] ou Me!id ??
d'une autre requéte ??

It@li@
0
cs_lancelolo Messages postés 21 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 16 octobre 2009
17 nov. 2004 à 09:56
alors tout d'abord merci pour vos reponses.
- J'utilise la version 2002 d'access.
- db est initialisé à l'ouverture de ma base.
- Le controle id et id_carte ont le même format.
- En utilisant id.value ou id.text ça ne change rien
- Apparemment c'est l'appel de la requete qui ne fonctionne pas parce qu'en forçant une valeur en dur j'ai le même probleme
- Me!id, selon moi, je me trompe peut etre, fait référence au champ text auxquel je fait référence et qui se trouve dans le formulaire.
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 10:31
si tu fais un filtre sur un champ text voila ce que ca donne en DAO :
En cochant Projet...Références...Microsoft DAO 3.51 Object Library

Set Db = OpenDatabase("C:\MaBase.mdb")Set RqDb.OpenRecordset("SELECT * FROM ordinateurs WHERE [id_carte]'" & Text1.Text & "'")
If Rq.Recordcount<>0 Then

' Ton Code

End If
Set Rq=Nothing

It@li@
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 10:35
sauf si ton champ id_carte est du numérique dans ta base alors la requete donne :

("SELECT * FROM ordinateurs WHERE [id_carte] =" & Val(Text1.Text) & "")

It@li@
0
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
17 nov. 2004 à 11:03
Salut lancelolo,

là je t'avouerai que je sèche un peu ....

Effectivement, Me faisant référence à l'objet actif, Me!id fait référence au controle "id" du formulaire en cours, ce qui revient au même que Forms![nom_form]!id.

as tu essayé de créer une requête access (pas par code mais bien dans l'onglet requête de Access) tu te met en mode SQL et tu fais un copier coller de ta requête (en remplaçant ton param par une valeur par exemple) voir si ça plante toujours.

Ca permettrait d'isoler un peu plus la source du pb

Guich
0
cs_lancelolo Messages postés 21 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 16 octobre 2009
17 nov. 2004 à 11:44
j'ai une nouvelle erreur :
Erreur de syntaxe (opérateur absent) dans l'expression 'carte reseau = '11".

et voila mon codeSet Rq db.OpenRecordset("SELECT * FROM ordinateurs WHERE carte reseau '" & Me!id & "';")
If Rq.RecordCount <> 0 Then
...
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 12:38
quand un nom de champ est composé il doit être entre []

WHERE [carte reseau] =" & Val(Text1.Text) & "")

It@li@
0
cs_lancelolo Messages postés 21 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 16 octobre 2009
17 nov. 2004 à 14:30
voila mon code :Set Rq db.OpenRecordset("SELECT * FROM ordinateurs WHERE [carte reseau] '" & (Me!id) & "';")

il me met "type de donnée incompatible dans l'expression du critere". Pourtant c'est de l'entier dans les 2 ????

Avec ce code : WHERE [carte reseau] =" & Val(id.Text) & "") ca ne fonctionne pas
0
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
17 nov. 2004 à 14:44
Le fait d'encadrer ton paramètre de ' le transforme en texte.
T'as essayé de juste mettre
"SELECT * FROM ordinateurs WHERE [carte reseau] = " & (Me!id) & ";"

Guich
0
cs_lancelolo Messages postés 21 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 16 octobre 2009
17 nov. 2004 à 14:46
J'ai essayé en forçant la requete avec une valeur en dur (11) et ça marche. A mon avis le pb viens de la '" & Me!id & "'
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 nov. 2004 à 14:55
je ne vois pas ce que c'est que Me!id !!
tu chope ca ou ?

It@li@
0
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
17 nov. 2004 à 14:55
essaie sans ' autour de Me!id ==> ça donne " & Me!id & "
0
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
17 nov. 2004 à 15:00
lancelolo,

question con : ton code, il est bien situé sur le contrôle du formulaire ou ID est défini ???
0
cs_lancelolo Messages postés 21 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 16 octobre 2009
17 nov. 2004 à 15:03
Yes ça marche !!!

Merci, vraiment merci beaucoup
0
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
17 nov. 2004 à 15:35
Quand on peut rendre service ...
0
Rejoignez-nous