cs_lancelolo
Messages postés21Date d'inscriptionmardi 16 novembre 2004StatutMembreDernière intervention16 octobre 2009
-
16 nov. 2004 à 18:13
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 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
A voir également:
Type de données incompatible dans l'expression du critère access
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 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.
cs_lancelolo
Messages postés21Date d'inscriptionmardi 16 novembre 2004StatutMembreDernière intervention16 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.
cs_ITALIA
Messages postés2169Date d'inscriptionvendredi 20 avril 2001StatutMembreDernière intervention30 juin 20099 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@
Vous n’avez pas trouvé la réponse que vous recherchez ?
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 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
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 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) & ";"