[Access VBA] problème pour récuperer un champ
Résolu/Fermé
Résuperer un champ dans une liste.
Bonjour a tous.
J'ai un petit problème et je suis sur que vous pourrez m'aider.
J'ai une BD Access avec pour tous les programmes de mon entreprises, tous les ordinateur ou ceux-ci (les prog) sont installé.
J'aimerai que quand je double clique sur la liste des programmes il m'affiche dans une 2 eme liste tt les pc ou ce programme serai installé..
et je sais pas comment résuperer le champ du programme pour faire ma requete....
Help!!
Bonjour a tous.
J'ai un petit problème et je suis sur que vous pourrez m'aider.
J'ai une BD Access avec pour tous les programmes de mon entreprises, tous les ordinateur ou ceux-ci (les prog) sont installé.
J'aimerai que quand je double clique sur la liste des programmes il m'affiche dans une 2 eme liste tt les pc ou ce programme serai installé..
et je sais pas comment résuperer le champ du programme pour faire ma requete....
Help!!
A voir également:
- Access vba récupérer la valeur d'un champ d'une table
- Table ascii - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Table des matières word - Guide
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
26 réponses
_goni
Messages postés
964
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
30 juillet 2009
38
20 mars 2007 à 10:57
20 mars 2007 à 10:57
Salut,
Pourrais tu etre plus précis ? C'est la requete à réaliser que tu veux ?
Pourrais tu etre plus précis ? C'est la requete à réaliser que tu veux ?
bachoune
Messages postés
5
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
20 mars 2007
20 mars 2007 à 10:57
20 mars 2007 à 10:57
Hello
En VBA, il te suffit de faire :
nomListe.Value
Et là, il te renvoie la valeur sur laquelle tu as double-cliqué par exemple.
;)
En VBA, il te suffit de faire :
nomListe.Value
Et là, il te renvoie la valeur sur laquelle tu as double-cliqué par exemple.
;)
Merci pour vos réponse!!
EN fait pas forcement avec une requete mais j'aimerai recuperer cette valeur d'une maniere ou d une autre..
pour le : Nom_de_ma_liste.value j ai un probleme d execution 94 (utilisation incorrect de null)
:(
EN fait pas forcement avec une requete mais j'aimerai recuperer cette valeur d'une maniere ou d une autre..
pour le : Nom_de_ma_liste.value j ai un probleme d execution 94 (utilisation incorrect de null)
:(
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
3 312
20 mars 2007 à 13:40
20 mars 2007 à 13:40
Salut,
une zone de saisie peut rester vide, dans ce cas elle possède la valeur "null", mais on ne teste pas liste.value = "Null", on teste avec if isnull(liste.value)...
Pour le reste, il suffit donc d'affecter le contenu de la liste à une variable (ou de l'utiliser en tant que tel) :
toto = liste.value
if liste.value = "tata" then
dans ton cas, tu peux générer une requête qui tu mettras en source de la zone dans laquelle tu veux afficher tes PC :
une zone de saisie peut rester vide, dans ce cas elle possède la valeur "null", mais on ne teste pas liste.value = "Null", on teste avec if isnull(liste.value)...
Pour le reste, il suffit donc d'affecter le contenu de la liste à une variable (ou de l'utiliser en tant que tel) :
toto = liste.value
if liste.value = "tata" then
dans ton cas, tu peux générer une requête qui tu mettras en source de la zone dans laquelle tu veux afficher tes PC :
Dim StrSql As String StrSql = "SELECT num_pc WHERE " StrSql = " progra = '" & liste.value & "';" liste2.rowsource = StrSqlMais c'est un exemple, car dans ton cas, je ne sais pas comment sont tes données et donc comment rechercher les PCs qui ont le programme que tu as sélectionné...
CyPile
>
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
20 mars 2007 à 14:02
20 mars 2007 à 14:02
Merci pour ta réponse compléte.
Mon problème est maheureusement plus complexe il m semble...
Je m explique:
J ai une liste qui existe deja avec 3 colones (nom du programme, nom des machines, date du programme)(le tout est dans un formulaire)
moi se que je veut c est quand je double clique sur une ligne de ma liste (pour selectionner un nom de programme), access me retourne juste le nom du programme (et nn tt le ligne) pour que je puisse par la suite construire une requete pour afficher les machines ou le programme que j aurai selectionner est installer.
voila voila...
j espere que tu m as compris un peu mieu :)
parce que normalement ma liste ne devrai pas pouvoir etre NULL puisqu elle est completement rempli..
thanks pour tt
Mon problème est maheureusement plus complexe il m semble...
Je m explique:
J ai une liste qui existe deja avec 3 colones (nom du programme, nom des machines, date du programme)(le tout est dans un formulaire)
moi se que je veut c est quand je double clique sur une ligne de ma liste (pour selectionner un nom de programme), access me retourne juste le nom du programme (et nn tt le ligne) pour que je puisse par la suite construire une requete pour afficher les machines ou le programme que j aurai selectionner est installer.
voila voila...
j espere que tu m as compris un peu mieu :)
parce que normalement ma liste ne devrai pas pouvoir etre NULL puisqu elle est completement rempli..
thanks pour tt
bachoune
Messages postés
5
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
20 mars 2007
>
CyPile
20 mars 2007 à 14:24
20 mars 2007 à 14:24
List4.Column(2, List4.ListIndex)
2-> ta colonne
List4.ListIndex -> l'index de la ligne sélectionnée
2-> ta colonne
List4.ListIndex -> l'index de la ligne sélectionnée
bachoune
Messages postés
5
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
20 mars 2007
20 mars 2007 à 13:45
20 mars 2007 à 13:45
Programme le sur un "Double-Click" et teste le sur une liste non vierge à partir du formulaire.
Private Sub List0_DblClick(Cancel As Integer)
MsgBox List0.Value
End Sub
Pour éviter le message d'erreur, fais juste un test sur la valeur renvoyée :
If Not IsNull(List0.Value) Then
' Ton code
End If
;)
Private Sub List0_DblClick(Cancel As Integer)
MsgBox List0.Value
End Sub
Pour éviter le message d'erreur, fais juste un test sur la valeur renvoyée :
If Not IsNull(List0.Value) Then
' Ton code
End If
;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
20 mars 2007 à 14:13
20 mars 2007 à 14:13
Bin, pour récupérer la valeur d'une liste, il suffit de déterminer quelle colonne est liée (ou de lier la "bonne colonne").
Dans la feuille des propriétés de la liste, sous l'onglet données, tu peux le paramétrer.
Blux a posté récemment la même manoeuvre en VBA mais je l'ai plus trouvée...
Dans la feuille des propriétés de la liste, sous l'onglet données, tu peux le paramétrer.
Blux a posté récemment la même manoeuvre en VBA mais je l'ai plus trouvée...
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
3 312
>
CyPile
20 mars 2007 à 15:30
20 mars 2007 à 15:30
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 14:20
20 mars 2007 à 14:20
salut
les noms que tu a dans ta liste sont rempli avec une requete c'est ca
peut tu la mettre pour que je te donne le code
moi c'est ce que j'ai fais quand je clique sur un nom d'un utlilisateur dans la liste ca me marque le nom de PC sur lequel ce trouve cette utilisateur
Si j'ai ta requete je pense que je pourrais t'aider
les noms que tu a dans ta liste sont rempli avec une requete c'est ca
peut tu la mettre pour que je te donne le code
moi c'est ce que j'ai fais quand je clique sur un nom d'un utlilisateur dans la liste ca me marque le nom de PC sur lequel ce trouve cette utilisateur
Si j'ai ta requete je pense que je pourrais t'aider
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 14:49
20 mars 2007 à 14:49
Desolé mais je comprend pas trop ta requete
tu l'as fait avec l'assistant
est ce qu tu as une table PC qui contient lse champs "pc" "nom programme"
tu l'as fait avec l'assistant
est ce qu tu as une table PC qui contient lse champs "pc" "nom programme"
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 14:58
20 mars 2007 à 14:58
je vais tenté quand meme
Dim Sql As String
Dim Qry As DAO.QueryDef
Dim rs As DAO.Recordset
Sql = "SELECT PC.nom_PC FROM PC"
Sql = Sql & " WHERE (((PC.nom_programme) = """ & Me.lstnom_prog & """)) "
DoCmd.DeleteObject acQuery, "nom_PC" 'supprime la requête
CurrentDb.CreateQueryDef "nom_PC", Sql 'crée une nouvelle requete
Set Qry = CurrentDb.QueryDefs("nom_PC")
Set rs = Qry.OpenRecordset
While Not rs.EOF
txtnom_PC = rs(0)
rs.MoveNext
Wend
Set Qry = Nothing
Set rs = Nothing
dans mon exemple je suppose que tu a une table qui s'appelle PC avec les champ "nom_PC" et "nom_programme"
""" & Me.lstnom_prog & """ c'est pour prendre la valeur de ta liste
par contre moi je l'affiche dans un texte je n'ai pas cherché pour la liste je pense que ca ce ressemble
il faut que tu creer une requete toute bidon vraiment nimp que tu appelle "nom_PC" seul le nom que tu donne a la requete est important
Dim Sql As String
Dim Qry As DAO.QueryDef
Dim rs As DAO.Recordset
Sql = "SELECT PC.nom_PC FROM PC"
Sql = Sql & " WHERE (((PC.nom_programme) = """ & Me.lstnom_prog & """)) "
DoCmd.DeleteObject acQuery, "nom_PC" 'supprime la requête
CurrentDb.CreateQueryDef "nom_PC", Sql 'crée une nouvelle requete
Set Qry = CurrentDb.QueryDefs("nom_PC")
Set rs = Qry.OpenRecordset
While Not rs.EOF
txtnom_PC = rs(0)
rs.MoveNext
Wend
Set Qry = Nothing
Set rs = Nothing
dans mon exemple je suppose que tu a une table qui s'appelle PC avec les champ "nom_PC" et "nom_programme"
""" & Me.lstnom_prog & """ c'est pour prendre la valeur de ta liste
par contre moi je l'affiche dans un texte je n'ai pas cherché pour la liste je pense que ca ce ressemble
il faut que tu creer une requete toute bidon vraiment nimp que tu appelle "nom_PC" seul le nom que tu donne a la requete est important
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 15:32
20 mars 2007 à 15:32
tu as creé une requete avec le nom que je t'ai dit ?
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 15:39
20 mars 2007 à 15:39
ce msg n'est pas pour ici
CyPile
>
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
20 mars 2007 à 15:46
20 mars 2007 à 15:46
j ai reussi merci bcp bcp bcp bcp..
franchement merci
:)
franchement merci
:)
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
>
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
20 mars 2007 à 15:48
20 mars 2007 à 15:48
c'etait quoi le probleme pour info
je sais les champs sont merdique mais je peu pas changer c est une table exporter de fichier XLS..
Pour la requete c est le code que tu ma donné avant.. c est pas juste ?
Pour la requete c est le code que tu ma donné avant.. c est pas juste ?
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 16:32
20 mars 2007 à 16:32
je ne sais pas mais tu me dit que
NomDeProgramme est une requete
c'est que tu l'as créé avant mais dit moi comment
NomDeProgramme est une requete
c'est que tu l'as créé avant mais dit moi comment
Ha ui sorry..
c est une requete tt simple... vu qu aucune table physique existe (juste une liaison sur les fueille exel..) il me faut une requete comme une table...
je sais pas si tu me comprend
c est une requete tt simple... vu qu aucune table physique existe (juste une liaison sur les fueille exel..) il me faut une requete comme une table...
je sais pas si tu me comprend
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 16:40
20 mars 2007 à 16:40
si je te comprend et il te marque un message d'erreur ou tu as juste ta requete qui est vide
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 16:46
20 mars 2007 à 16:46
bouge pas j'essaye la msgbox mais je vois pas a quoi ca sert
CyPile
>
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
20 mars 2007 à 16:48
20 mars 2007 à 16:48
Juste a visualiser la requete.. en entier
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
20 mars 2007 à 16:49
20 mars 2007 à 16:49
dans ta msgbox tu a quand meme ce que tu as mis entre "" apres le Sql = "...?
CyPile
>
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
20 mars 2007 à 16:53
20 mars 2007 à 16:53
ui bien sur. La requete s ecrit normalement il manque juste les données...
Ciao..
J'ai creer une table nommer "Tbl_Prog" sur la base de ma requete..
NomPc et NomProg étant des nom de champ de ma table
nom_pc étant une requete tt simple
Je sais vraiment pas comment car normalement il faudrai que ma MsgBox me mette la requete avec le nom du champ que j ai sélectionner nn ?
J'ai creer une table nommer "Tbl_Prog" sur la base de ma requete..
Sql = "SELECT Tbl_Prog.NomPc FROM Tbl_Prog" Sql = Sql & " WHERE (((Tbl_Prog.NomProg) = """ & Me.lst_Resultat & """)) " DoCmd.DeleteObject acQuery, "nom_PC" 'supprime la requête CurrentDb.CreateQueryDef "nom_PC", Sql 'crée une nouvelle requete Set Qry = CurrentDb.QueryDefs("nom_PC") Set rs = Qry.OpenRecordset While Not rs.EOF ' MsgBox (Sql) txtTest.Value = rs(0) rs.MoveNext Wend Set Qry = Nothing Set rs = Nothing
NomPc et NomProg étant des nom de champ de ma table
nom_pc étant une requete tt simple
Je sais vraiment pas comment car normalement il faudrai que ma MsgBox me mette la requete avec le nom du champ que j ai sélectionner nn ?
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
3 312
21 mars 2007 à 08:52
21 mars 2007 à 08:52
En plus des simple quotes, tu peux essayer avec :
Me.lst_Resultat.value
Me.lst_Resultat.value
CyPile
>
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
21 mars 2007 à 08:59
21 mars 2007 à 08:59
Merci pour tes réponses..
mais sa ne mmarche tjr pas...
voila le code:
= ""' & Me.lst_Resultat.Value & '"")) "
les ' je n ai pas pu les mettre exactement ou toi tu les avait mis.. car il les pend comme un commentaire... je sais donc pas si s est bon la ou je les ai mis...
@plush
mais sa ne mmarche tjr pas...
voila le code:
= ""' & Me.lst_Resultat.Value & '"")) "
les ' je n ai pas pu les mettre exactement ou toi tu les avait mis.. car il les pend comme un commentaire... je sais donc pas si s est bon la ou je les ai mis...
@plush
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
3 312
>
CyPile
21 mars 2007 à 09:09
21 mars 2007 à 09:09
Si tu les refermes correctement avec " ça marche !
N'oublie pas non plus le ; à la fin, ça peut servir...
= '" & Me.lst_Resultat.Value & "'));"Et ce sont bien des simple-quotes (touche 4) et non des back-quotes (touche 7 en ALT-GR).
N'oublie pas non plus le ; à la fin, ça peut servir...
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
>
CyPile
21 mars 2007 à 09:11
21 mars 2007 à 09:11
ca fait la meme chose mais ecrit differement
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
>
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
21 mars 2007 à 09:04
21 mars 2007 à 09:04
ca ne sert a rien de mettre des .value partout si tu est sous access
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
21 mars 2007 à 08:58
21 mars 2007 à 08:58
si tu veut que ta msgbox s'affiche il ne faut pas la mettre en commentaire
c'est quoi ton probleme ca ne met toujours rien dans ta requete ?
c'est quoi ton probleme ca ne met toujours rien dans ta requete ?
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
21 mars 2007 à 09:03
21 mars 2007 à 09:03
tu as essayer de creer une requete comme je t dit hier ?
parceque si ca ne marche pas a ce niveau la on aurais une idee du probleme
parceque si ca ne marche pas a ce niveau la on aurais une idee du probleme
CyPile
>
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
21 mars 2007 à 09:07
21 mars 2007 à 09:07
J'ai pas eut le temp je test maintenan.. mais normalement sa devrai marcher avec ma new table nn ?
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
>
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
21 mars 2007 à 09:08
21 mars 2007 à 09:08
je ne sais pas parceque si ca marche en fesant comme je te dit c'est peut etre tout simplement un probleme de reference dans VBa
CyPile
>
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
21 mars 2007 à 09:14
21 mars 2007 à 09:14
Okay parce que la sa marche la requete... mais c est bizard alors que sa marche pas en VBA..
il faudrai traduire :
il faudrai traduire :
SELECT Tbl_Prog.NomPC FROM Tbl_Prog WHERE (((Tbl_Prog.NomProg)="Nero 7 Premium"));en VBA avec a la place de "Nero 7 Premium" le champ sélectionner dans la liste ... et c est peu etre sa qui marche pas...
Je pense qu'il y a une probleme au niveau du "ma_liste.value"
etes vous sur que la propriété value raporte la veleur selectionné dans la liste ?
etes vous sur que la propriété value raporte la veleur selectionné dans la liste ?
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
21 mars 2007 à 09:47
21 mars 2007 à 09:47
j'ai dit plus haut que le .value pour moi ca ne sert a rien
pour moi le probleme vien de
Sql = "SELECT Tbl_Prog.NomPc FROM Tbl_Prog"
Sql = Sql & " WHERE (((Tbl_Prog.NomProg) = """ & Me.lst_Resultat & """)) "
on demande de selectionner des truc pour lequel le nomProg est = a la liste mais si tu affiche des nom de pc dans ta liste ca ne marchera jamais
tu me suis ?
pour moi le probleme vien de
Sql = "SELECT Tbl_Prog.NomPc FROM Tbl_Prog"
Sql = Sql & " WHERE (((Tbl_Prog.NomProg) = """ & Me.lst_Resultat & """)) "
on demande de selectionner des truc pour lequel le nomProg est = a la liste mais si tu affiche des nom de pc dans ta liste ca ne marchera jamais
tu me suis ?
Ben comme tu peux le voir dans le message 62 sa serai juste le nom du programme qu il faudrai récuperer pour pourvoir faire la requete d afficher juste les nom des pc ou le prog est installé...
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
21 mars 2007 à 10:06
21 mars 2007 à 10:06
OK on va faire un test tous simple
tu creer un texte dans ton formulaire ou tu a ta liste tu l'appelle txttest et dans ta zone de liste tu creer le code sur click
txttest=lst_Resultat
et tu me dit si tu as quelque chose qui ce met dans le texte et surtout quoi
tu creer un texte dans ton formulaire ou tu a ta liste tu l'appelle txttest et dans ta zone de liste tu creer le code sur click
txttest=lst_Resultat
et tu me dit si tu as quelque chose qui ce met dans le texte et surtout quoi
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
21 mars 2007 à 10:14
21 mars 2007 à 10:14
fqait ce que blux a dit avec mon test mais tu met
txttest=lst_Resultat.column(0)
apres 1 , apres 2 etc...
txttest=lst_Resultat.column(0)
apres 1 , apres 2 etc...
Merci a vous 2..
J ai test mais une erreur (2185) apparait : impossible de faire reference a une propriété ou de la definir pour un controle si celle ci n est pas activé...
J ai test mais une erreur (2185) apparait : impossible de faire reference a une propriété ou de la definir pour un controle si celle ci n est pas activé...
fl0
Messages postés
357
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
10 novembre 2021
209
21 mars 2007 à 10:34
21 mars 2007 à 10:34
c'est peut etre un probleme de reference dans option Vba mais je n'ai aucune idée de laquelle