ACCESS / VBA probleme requete combobox
Résolu/Fermé
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
-
21 juil. 2008 à 16:13
sowdms - 27 mars 2010 à 16:53
sowdms - 27 mars 2010 à 16:53
A voir également:
- Access vba combobox
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Acer quick access - Forum Logiciels
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Access appdata - Guide
- Access runtime ✓ - Forum Access
9 réponses
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
22 juil. 2008 à 09:27
22 juil. 2008 à 09:27
Bonjour,
Dans ton code VBA, met ta requête SQL dans une variable
et ensuite configure 2 champs de ta combobox.
ma_requete_sq="select ... from ...";
cmboNames.RowSourceType = "Table/Query"
cmboNames.RowSource = ma_requete_sql
Ensuite fait un Requery pour calculer le résultat de ta requête.
Ta combo sera remplie automatiquement avec tes valeurs.
Cdlt.
Dans ton code VBA, met ta requête SQL dans une variable
et ensuite configure 2 champs de ta combobox.
ma_requete_sq="select ... from ...";
cmboNames.RowSourceType = "Table/Query"
cmboNames.RowSource = ma_requete_sql
Ensuite fait un Requery pour calculer le résultat de ta requête.
Ta combo sera remplie automatiquement avec tes valeurs.
Cdlt.
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
1
22 juil. 2008 à 10:20
22 juil. 2008 à 10:20
Merci pour ta réponse mais j'ai déja essayer cette cette solution.
en fait j'ai 2 combobox dans le 1er il ya des valeurs à partir d'une table et je veux en choisissant une valeur,le 2eme combo contenira les valeurs correspondant à cette valeur à partir d'une autre table.
avec cette solution lorsque je change la valeur du 1er combobox les valeurs du 2eme ne change pas.
en fait j'ai 2 combobox dans le 1er il ya des valeurs à partir d'une table et je veux en choisissant une valeur,le 2eme combo contenira les valeurs correspondant à cette valeur à partir d'une autre table.
avec cette solution lorsque je change la valeur du 1er combobox les valeurs du 2eme ne change pas.
Ismènee
Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
1 octobre 2008
2
22 juil. 2008 à 11:06
22 juil. 2008 à 11:06
d'abord tu dois ecrire la requete dans combobox 1(on double cliquant sur combo1), par exemple:
Imports System.Data.OleDb
Public Class Form1
Inherits System.Windows.Forms.Form
Dim command As OleDbCommand
Dim cnx As OleDbConnection
Dim dr As OleDbDataReader
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
command = New OleDbCommand("select champ1 from table where champ='" & ComboBox1.Text & "'", cnx)
dr = command.ExecuteReader
While dr.Read
ComboBox2.Items.Add(dr(0))
End While
dr.Close()
cnx.Close()
End Sub
End Class
Imports System.Data.OleDb
Public Class Form1
Inherits System.Windows.Forms.Form
Dim command As OleDbCommand
Dim cnx As OleDbConnection
Dim dr As OleDbDataReader
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
command = New OleDbCommand("select champ1 from table where champ='" & ComboBox1.Text & "'", cnx)
dr = command.ExecuteReader
While dr.Read
ComboBox2.Items.Add(dr(0))
End While
dr.Close()
cnx.Close()
End Sub
End Class
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
>
Ismènee
Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
1 octobre 2008
22 juil. 2008 à 11:17
22 juil. 2008 à 11:17
C'est ça mais c'est beacoup trop compliqué comme code pour le même résultat.
Mon idée (et je l'ai appliqué) est de construire tes interfaces avec tes combobox, de définir pour chacune les requête en mettant comme critère la valeur du champs précédent.
Ensuite pour chaque evenement 'AfterChange' des combos tu places dans le code combo_de_la_prochaine combobox.requery.
Ceci indiquera de réévaluer la requête de la combo suivante et tu auras tes valeurs automatiquement.
Mon idée (et je l'ai appliqué) est de construire tes interfaces avec tes combobox, de définir pour chacune les requête en mettant comme critère la valeur du champs précédent.
Ensuite pour chaque evenement 'AfterChange' des combos tu places dans le code combo_de_la_prochaine combobox.requery.
Ceci indiquera de réévaluer la requête de la combo suivante et tu auras tes valeurs automatiquement.
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
22 juil. 2008 à 10:42
22 juil. 2008 à 10:42
J'ai fait ce genre d'interface.
Dans ta combo1 tu mets ta requête principale.
Dans ta combo2 tu crées ta requête avec comme critères la valeur de la combo1:
Exemple de sélection d'un lieu depuis un nom de societe (traduction en SQL du constructeur de requête):
SELECT lieu
FROM Societe
WHERE (((nom)=[combo1]));
Sur l'évènement 'AfterUpdate' de combo1 tu mets: combo2.Requery
Et ceci marche très bien
Cdlt.
Dans ta combo1 tu mets ta requête principale.
Dans ta combo2 tu crées ta requête avec comme critères la valeur de la combo1:
Exemple de sélection d'un lieu depuis un nom de societe (traduction en SQL du constructeur de requête):
SELECT lieu
FROM Societe
WHERE (((nom)=[combo1]));
Sur l'évènement 'AfterUpdate' de combo1 tu mets: combo2.Requery
Et ceci marche très bien
Cdlt.
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
1
22 juil. 2008 à 11:08
22 juil. 2008 à 11:08
Merci bcp mais j'ai un message d'erreur : Microsoft Office Access ne peut pas trouver la macro combo2.requery
:-(
:-(
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
22 juil. 2008 à 11:12
22 juil. 2008 à 11:12
combo1 et combo2 sont des exemples.
Pour toi, tu dois mettre le nom de tes combobox.
Pour toi, tu dois mettre le nom de tes combobox.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
1
22 juil. 2008 à 11:16
22 juil. 2008 à 11:16
oui bien sur jai mi le nom de mon combo,c'etai juste pour t'expliquer l'erreur
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
22 juil. 2008 à 11:19
22 juil. 2008 à 11:19
Donne moi ton code que je vois ce qu'il ne vas pas.
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
1
22 juil. 2008 à 11:26
22 juil. 2008 à 11:26
Dans combo1 'RowSource' :(Modifiable7 est le nom du 1er combo)
SELECT FONCIER.TITRE FROM FONCIER ORDER BY [TITRE];
Dans combo2 'RowSource' : (Modifiable38 est le nom du 2eme combo)
SELECT NUMP FROM PARCELLE WHERE TITRE=Modifiable7;
Dans Combo1 'AfterUpdate' :
Modifiable38.Requery
SELECT FONCIER.TITRE FROM FONCIER ORDER BY [TITRE];
Dans combo2 'RowSource' : (Modifiable38 est le nom du 2eme combo)
SELECT NUMP FROM PARCELLE WHERE TITRE=Modifiable7;
Dans Combo1 'AfterUpdate' :
Modifiable38.Requery
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
22 juil. 2008 à 11:37
22 juil. 2008 à 11:37
Mets des [] pour indiqué le nom de la combo.
SELECT NUMP FROM PARCELLE WHERE TITRE=[Modifiable7];
SELECT NUMP FROM PARCELLE WHERE TITRE=[Modifiable7];
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
1
22 juil. 2008 à 11:43
22 juil. 2008 à 11:43
Meme si j'ai ajouté [],le meme message d'ereur s'affiche.
le probleme est dans Modifiable7.Requery
Car la requete donne pour la 1ere fois les valeurs correspondant au combo1 mai lorsque je veu changer la valeur du 1er combo ça marche pa :-(
le probleme est dans Modifiable7.Requery
Car la requete donne pour la 1ere fois les valeurs correspondant au combo1 mai lorsque je veu changer la valeur du 1er combo ça marche pa :-(
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
22 juil. 2008 à 11:54
22 juil. 2008 à 11:54
Liste moi les méthodes de ton contrôle en faisant : Modifiable7. (et ensuite Ctrl+Espace)
Et regarde dans la liste ce qu'il te propose.
Question : tu es sous Access 2000, 2003, 2007 ?
Et regarde dans la liste ce qu'il te propose.
Question : tu es sous Access 2000, 2003, 2007 ?
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
1
22 juil. 2008 à 11:52
22 juil. 2008 à 11:52
Ok merci pour ts mon prob é résolu
dans AfterUpdate jai choisi Generateur de Macro
et dans Action jai choisi executer le code
et jai Taper Modifiable7.Requery dans Nom de la fonction
Merci bcp dmoniac75 é Ismène é dézolé pour dérangement ;-)
dans AfterUpdate jai choisi Generateur de Macro
et dans Action jai choisi executer le code
et jai Taper Modifiable7.Requery dans Nom de la fonction
Merci bcp dmoniac75 é Ismène é dézolé pour dérangement ;-)
dmoniac75
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
25 août 2008
22 juil. 2008 à 11:58
22 juil. 2008 à 11:58
Oublie pas de mettre ton problème en 'Résolu'.
@+
@+
saanaa
Messages postés
16
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
12 avril 2009
1
22 juil. 2008 à 12:00
22 juil. 2008 à 12:00
ok merci a+