Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2417 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Liste déroulante et Zone de liste [ Access ]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liste déroulante et Zone de liste [ Access ]

n°1358407
CliMz
Posté le 03-05-2006 à 11:09:55  profilanswer
 

Bonjour :hello:  
Je travaille sous Access 2003
Voila j'ai une liste déroulante nommé Nom_liste qui contient :
id_user
Nom
Prenom
 
J'aimerais simplement savoir comment récuperé l'id user de l'utilisateur selectionné dans la liste déroulante pour après l'insérer dans une requete SQL contenu dans une zone de liste.
 
Ce que j'ai pour le moment est cela  

Code :
  1. ... WHERE T_UTILISATEUR.id_user=Nom_liste.column(1);
  2. ou
  3. ... Where T_UTILISATEUR.id = Forms!F_Consult.Nom_liste


Mais ça ne marche pas
 
Voila merci d'avance à tous :p

mood
Publicité
Posté le 03-05-2006 à 11:09:55  profilanswer
 

n°1358439
mimy
Posté le 03-05-2006 à 11:31:34  profilanswer
 

est-ce que tu as écrit une requête pour afficher les données de la liste?
comme :  
SELECT * FROM Table
que tu as mis dans les propriétés?

n°1358445
CliMz
Posté le 03-05-2006 à 11:34:16  profilanswer
 

les ... avec where c'est la requete comme :

Code :
  1. SELECT T_UTILISATEUR.age FROM T_UTILISATEUR WHERE T_UTILISATEUR.id_user = Nom_liste.column(1);



Message édité par CliMz le 03-05-2006 à 11:35:01
n°1358459
mimy
Posté le 03-05-2006 à 11:38:14  profilanswer
 

parce que quand il y a une lsite déroulante, pour insérer les valeurs dedans, j'écris dans (clic droit sur la liste), [propriétés], (onglet données), [contenu], et tu écris ta requête (SELECT Id_user, Nom, Prénom FROM Table et tu valides
A partir de là, tu as les valeurs dans ta table.
Et dans le champ en dessous (colonne liée, tu écris "1" )
ainsi quand tu récupèreras les valeurs de ta liste, ça correspondra à l'id_user

n°1358468
CliMz
Posté le 03-05-2006 à 11:41:56  profilanswer
 

la liste déroulante contient :
SELECT T_UTILISATEUR.id_user, T_UTILISATEUR.Nom, T_UTILISATEUR.Prenom FROM T_UTILISATEUR;  
 
Donc j'ai bien tout ce que je veu dans cette liste mais le problème c'est par exemple de récuperé l'age dans un Zone de liste
Donc comment récuperer les valeurs selectionné dans ma liste

n°1358469
olivthill
Posté le 03-05-2006 à 11:42:02  profilanswer
 

Il faut tout simplement remplacer 1 par 0 dans
...Nom_liste.column(0);  
 
Le numéro correspond aux colonnes, et d'après ce qui est dit, on a :
0 pour id_user
1 pour Nom
2 pour Prenom

n°1358488
CliMz
Posté le 03-05-2006 à 11:50:42  profilanswer
 

il met dit :
"Fonction Nom_Liste.column Non défini dans l'expression"
j'ai pourtant cela dans contenu :
 
SELECT T_UTILISATEUR.id_user FROM T_UTILISATEUR WHERE T_UTILISATEUR.Nom=Nom_liste.column(0);  
 
?

n°1358523
olivthill
Posté le 03-05-2006 à 12:15:54  profilanswer
 

Le numéro 0 est pour ID par pour le nom. Pour le nom c'est le numéro 1.
 
Par ailleurs cela dépend où se trouve ce SELECT. Il y a 36 moyens de faire des SELECT. Il faudrait préciser le contexte, montrer les lignes avant et après ce SELECT.
 
Peut-être qu'il suffit de préfixer Nom_liste... par Me pour faire Me.Nom_Liste...  
 
