Requete et plusieurs listes déroulantes help

Signaler
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008
-
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008
-
bonjour,
Voila mon problème
J'ai une dizaine de liste déroulante , et une zone de liste.
Les listes déroulantes sont en quelques sorte groupée par 5
Le premier groupement concerne une date et heure de début d'ou 5 liste , jour/mois/année/heure/minute
Le deuxieme groupement concerne une date et heure de fin d'ou les 5 liste restante jour/mois/année/heure/minute
Et la zone de liste contient plusieurs éléments "des portiques" (unqiuement ceux choisis par l'utilisateur) qui commenceront donc a ces différentes heures.

Les listes déroulantes sont alimentée par une table simple ou tous les jour , les mois , les années , les heures et les minutes sont presentes : HORAIRE constituer ainsi : (jour,mois,année,heure,minute)
La zone de liste est alimenté par une autre table ou est listé tous les éléments: PORTIQUE consituée ainsi : (portique,nom_baterrie,Emplacement) ici nom_batterie et emplacement ne nous interresse pas.

Une table COMPTER contient tous les enregistrement que je souhaite extraire.
Cette table est consituer ainsi : (Emplacement,Portique,De,A,Entrée,Sortie,Alarmes)
Portique: correspond au portique de ma table PORTIQUE qui sont seront situé ds ma zone de liste.
De: correspond à 5 listes déroulantes celle de date de début : Jour/mois/année Heure:Minute
A: correspond à 5 listes déroulantes celle de date de  fin : Jour/mois/année Heure:Minute

Comme vous pouvez le constater j'ai du découper De et A en différentes listes afin d'avoir plus de clarté pour mon utilisateur les enregistrement etant fait tte les 5 minutes avec uniquement 2 listes cela aurait été le chaos totales pour mes futur utilisateur.

Je cherche donc a faire une requete qui selon ce qui sera entrée dans mes liste me donnera les enregistrement que je souhaite. Cependant je ne sais pas comment lui dire que De est consituer de 5 listes différentes.

En gros ma requete serait de ce style :SQLSelect * from COMPTER where Portique (tous les portiques cités ds la zone de liste) and De = ( liste déroulante du jour de début/listedéroulante du mois de début/liste déroulante de l'année de debut   liste déroulante de l'heure de début:Liste déroulante des minutes de début) and A= ( liste déroulante du jour de fin/listedéroulante du mois de fin/liste déroulante de l'année de fin   liste déroulante de l'heure de fin:Liste déroulante des minutes de fin)

J'espère avoir assez eclairci ce que je voulais faire pour que vous puissiez m'aider. Ce n'est pas tres difficile cependant je ne sais pas comment écrire cela. Merci d'avance de votre aide.

19 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

La syntaxe par coeur je ne la connais pas...mais regarde ce cours sur les requêtes, cela pourrai t'aidé..

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Pourquoi ne pas passer par des DateTimePickers plutot que par 5 Combo?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

merci de vos réponses ,


Explorateur je vais eplucher ces cours merci d'avance.


Jrivet pourrais tu developper un peu les DateTimePickers ou me donner un lien pour voir ce que c'est s'il te plait? (c'est ma première base donc je passe certainement a coter de bcp de choses)
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

ah j'ai oublier de preciser une chose
DE et A ne sont pas defini comme date mais comme chaine de caractère à cause d'une importation de données.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Ajoute le composant suivant à ton projet:

Microsoft Windows Common Controls-2 6.0 (SP6)

depuis menu Projet => Composants.

Tu pourras alors insérer dans tes Form le contrôle DTPicker.
En l'insérant dans une feuille et jouant avec  ces proporiétés
- Format:
- CustomFormat:
- MinDate
- MaxDate
je pense que tu pourras aisément remplacer tes groupe de 5 Combo.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

vi ok mais comme je te disais les date et heures en question ne sont pu au format date donc je pense que ce composant ne pourra pas m'être utile.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Elles ne sont peu être plus au format date, mais rien ne t'empeche de convertir la "date" obtenu en chaine de caractere ensuite.
cela t'evite au moins d'avoir a gerer tout ce que peux t'entrer l'utilisateur.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Salut, Selune6666 DSL, j'suis debordé. En effet, ces controls sont parfaitement adapter pour choisir Date Heure et tout le tralala.
De plus, ca t'evitera des controls a foison et ca ne t'empechera pas de reccupérer la date.
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

je n'ai pas Microsoft Windows Common Controls-2 6.0 (SP6) 

 je nee trouve mm pas  depuis menu Projet => Composants.
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

Ok bon on va prendre le probleme autrement car je crois que personne n'a compris mon probleme. Je ne veux pas quelque chose de plus simple ou de différent je veux faire comme cela j'ai pas le niveau pour faire autre chose et je n'ai pas le choix tout ce que je demande c'est qu'elle syntaxe utiliser pour un prédicat composé de plusieurs listes déroulantes c'est tout

ex: where Nom=' " & Nom.value & " ' la ya une liste déroulante

maintenant si Nom Entier utilise 2 listes déroulantes en mm temp pour composer son nom je l'ecris comment ma syntaxe? 

Nom entier= '  " & Nom value & "   " & Prenom.value & "  ' ???

c'est juste ça ma question comment dire à Nom Entier qu'il doit chercher ds sa colonne une valeur tel qu'elle soit egal à l' accolement des valeurs des 2 listes déroulantes
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

Ok bon on va prendre le probleme autrement car je crois que personne n'a compris mon probleme. Je ne veux pas quelque chose de plus simple ou de différent je veux faire comme cela j'ai pas le niveau pour faire autre chose et je n'ai pas le choix tout ce que je demande c'est qu'elle syntaxe utiliser pour un prédicat composé de plusieurs listes déroulantes c'est tout

ex: where Nom=' " & Nom.value & " ' la ya une liste déroulante

maintenant si Nom Entier utilise 2 listes déroulantes en mm temp pour composer son nom je l'ecris comment ma syntaxe? 

Nom entier= '  " & Nom value & "   " & Prenom.value & "  ' ???

c'est juste ça ma question comment dire à Nom Entier qu'il doit chercher ds sa colonne une valeur tel qu'elle soit egal à l' accolement des valeurs des 2 listes déroulantes
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Il est possible que ce soit un pb d'espace

where Nom= '" & Nom value & " " & Prenom.value & "'"

Sinon, tu crer un chaine qui concatene le nom et le prenom et tu remplaces ta clause Where, ex :

Nom_entier=  Nom value & "  " & Prenom.value
........ where Nom='" & Nom_entier & "'"

Et essaies aussi une clause Where avec LIKE au lieu du =.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Perso j'utiliserai plutôt la clause WHERE et AND dans la requête, car ainsi celle-ci pourrai vérifier dans son champ nom et prénom la concordance...Car en faisant la concaténation, je pense que cela sera plus long, car il faudra à chaque lecture dans ses champ qu'il fasse une concaténation et vérifie par rapport à sa requête...Trop long à mon sens...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Salut, Exploreur, en fait, j'ai proposé cela car je pensais que le nom et prénom faisait reference à un seul et meme champ de la base. Donc pas possibilité de faire "Nom ='" & Var_Nom & " AND Prénom='" & Var_Prénom & "'"

Mais en effet, si ce n'est pas le cas, le AND serait le mieux car une erreur serait rapidement tracable.
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

non nicko11 tu a bien raison , dans mon exemple nom et prenom font parti du mm champ. J'ai parler avec un amis j'ai testé quelque chose comme:
Nom= ' " &Modifiable2.value&"+"&modifiable3.value&"...'
sa ne marche pas il me dit fin d'instruction attendu
j'ai testé
Nom= ' " &Modifiable2.value&""&modifiable3.value&"...'
ne marche pas non plus mm erreur

j'ai trouver une solution qui ne bug pas au début:
SQL= Select * from Compter where Equipement=[liste] and De='[Modifiable2.value]+"/"+[Modifiable3.value]+"/"+[Modifiable4.value]+     " "+[Modifiable5.value]+":"+[Modifiable6.value]'
voila ça bug au niveau de l'espace comment puis je remedier a cela?
comment lui dire que c'est un espace?
le champ de ressemble a cela:    10/07/2006 11:05:00 je ne vérifie ds l'expression que ce qu'il y a en rose pour le moment SQL n'accepte pas a partir de l'espace entre la date et l'heure. Je reprécise qu'ils sont passé en string et nom en date ou numérique.
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

bon bon bon
voici ce que j'ai l'expression SQL ne bug pas de suite (enfin elle est pas rouge quand je met mon curseur ailleur)
ma tite partie de code:
Private sub Consulter_Click()
Set base = Currentdb
SQL= "Select * from Compter where Equipement=[liste] and De>='[Modifiable2.value]+"/"+[Modifiable3.value]+"/"+[Modifiable4.value]+"* "+[Modifiable5.value]+"*"+[Modifiable6.value]' and A<='[Modifiable7.value]+"/"+[Modifiable8.value]+"/"+[Modifiable9.value]+"* "+[Modifiable10.value]+"*"+[Modifiable11.value]' ;"
Docmd.openform("consulter")
End sub

J'ai remplacer les espace et les 2 par des * (en supposant que étoile remplace un caractère quelconque)
J'ai ajouter > et < concernant l'égalité De et A etant donné qu'on recherche des enregistrement compris entre ces dates. 
Quand je click sur consulter il me renvois l'erreur 13  incompatibilité de type. >_< 
J'ai tester aussi sans les >= et <= il me renvoie la mm erreur
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Pour moi, tu devrais concatener tes Modifiable.value en dehors de la requete, et faire un msgbox, pour voir si sa convient.

N'oublies pas que c'est & pour concatener.

Str_Nom= Modifiable2.value & " " & modifiable3.value

Pour les dates, ex:

Str_date = Modifiable2.value&"/"& modifiable3.value &"/"& modifiable4.value

SQL= "Select * from Compter where Equipement=[liste] and De='" & Str_date & "'"

Attention aussi au type de donnée. Texte ou Date. Dans la requete, ca change ' ou #.
Regarde bien ca je suis pas expert.
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

ah ouai jsuis trop bete c'est vrai ke j'ai le droit de faire ça en dehors de la requete et apres mettre la variable que j'ai utiliser pour ça ds la requete >_< ma bétise n'a pas de limite
sinon merci pour le and je ne savais pas je sais maintenant a quoi il sert ^^

je refais d'autre test et je tiens au courrant
Messages postés
59
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2008

ah ouai jsuis trop bete c'est vrai ke j'ai le droit de faire ça en dehors de la requete et apres mettre la variable que j'ai utiliser pour ça ds la requete >_< ma bétise n'a pas de limite
sinon merci pour le and je ne savais pas je sais maintenant a quoi il sert ^^

je refais d'autre test et je tiens au courrant