Problème de requête avec plusieurs contrainte de variable sous ACCESS avec VB

Résolu
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007 - 1 juin 2005 à 09:06
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007 - 1 juin 2005 à 13:58
voila ma requête:

req_jour = " SELECT JOU_num FROM JOUR,MOIS " & _


" WHERE JOUR.MOI_num=MOIS.MOI_num " & _


" AND JOUR.JOU_libelle = " & jour_lib & _


" AND MOIS.MOI_libelle = " & mois_lib & _


" AND MOIS.ANN_num = " & annee

Set Creq_jour = BDconges.OpenRecordset(req_jour)



je souhaiterai que am requête me renvoie le numéro du jour de lannée (de 1à 365/366) en fonction du libellé du jour (1à30/31 =>par"jour_lib") en fonction du libéllé du mois (Janvier à Décembre=>par"mois_lib") et en fonction de l'année (2005,etc...=>par"annee")

or il me renvoi toujours ,au momen de l'éxécution de ma requête :

*******************************

Erreur d'exécution '3061':

Trop peu de paramètres. 1 attendu.

*******************************

Or toute les données existe dans les tables, les
intitulés des tables et colonne sont correctes et manuellement elle
tourne...... enfin bon qui est-ce qui ne fonctionne pas

Merci davance de votre aide

TanK

17 réponses

TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 13:58
voila jai trouver!!!!!!!!! jai donc mi la variable du résultat de la
requete en string et donc c t ca la dernière chos à changer tan pi je
fai une conversion par la suite pour le traiter ca march qd
meme.........



Voici ma requete:

req_jour = " SELECT JOU_num " & _


" FROM JOUR,MOIS " & _


" WHERE JOUR.MOI_num=MOIS.MOI_num " & _


" AND JOUR.JOU_libelle = " & jour_lib & _


" AND MOIS.MOI_libelle = '" & mois_lib & "'" & _


" AND MOIS.ANN_num = " & annee

Set Creq_jour = BDconges.OpenRecordset(req_jour)

puis je converti le résultat string en integer

jour = CInt(Creq_jour!JOU_num)



et voila le tour est joué donc le fait de tout metre dans le select est inutil........



merci a vous deux....

@+

TanK
3
cs_Tipo Messages postés 82 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 13 avril 2017 1
1 juin 2005 à 09:25
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 09:34
jai été voir le topic que tu ma envoyé et je rajoute donc dans mon select tout les champs utilisé dans la clause Where....



ma requête devient ceci:

req_jour = " SELECT JOU_num,JOU_libelle,MOI_libelle,ANN_num FROM JOUR,MOIS " & _


" WHERE JOUR.MOI_num=MOIS.MOI_num " & _


" AND JOUR.JOU_libelle = " & jour_lib & _


" AND MOIS.MOI_libelle = " & mois_lib & _


" AND MOIS.ANN_num = " & annee

Set Creq_jour = BDconges.OpenRecordset(req_jour)



Or il me fait toujours la meme chose.....

TanK
0
cs_Tipo Messages postés 82 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 13 avril 2017 1
1 juin 2005 à 09:41
Salut,

req_jour = " SELECT JOU_num,JOU_libelle,MOI_libelle,ANN_num FROM JOUR,MOIS " & _
" WHERE JOUR.MOI_num=MOIS.MOI_num " & _
" AND JOUR.JOU_libelle = " & jour_lib & _
" AND MOIS.MOI_libelle = " & mois_lib & _
" AND MOIS.ANN_num = " & annee
Set Creq_jour = BDconges.OpenRecordset(req_jour)

Tu as aussi deux fois le même nom de champ dans des tables différentes. JOUR.MOI_num=MOIS.MOI_num.

Je ferai comme ça :

req_jour = " SELECT JOUR.JOU_num,JOUR.JOU_libelle,MOIS.MOI_libelle,MOIS.ANN_num, MOIS.MOI_num FROM JOUR,MOIS " & _
" WHERE JOUR.MOI_num=MOIS.MOI_num " & _
" AND JOUR.JOU_libelle = " & jour_lib & _
" AND MOIS.MOI_libelle = " & mois_lib & _
" AND MOIS.ANN_num = " & annee
Set Creq_jour = BDconges.OpenRecordset(req_jour)

ou encore :

JOUR.JOU_num,JOUR.JOU_libelle,MOIS.MOI_libelle,MOIS.ANN_num, MOIS.MOI_num FROM JOUR INNER JOIN MOIS ON JOUR.MOI_num=MOIS.MOI_num " & _
" WHERE JOUR.JOU_libelle = " & jour_lib & _ etc...
0

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

Posez votre question
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 10:02
""Tu as aussi deux fois le même nom de champ dans des tables différentes. JOUR.MOI_num=MOIS.MOI_num.""

=>>> ca c'est normal, c'est ce qu'on appèle une contrainte
d'intégrité référentielle, auterment dit, ce l permet de lier les
tables donc davoir deux nom de table différent avec le meme champ (l'un
en clé primaire lautre en clé étrangère)





Voici ce que je fais:

req_jour = " SELECT JOUR.JOU_num,JOUR.JOU_libelle,MOIS.MOI_libelle,MOIS.ANN_num,MOIS.MOI_num " & _


" FROM JOUR " & _


" INNER JOIN MOIS ON JOUR.MOI_num=MOIS.MOI_num " & _


" WHERE JOUR.JOU_libelle = " & jour_lib & _


" MOIS.MOI_libelle = " & mois_lib & _


" AND MOIS.ANN_num = " & annee

Set Creq_jour = BDconges.OpenRecordset(req_jour)

et pour changer il me fait ca:

**********************

Erreur d'exécution '3075':