Est-ce que vous avez déjà utilisé des SELECT avant ? des SELECT avec des paramètres ? des SELECT dans ce même contexte ?

n°1358570
tegu
Posté le 03-05-2006 à 13:14:00  profilanswer
 

Moi ce que je vois c'est que le code fourni en exemple n'est pas le code réel.
À partir de là on peut difficilement en déduire quoique ce soit.
Mais je soupçonne un problème de formation de la chaine SQL qui ne devrait pas inclure la référence à la listbox Nom_liste.column entre les guillemets (qui n'apparaissent pas dans le code montré...)

n°1358600
CliMz
Posté le 03-05-2006 à 13:40:00  profilanswer
 

Alors pour commencer le code est le bon ce n'est pas un exmple je ne vois pas l'interet que j'ai à poster un code faux.
Sur la liste déroulante mon code est celui ci :

Code :
  1. SELECT T_UTILISATEUR.id_user, T_UTILISATEUR.Nom, T_UTILISATEUR.Prenom FROM T_UTILISATEUR;


Ensuite mon code actuel sur la liste de zone est le suivant :

Code :
  1. SELECT T_UTILISATEUR.Nom FROM T_UTILISATEUR WHERE T_UTILISATEUR.id_user =" & Me.Nom_liste.column(0) & ";


=> Qui me donne une erreur sur le type  
Ou alors l'inverse  

Code :
  1. SELECT T_UTILISATEUR.id_user FROM T_UTILISATEUR WHERE T_UTILISATEUR.Nom=" & Me.Nom_liste.column(1) & ";


=> Qui lui ne me donne pas d'erreur mais rien ne s'affiche dans la zone de liste
 
Bizare ?


Message édité par CliMz le 03-05-2006 à 13:40:25
mood
Publicité
Posté le 03-05-2006 à 13:40:00  profilanswer
 

n°1358664
CliMz
Posté le 03-05-2006 à 14:57:08  profilanswer
 

up ?

n°1358713
olivthill
Posté le 03-05-2006 à 15:31:00  profilanswer
 

Excuse-moi, je ne vois pas bien où est mis ce SELECT ?
Il est dit qu'il est mis "sur la liste déroulante". Qu'est-ce que cela veut dire ?
 
Je suppose que c'est sur une ligne de la boite de dialogue "Propriétés" de la liste déroulante, mais sur quelle ligne ? Que contiennent les autes lignes ? Est-ce que des SELECT avec des paramètres qui marchent ont déjà été fait ?
 
Je pose cette question parce que je crois que le problème ne vient pas de la liste déroulante (sauf si on se trompe d'événement), mais viens plutôt du SELECT avec un paramètre. Dans ce cas, comme pour les autre problèmes en informatique, il faut commencer par des choses simples puis ajouter les difficultés une à une. Par exemple, le SELECT pourrait d'abord être un SELECT sans paramètre, pour voir s'il marche, et ce SELECT pourrait être rattaché à un bouton ordinaire. Puis on rattacherait ce SELECT à une liste déroulante, puis on essayerait un SELECT avec un paramètre en utilisant le bouton, et enfin quand cela marcherait on utiliserait le SELECT avec un paramètre et la liste déroulante.
 
Par ailleurs, j'ai lu quelque part (je ne me souviens plus où hélas) que lorsqu'on avait un paramètre, il fallait utiliser une procédure pour l'associer à une requête, par exemple

SELECT ... WHERE colone1 = get_parametre();

Et dans un module la routine get_parametre() est définie par

Public Function get_parametre() As String
   get_parametre = une_variable_globale_remplie_dans_event_dun_formulaire
End Function


 
C'est la solution que j'adopte personnellement, mais je ne mets pas mes requêtes directement dans la boite de dialogue "Propriétés", je préfère les mettre dans les collections de Requetes, et les appeler à partir du code VBA. Cela me permet de tester les requêtes sans les formulaires. C'est plus pratique pour les mettre au point. Je préfère aussi qu'elles soient centralisées dans l'onglet "Requete", de la même manière que les tables sont dans l'onglet "Table" et les formulaires dans l'onglet "Formulaire".


Message édité par olivthill le 03-05-2006 à 15:34:36
n°1358718
tegu
Posté le 03-05-2006 à 15:35:04  profilanswer
 

Non, ton code n'était pas le bon; la preuve des guillemets viennent d'apparaître dans ta dernière formulation...
Et si je copie/colle ton code dans une fenêtre Access il est certain que ça ne fonctionnera pas tel quel.
Tu omets donc des choses en supposant qu'elles ne sont pas la cause de tes problèmes.
C'est peut-être vrai, mais peut-être pas et ça me saoule qu'on vienne demander des solutions sans donner le contexte d'exécution exact.
Si la solution de ton problème est dans la syntaxe SQL on finira par trouver, mais sinon tu perds du temps en nous induisant sur une fausse piste. C'est tout.
 
Si tu fabriques ta chaine SQL et que tu la stockes dans une variable String, donne nous le contenu de cette variable. Et donne nous le type de données du champ id_user.

n°1358742
CliMz
Posté le 03-05-2006 à 15:50:50  profilanswer
 

Mort de rire!  tegu fais certainement parti de cette famille hostile plutôt répandu sur les forums qui ne répondent pas aux problèmes et questionnement des gens mais préfère critiquer la moindre brindille d'erreur d'un post de personne deja suffisamment perdu dans leur travaille.
Ensuite je pense que tu pourras comprendre que mon premier post n'a pas de guillemet car je ne savais pas qu'il fallait en mettre et secondement que tu pourras également comprendre que je ne peux ni t'envoyer la base de données de mon entreprise ni te copié les 50 champs d'option de chaque élément de mon interface.
Pour finir j'ajouterai que si cela t'énerve tellement, je cite :
 -qu'on vienne demander des solutions sans donner le contexte d'exécution exact.  
Simplement passe ton chemin, certaine personne essai de comprendre les problèmes des autres (but d'un forum) et d'autre ne comprennent pas la difficulté des autres (no comment).
 
Pour les autres merci à tous mais je vais chercher seul.

n°1358757
olivthill
Posté le 03-05-2006 à 16:00:56  profilanswer
 

Mais non, tegu est très sympa, et en plus très compétent. Ce n'est pas comme les Johns du forums qui répondent aux questions sur les pages HTML et CSS  :)  
Les problèmes Excel peuvent paraitre simples, mais le sont rarement. Excel demande un petit apprentissage, et en plus la documentation n'est pas la meilleure qui soit.
Bon courage !

n°1358884
tegu
Posté le 03-05-2006 à 17:16:00  profilanswer
 

>CliMz, quand tu aura fini de chercher seul et si tu ne trouves pas la réponse je serai sans doute encore là pour t'aider. Même si tu ne comprends pas pourquoi et que cela t'étonne.
 
Mais il faudrait que tu répondes à la demande que j'ai faite pour y voir plus clair, à savoir

Si tu fabriques ta chaine SQL et que tu la stockes dans une variable String, donne nous le contenu de cette variable. Et donne nous le type de données du champ id_user.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Liste déroulante et Zone de liste [ Access ]

 

Sujets relatifs
Changer dynamiquement l'élément selected d'une liste déroulant ?Formulaire sous Access
ACCESS requete ajout Insert into - a l'aide !Liste imbriquées refusées par le W3C ?
Liste chainée dans un fichierPackages et liste générique
[XSL-T] Affichage d'une liste XML sous forme de tableau HTMLProblème de gestion des droits d'accès sous Access 2003
Question crutiale : Access en tant que base multisites et multiusers ?ACCESS : zone de liste déroulante : ne plus pouvoir écrire ?
Plus de sujets relatifs à : Liste déroulante et Zone de liste [ Access ]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR