[Access 2010] Combobox et requete sql (vba)
Résolu
kubito
Messages postés
315
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [Access 2010] Combobox et requete sql (vba)
- Clé activation office 2010 gratuit - Télécharger - Sécurité
- Word 2010 - Télécharger - Traitement de texte
- Incompatibilité de type vba ✓ - Forum Programmation
- Acer quick access - Forum logiciel systeme
- Waptrick java football 2010 - Télécharger - Jeux vidéo
20 réponses
Bonjour,
Dim sql As String
sql = "SELECT Matieres.[Nom matiere] FROM Matieres"
cmb_matieres.RowSource = sql
cmb_matieres.Requery
Cela suffit, meme sans le Requery cela marche. Par quel evenement initialisez vous votre combobox??
Dim sql As String
sql = "SELECT Matieres.[Nom matiere] FROM Matieres"
cmb_matieres.RowSource = sql
cmb_matieres.Requery
Cela suffit, meme sans le Requery cela marche. Par quel evenement initialisez vous votre combobox??
Merci pour votre réponse. L'évènement est onclick.
Cependant, la requête définitive sera plus longue (celle-la c'était pour tester). et en fonction de la sélection dans la combobox, plusieurs textbox et/ou étiquettes s'actualiseront.
Par exemple, si dans la combobox, je choisis "Droit" alors une textbox, affichera le responsable du cours, une autre les objectifs, une autre les modalités d'examen...
Le but est que la combobox n'affiche qu'une colonne (à paramétrer dans ses propriétés ; ça je sais faire ^^) et les textbox les autres colonnes, d'où le Me.cmb_matieres.Column(0, X).
Code sans la correction apportée :
Une idée ?
_______________________________
SCV ready to go sir
Cependant, la requête définitive sera plus longue (celle-la c'était pour tester). et en fonction de la sélection dans la combobox, plusieurs textbox et/ou étiquettes s'actualiseront.
Par exemple, si dans la combobox, je choisis "Droit" alors une textbox, affichera le responsable du cours, une autre les objectifs, une autre les modalités d'examen...
Le but est que la combobox n'affiche qu'une colonne (à paramétrer dans ses propriétés ; ça je sais faire ^^) et les textbox les autres colonnes, d'où le Me.cmb_matieres.Column(0, X).
Code sans la correction apportée :
Private Sub cmb_matieres_Click() Dim baseMat As DAO.Database Dim rsMat As DAO.Recordset Dim sql As String Dim X As Integer 'X = Me.cmb_matieres.ListIndex Set baseMat = CurrentDb 'Set rsMat = baseMat.OpenRecordset("Matieres") sql = "SELECT Matieres.[Nom matiere] FROM Matieres" 'DoCmd.RunSQL sql 'Set rsMat = baseMat.OpenRecordset(sql) cmb_matieres.RowSourceType = "Table/Query" cmb_matieres.RowSource = sql cmb_matieres.Requery Me.cmb_matieres.Column(0, X) = rsMat.[Nom matiere] End Sub
Une idée ?
_______________________________
SCV ready to go sir
Re,
Private Sub cmb_matieres_Click() ne fonctionne que si la liste du combobox est remplie. C'est le click sur un des elements de la liste.
Private Sub cmb_matieres_Click() ne fonctionne que si la liste du combobox est remplie. C'est le click sur un des elements de la liste.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sur la form "onload" ca fonctionnerait ?
Je viens de tester oui un un form load, c'est bon pour la combobox mais, évidemment, les textbox n'affichent rien.
_______________________________
SCV ready to go sir
Je viens de tester oui un un form load, c'est bon pour la combobox mais, évidemment, les textbox n'affichent rien.
_______________________________
SCV ready to go sir
C'est noté. Un grand merci déjà pour ces précisions.
Une idée peut être pour le reste de la problématique ?
Une idée peut être pour le reste de la problématique ?
Re,
Definir le nombre de colonnes de votre Combobox (au moins autant que de textebox a remplir)
Remplacez les lettres x, y, z ........ par le nom de vos textebox.Value
Private Sub Cmb_matieres_Change()
X = Cmb_matieres.Column(0)
y = Cmb_matieres.Column(1)
z = Cmb_matieres.Column(2)
End Sub
Definir le nombre de colonnes de votre Combobox (au moins autant que de textebox a remplir)
Remplacez les lettres x, y, z ........ par le nom de vos textebox.Value
Private Sub Cmb_matieres_Change()
X = Cmb_matieres.Column(0)
y = Cmb_matieres.Column(1)
z = Cmb_matieres.Column(2)
End Sub
Euh...ca marche pas..
Rien ne s'affiche dans la textbox (j'en ai pris qu'une pour tester).
J'ai bien lié 5 colonnes a la combo et préciser de n'en affiche qu'une mais rien n'y fait.
Voici le code, y a peut être une erreur...mais je sais pas ou
Je vais m'arracher les cheveux.
Rien ne s'affiche dans la textbox (j'en ai pris qu'une pour tester).
J'ai bien lié 5 colonnes a la combo et préciser de n'en affiche qu'une mais rien n'y fait.
Voici le code, y a peut être une erreur...mais je sais pas ou
Option Compare Database Private Sub cmb_matieres_Change() Me.cmb_matieres.Value = Me.cmb_matieres.Column(0) Me.txt_respo.Value = Me.cmb_matieres.Column(2) End Sub Private Sub Form_Activate() Me.cmb_matieres.Value = "Sélectionnez une matière" 'ca devrait s'afficher mais la non plus, ca ne s'affiche pas SQL = "SELECT DISTINCT Matieres.[Nom Matiere], Matieres.[Nom respo], Matieres.[Prenom respo], Enseignants.Courriel, Enseignants.Nom " SQL = SQL & "FROM (Matieres INNER JOIN [Fiches pedagogiques] ON Matieres.CodeMatiere = [Fiches pedagogiques].Codematiere) " SQL = SQL & "INNER JOIN (Enseignants INNER JOIN [Matiere/Prof] ON Enseignants.NumEns = [Matiere/Prof].Enseignants) " SQL = SQL & "ON Matieres.CodeMatiere = [Matiere/Prof].CodeMatiere " SQL = SQL & "WHERE Enseignants.Nom = Matieres.[Nom respo]" Me.cmb_matieres.RowSource = SQL End Sub Private Sub Form_Current() Me.cmb_matieres.SetFocus Me.cmb_matieres.SelStart = 0 End Sub
Je vais m'arracher les cheveux.
Je viens de tester, oui elle affiche ce que je souhaite.
De plus, quand je demande d'afficher toutes les colonnes dans la combo, tout s'affiche egalement.
De plus, quand je demande d'afficher toutes les colonnes dans la combo, tout s'affiche egalement.
Re,
Ce sont les parametres que j'utilise
parametre combobox:
Nbr Colonne = 1
Colonne lie = 1
A suivre
Ce sont les parametres que j'utilise
parametre combobox:
Nbr Colonne = 1
Colonne lie = 1
A suivre
En ce qui me concerne :
nbre de colonne = 1
colonne liée = 5
Je pense que c'est obligatoire si je veux afficher dans mes textbox les differentes colonnes de la combo (ou plus precisement de la requete sql).
C'est peut être une info importante mais que je demande d'afficher la 1 ere, 2 eme ou 3eme colonne, il m'affiche quand meme la 1ere...).
nbre de colonne = 1
colonne liée = 5
Je pense que c'est obligatoire si je veux afficher dans mes textbox les differentes colonnes de la combo (ou plus precisement de la requete sql).
C'est peut être une info importante mais que je demande d'afficher la 1 ere, 2 eme ou 3eme colonne, il m'affiche quand meme la 1ere...).
Quand je met nber de col. 1 et lié 1 :
Effectivement, "Sélectionnez une matière" s'affiche a nouveau. Quand j'en sélectionne une, elle ne d'affiche pas dans l'en tête de la combobiox, elle est dans la liste mais elle n'apparait pas comme sélectionnée.
J'étais persuadé qu'il fallait mettre le nombre de colonnes liées egal au nombre de colonnes de la requete.
La derniere fois que j'ai travaille sous access c'etait avec la version 2003...et je m'en sortais beaucoup mieux.
Effectivement, "Sélectionnez une matière" s'affiche a nouveau. Quand j'en sélectionne une, elle ne d'affiche pas dans l'en tête de la combobiox, elle est dans la liste mais elle n'apparait pas comme sélectionnée.
J'étais persuadé qu'il fallait mettre le nombre de colonnes liées egal au nombre de colonnes de la requete.
La derniere fois que j'ai travaille sous access c'etait avec la version 2003...et je m'en sortais beaucoup mieux.
En attendant vous semblez avoir de meilleurs resultats au niveau de la textbox car, chez moi, elle reste d'un blanc immacule (j'ai bien vérifié la couleur de la police ^^)
J'ai recupéré la base que j'avais fait il y a quelques années et , curieusement, il n'y a pas 1 colonne ni 5 mais 12 et c'est avec la propriété "largeur colonnes" qu'il est possible d'en en afficher qu'une :
largeur colonnes : 5cm;0cm;0cm;0cm...
Par contre colonne liée est a 1.
Peut etre que c'est un indice.
largeur colonnes : 5cm;0cm;0cm;0cm...
Par contre colonne liée est a 1.
Peut etre que c'est un indice.
Ca y ai, j'ai trouvé.
C'était ca l'astube :
Nombre de colonne = 5
Colonne liée = 1
Règler la largeur des colonnes pour n'en afficher qu'une et le tour est joué.
Test avec 2 textbox, elles affichent les bonnes infos.
Encore merci pour tout et RDV très vite car bien que ma requete me satisfasse, une petite modification pourrait la parfaire mais, la encore, je seche.
C'était ca l'astube :
Nombre de colonne = 5
Colonne liée = 1
Règler la largeur des colonnes pour n'en afficher qu'une et le tour est joué.
Test avec 2 textbox, elles affichent les bonnes infos.
Encore merci pour tout et RDV très vite car bien que ma requete me satisfasse, une petite modification pourrait la parfaire mais, la encore, je seche.