Erreur de syntaxe (opérateur absent) dans lexpression '"JOUR.JOU_libelle = .........AND MOIS.ANN_num= " & annee

**********************



Ô déséspoir......



TanK
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 10:10
"AND" maintenant qu'il est mit jai toujours :

*******************************

Erreur d'exécution '3061':
Trop peu de paramètres. 1 attendu.
*******************************
0
cs_Tipo Messages postés 82 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 13 avril 2017 1
1 juin 2005 à 10:12
J'avais bien compris mais tu n'avais sélectionné qu'un seul champ MOI_num.

Il te manque un AND :

WHERE JOUR.JOU_libelle = " & jour_lib & _
" AND MOIS.MOI_libelle = " & mois_lib & _
" AND MOIS.ANN_num = " & annee
0
cs_Tipo Messages postés 82 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 13 avril 2017 1
1 juin 2005 à 10:16
Ou alors c'est une erreur de syntaxe dans la dénomination d'un de tes champs. Il ne le reconnait pas et attend un paramètre... Vérifie les noms... ou affiche ta requête dans un msgbox car j'ai bien l'impression que tu dois avoir des lignes collées...
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 10:18
A okay pour le MOI_num.... je viens de faire ca, pour le AND je lai vu jsut sur le post au dessus de to,n dernier...



donc maintenant ca donne ca:

req_jour = " SELECT JOUR.JOU_num,JOUR.JOU_libelle,JOUR.MOI_num,MOIS.MOI_libelle,MOIS.ANN_num,MOIS.MOI_num " & _


" FROM JOUR,MOIS " & _


" WHERE JOUR.MOI_num=MOIS.MOI_num " & _


" AND JOUR.JOU_libelle = " & jour_lib & _


" AND MOIS.MOI_libelle = " & mois_lib & _


" AND MOIS.ANN_num = " & annee

Set Creq_jour = BDconges.OpenRecordset(req_jour)

ou ca:

req_jour = " SELECT JOUR.JOU_num,JOUR.MOI_num,JOUR.JOU_libelle,MOIS.MOI_libelle,MOIS.ANN_num,MOIS.MOI_num " & _


" FROM JOUR " & _


" INNER JOIN MOIS ON JOUR.MOI_num=MOIS.MOI_num " & _


" WHERE JOUR.JOU_libelle = " & jour_lib & _


" AND MOIS.MOI_libelle = " & mois_lib & _


" AND MOIS.ANN_num = " & annee

Set Creq_jour = BDconges.OpenRecordset(req_jour)



*******************************

Erreur d'exécution '3061':
Trop peu de paramètres. 1 attendu.
*******************************

Et toujours la meme chose.....
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 10:19
"car j'ai bien l'impression que tu dois avoir des lignes collées..."=> jcomprend pas ce que tu veu dire



pour le nom des champ et des tables tout est bon....
0
cs_Tipo Messages postés 82 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 13 avril 2017 1
1 juin 2005 à 10:30
Autant pour moi

A part vérifier les variables jour_lib,mois_lib,annee je vois pas. De quels types sont-elles ? Quelle est le type des champs ?
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 10:41
les vatiables jour_lib=>integer(entier)

mois_lib=> était integer doncje me di ouf cest ca je le met en string (car cest le libellé du mois)

annee=> integer(entier)



et NON il me met toujour la meme chose

*******************************

Erreur d'exécution '3061':
Trop peu de paramètres. 1 attendu.
*******************************
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 10:42
et le type des champ est correct......... re déséspoir...
0
cs_Tipo Messages postés 82 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 13 avril 2017 1
1 juin 2005 à 10:45
Si ce sont des entiers, il faut les convertir en string dans ta chaine :

req_jour = " SELECT JOUR.JOU_num,JOUR.MOI_num,JOUR.JOU_libelle,MOIS.MOI_libelle,MOIS.ANN_num,MOIS.MOI_num " & _
" FROM JOUR " & _
" INNER JOIN MOIS ON JOUR.MOI_num=MOIS.MOI_num " & _
" WHERE JOUR.JOU_libelle = " & Cstr(jour_lib) & _
" AND MOIS.MOI_libelle = " & mois_lib & _
" AND MOIS.ANN_num = " & Cstr(annee)

Et il faut qu'ils conrrespondent au type de données du champ dans ta table...
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 10:53
et toujours et encore la meme chose meme en mettan string pour ces 2 variable ainsi que les cham pleurs correspondant.....
0
cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
1 juin 2005 à 12:19
Pour les champs de type string, il faut entourer les variables correspondantes par des apostrophes :

(...)
" WHERE JOUR.JOU_libelle = ' " & jour_lib & "'" & _
" AND MOIS.MOI_libelle = '" & mois_lib & "'" & _
(...)

wape
0
TanK__1001101 Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2007
1 juin 2005 à 13:48
je suis perdu dans tout ca.....

bon jai remi mes clé en numérik, donc dans ma requete jai jsut la
variable "mois_lib" ki est au format string, annee et jour_lib sont au
format integer.



voici la requete:req_jour = " SELECT JOUR.JOU_num " & _


" FROM JOUR,MOIS " & _


" WHERE JOUR.MOI_num=MOIS.MOI_num " & _


" AND JOUR.JOU_libelle = " & jour_lib & _


" AND MOIS.MOI_libelle = '" & mois_lib & "'" & _


" AND MOIS.ANN_num = " & annee

Set Creq_jour = BDconges.OpenRecordset(req_jour)

'req_jour est au format integer car je veu ki lresorte un chiffre



voici le message:

*********************

Erreur d'exécution '13':

Incompatibilité de type

********************

compren tu quelque chose wape???
0
Rejoignez-nous