Resultat requête SQL

Atlantide92 Messages postés 2 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 30 décembre 2004 - 30 déc. 2004 à 15:54
Atlantide92 Messages postés 2 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 30 décembre 2004 - 30 déc. 2004 à 17:43
Bonjour,

Je suis actuellement en train de développer une base de données sous access, , le code en VBA, et les requêtes sous forme SQL.

Contexte : j'ai une table qui, entre autres comprend le champ Date et le champ Bidule. L'utilisateur saisit une date dans un champs texte dans le formulaire.

Ma requête compte le nb de Bidule differents dans la table pour la date que l'utilisateur aura choisi sur son formulaire.

Set db = CurrentDbSet rs db.OpenRecordset("Select Distinct Bidule FROM Table where Table.Date Formulaire.ChampsTexte.Value", dbOpenDynaset)
rs.MoveLast
nbBidule = rs.RecordCount
rs.Close
Set db = Nothing

Le pb c'est qu'access me retourne "Too few parameters..."

J'ai cru comprendre que, lorsque la requête fait référence à une valeur prise dans le formulaire, cela crée ce genre de pb.

Mais la je suis perdue je ne sais pas comment faire pour régler ce pb. Quelqu'un pourrait m'aider ? Merci d'avance !

4 réponses

cs_FPatrick Messages postés 122 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 8 août 2014 1
30 déc. 2004 à 16:20
If faut obtenir une requete valide. Une requête doit être à executer .

Formulaire.ChampsTexte.Value ne fait pas parti des instructions Sql ; il faut entrer la variable ou l'objet comme suit:
Set rs db.OpenRecordset("Select Distinct Bidule FROM Table where Table.Date #" & Formulaire.ChampsTexte.Value & "#" , dbOpenDynaset)

Il faut absolument obtenir :
Select Distinct Bidule FROM Table where Table.Date = #01/12/2004# --->

Pour être sur de ta requete , construis la dans une variable et interroge la avant de l'éxécuter:Sql "Select Distinct Bidule FROM Table where Table.Date #" & Formulaire.ChampsTexte.Value & "#"
Puis
Set rs = db.OpenRecordset(Sql, dbOpenDynaset)

Bon courrage.
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
30 déc. 2004 à 16:20
ta requete est mal construite tout simplement
Set rs db.OpenRecordset("Select count(bidule) FROM Table where Table.Date #" & Formulaire.ChampsTexte.Value & #")

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
30 déc. 2004 à 16:22
ah oui, date est un type en sql, si tu veux une variable qui s'appel date écris la comme ca dans ta requete

[date]

les [] indique a sql que c'est une colonne et non une variable
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
Atlantide92 Messages postés 2 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 30 décembre 2004
30 déc. 2004 à 17:43
J'ai reconstruit la requete proprement et j'ai précisé que la variable qui renvoyait à ce qu'il y avait marqué dans le champs texte était en fait une variable, et ca a marché. Je mets le code pour ceux qui auraient le même pb :

Champtexte.value = Date_Import

Set db = CurrentDb
Set qdf = db.QueryDefs("qry_nbBidule")
qdf.Parameters(0) = Date_Import
Set rs = qdf.OpenRecordset
rs.MoveLast
nbBidule = rs.RecordCount
rs.Close
Set db = Nothing

Merci de votre aide !
0
Rejoignez-nous