Alors les experts personne n'a une idée pour mon probléme

Résolu
germany1970 Messages postés 134 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 mars 2014 - 5 juin 2011 à 10:21
ingito Messages postés 35 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 17 juin 2011 - 6 juin 2011 à 23:19
Bonjour,
alors j'ai un combobox remplie par les enregistrements d'une colonne de ma BDD access, et ce je l'ai fais à l'aide de l'assistant de VB(utilisez les éléments liés à une base de données).
jusqu'au là tout est bien mo combo est bien remplie avec les enregistrements, mais ce que je veux c'est filtrer l'affichage des enregistrements avec une condition.

ex:je veux par exemple dans une école afficher dans mon combo que les éléves qui etudient chez le professeur PAUL.

dans mon form j'ai un textbox qui affiche PAUL, et sur la base de ce textbox que je veux faire la condition d'affichage.

alors est ce qu'il y a moyen de faire ça soit je remplie mon combo avec code ou avec l'assistant de VB.


je vous remercie infiniment pour votre aide.

10 réponses

ingito Messages postés 35 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 17 juin 2011
6 juin 2011 à 13:48
pardon
rseleve.Open "SELECT * FROM table_eleve where mon_prof='" & combo_prof.text & "'", Con, ConadOpenKeyset, adLockOptimistic

au lieu de la ligne
rseleve.Open "SELECT * FROM table_eleve where mon_prof='" & combo_eleve.text & "'", Con, ConadOpenKeyset, adLockOptimistic
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2011 à 10:31
Bonjour,
Tu sais donc apparemment te connecter à ta base Access (puisque tu sais remplir ta combo).
Il te suffit donc d'apprendre comment obtenir un recordset à partir d'une requete !
Et pour cela, pas besoins d' "experts" ! Les exemples sur ce forum fourmillent litéralement.
A toi de les lire. Tu as pour cela un moteur de recherche


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 juin 2011 à 13:08
Salut

La section qui s'occupe des données se trouve dans la catégorie Données des propriétés de ta ComboBox.
Clique sur la ligne DataSource et appuis sur F1 : Tu tomberas sur la page d'aide expliquant <comment filtrer les données>

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
germany1970 Messages postés 134 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 mars 2014 3
5 juin 2011 à 13:17
Bonjour Jack, comment ça va?????
est ce que tu peut m'aider pour remplir mon combobox par code et faire ce filtre.

merci
0

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

Posez votre question
germany1970 Messages postés 134 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 mars 2014 3
5 juin 2011 à 14:21
bounjour,

alors voilà pour remplir mon combo avec code j'ai mis ce code :

ComboBox1.DataSource = dts.Tables("marchandise")
ComboBox1.DisplayMember = "libelle"
ComboBox1.ValueMember = "libelle"

alors je me bloque dans le filtre par rapport au contenu d'un textbox.

par exemple si j'ai un fournisseur "X" dans mon textbox le contenu de mon combobox doit afficher seulement les marchandises que vent ce fournisseur.

alors voilà mon contraint .
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 juin 2011 à 23:32
Si tu affiches des marchandises, tu ne pourras filtrer que des marchandises.
Puisqu'on n'a aucune idée du contenu de ta table marchandises, comment veux-tu qu'on te dise quel est le lien avec fournisseur ?

Encore une fois, je te demande de réfléchir avant de poser des questions : On n'est pas au dessus de ton épaule !
0
germany1970 Messages postés 134 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 mars 2014 3
6 juin 2011 à 00:19
alors Mr jack.

voilà mes tables comment elles se présente :
MARCHANDIES:

type_marchandise PU Fournisseur

dentifrice 20.20 PAUL
shampoo 5.10 RICHARD
brosse à dents 10.50 PAUL
savon 2.00 HENRI
papier serviette 6.30 PAUL


dans un textbox quand il s'affiche par exemple PAUL alors le combobox doit afficher que: dentifrice
brosse à dents
papier serviette

je crois que maintenant mon probléme est clair.

alors Mr jack qu'est ce que tu peux faire pour moi maintenant
0
ingito Messages postés 35 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 17 juin 2011
6 juin 2011 à 13:45
bonjour
tu déclare deux record set l'un remplis le combobox prof et l'autre le combobox élevé
rseleve pour la table élevés
rsprof pour la table profs
une connexion con à ta table

tu remplis le combo_prof dans le form_load comme suit

dim con as ADODB.Connection
dim rseleve as ADODB.Recordset
dim rseleve as ADODB.Recordset
Chemindata = "le chemin complet ta base de données" 'c:\...........

Set Con = New ADODB.Connection
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = '" & Chemindata & "'"
Con.Open

Set rsprof = New ADODB.Recordset
rsprof .CursorType = adOpenStatic
rsprof .Open "SELECT * FROM table_prof", Con, ConadOpenKeyset, adLockOptimistic

while rsprof.eof=false
combo_prof.addnew rsprof!nom_du_professeur
rsprof.movenext
wend
rsprof.close
après dans l’évènement Click du combo_prof tu met ce code

Private Sub Combo_prof_Click()
Static Memoire As String
If Memoire <> Combo2.Text Then
Set rsprof = New ADODB.Recordset
rseleve.CursorType = adOpenStatic
rseleve.Open "SELECT * FROM table_eleve where mon_prof='" & combo_eleve.text & "'", Con, ConadOpenKeyset, adLockOptimistic
Combo1.Clear
rseleve.MoveFirst
While rseleve.EOF = False
combo_prof.addnew rseleve!nom_eleve
rseleve.MoveNext
Wend
End If
rseleve.close
End Sub

j'espere ce que tu veut
0
germany1970 Messages postés 134 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 mars 2014 3
6 juin 2011 à 19:09
Bonjour ingito,
je vous remercie infiniment, mais j'ai un petit souci avec recordset, qu'elle est la référence à ajouter parceque j'ai une erreur "recordset n'est pas défini.

merci encore une fois.
0
ingito Messages postés 35 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 17 juin 2011
6 juin 2011 à 23:19
pardons,j'ai fais qlq erreurs dans le code je viens de le réviser voila le rectifié

rseleve pour la table élevés
rsprof pour la table profs
une connexion con à ta table

dans la zone déclaration
public con as ADODB.Connection
public rsprof as ADODB.Recordset
public rseleve as ADODB.Recordset

tu remplis le combo_prof dans le form_load comme suit

Chemindata = "le chemin complet ta base de données" 'c:\...........

Set Con = New ADODB.Connection
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = '" & Chemindata & "'"
Con.Open

Set rsprof = New ADODB.Recordset
rsprof .CursorType = adOpenStatic
rsprof .Open "SELECT * FROM table_prof", Con, ConadOpenKeyset, adLockOptimistic

combo_pro.clear
rsprof.movefirst
while rsprof.eof=false
combo_prof.addnew rsprof!nom_du_professeur
rsprof.movenext
wend
rsprof.close

après dans l'évènement Click du combo_prof tu met ce code
Private Sub Combo_prof_Click()
Static Memoire As String
If Memoire <> Combo_prof.Text Then
Set rseleve= New ADODB.Recordset
rseleve.CursorType = adOpenStatic
rseleve.Open "SELECT * FROM table_eleve where mon_prof='" & combo_eleve.text & "'", Con, ConadOpenKeyset, adLockOptimistic
Combo_eleve.Clear
rseleve.MoveFirst
While rseleve.EOF = False
Combo_eleve.addnew rseleve!nom_eleve
rseleve.MoveNext
Wend
End If
rseleve.close
End Sub

je croix que ça doit marcher fait moi signe
0
Rejoignez-nous