Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Combo box et vba

5 réponses
Avatar
Thibault
BONJOUR A TOUS!!
Bon, je suis entrain d apprendre VBA pour access avec un gros boukin pas
tres rigolo , mais je suis plein de bonne volonte... mais il faut aussi que
je continu a bosser sur ma base, ou jai toujours mon probleme de combobox.
Cette fois je dois etre en mesure de le regler avec du code.

J ai un probleme avec une combo box ds un formulaire..

J ai trois colonne ds ma combo box et je souhaiterai "stoker" les donnees
des trois colonnes a la fois dans des textbox du meme formulaire, mais aussi
dans la table liee a ce formulaire...

En fait , mes donnees se callent bien dans les text box du formulaire, mais
pas dans la table lie a ce meme formulaire , les donnees ne sont pas stoker..
je comprend pas.

Voici ma combo box132: elle reference le Nom , le prenom et le type d
employee...
Row source: SELECT INFOEMPLEADOS.Apellido, INFOEMPLEADOS.[Nombre 1],
INFOEMPLEADOS.contratistaopermanenete FROM INFOEMPLEADOS ORDER BY [Apellido],
[contratistaopermanenete];

Puis ma text box "Nombre" (prenom en espagnol) a comme control source
=Combo132.column(1)

ma text box "Tipo de empleado" : =Combo132.column(2)

Et jusque la tout fonctionne parfaitement.. ce que je ne comprend pas ce que
losque je vais verifier dans ma table "Raport de production des bolillos"
(table source du formulaire) les champs "Nombre" et "tipo de empleados" reste
vierge...

Losrque lon utilise le Wizard pour la construction dune combo, il nous
propose q une seule colonne a stoker j ai donc naturellement pris le nom de
famille (premiere colonne de ma combobox) qui , lui, se calle parfaitement
dans la table source... Je suis sur que je peux faire de meme mais pour
lensemble de mes donnees en utilisant VBA...
un code du genre:

Private sub combo132_click ()
Store valu col1 in table "Prodreportbolillos col2"
Store value col2 in textbox12 and in table "Prodreportbolillos col3"
Store value col3 in textbox14 and in table "Prodreportbolillos col4"
end sub

PS: oui je sai , ca ressemblera pas du tout a ca.. mais c est l idee...

VOila, j espere que c est pas trop confu ... merci de votre patience!
thib

5 réponses

Avatar
J-Pierre
Bonjour,

Ta table n'est pas mise à jour car tes textbox sont indépendantes. Comme source des textbox, tu mets le nom du champ de la table, et
tu fais la MAJ par code VBA sur évènement après MAJ de ta comboBox.

Me.Nombre =Combo132.column(1)

le code que j'utilise pour ce genre de choses, mais il y a peut-être plus simple:

Dim ctl As Control
Dim ix1 As Integer

Me.monChamp= Null
Set ctl = Me.maComboBox
For ix1 = 0 To ctl.ListCount - 1
If Me.maComboBox= ctl.Column(0, ix1) Then
Me.monChamp= ctl.Column(1, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------


"Thibault" a écrit dans le message de news:

BONJOUR A TOUS!!
Bon, je suis entrain d apprendre VBA pour access avec un gros boukin pas
tres rigolo , mais je suis plein de bonne volonte... mais il faut aussi que
je continu a bosser sur ma base, ou jai toujours mon probleme de combobox.
Cette fois je dois etre en mesure de le regler avec du code.

J ai un probleme avec une combo box ds un formulaire..

J ai trois colonne ds ma combo box et je souhaiterai "stoker" les donnees
des trois colonnes a la fois dans des textbox du meme formulaire, mais aussi
dans la table liee a ce formulaire...

En fait , mes donnees se callent bien dans les text box du formulaire, mais
pas dans la table lie a ce meme formulaire , les donnees ne sont pas stoker..
je comprend pas.

Voici ma combo box132: elle reference le Nom , le prenom et le type d
employee...
Row source: SELECT INFOEMPLEADOS.Apellido, INFOEMPLEADOS.[Nombre 1],
INFOEMPLEADOS.contratistaopermanenete FROM INFOEMPLEADOS ORDER BY [Apellido],
[contratistaopermanenete];

Puis ma text box "Nombre" (prenom en espagnol) a comme control source
=Combo132.column(1)

ma text box "Tipo de empleado" : =Combo132.column(2)

Et jusque la tout fonctionne parfaitement.. ce que je ne comprend pas ce que
losque je vais verifier dans ma table "Raport de production des bolillos"
(table source du formulaire) les champs "Nombre" et "tipo de empleados" reste
vierge...

Losrque lon utilise le Wizard pour la construction dune combo, il nous
propose q une seule colonne a stoker j ai donc naturellement pris le nom de
famille (premiere colonne de ma combobox) qui , lui, se calle parfaitement
dans la table source... Je suis sur que je peux faire de meme mais pour
lensemble de mes donnees en utilisant VBA...
un code du genre:

Private sub combo132_click ()
Store valu col1 in table "Prodreportbolillos col2"
Store value col2 in textbox12 and in table "Prodreportbolillos col3"
Store value col3 in textbox14 and in table "Prodreportbolillos col4"
end sub

PS: oui je sai , ca ressemblera pas du tout a ca.. mais c est l idee...

VOila, j espere que c est pas trop confu ... merci de votre patience!
thib









Avatar
Thibault
Ok, merci J-pierre...!

VU que je suis toujours entrain d apprendre.. tu crois que tu peux m
eclairer sur 1 ou 2 points? En fait , je souhaiterai vraiment apprendre a
fond le code , mais je suis en pleine phase d apprentissage.. ce message te
paraitra sans doute tres tres innocent , mais je suis plein de bonne volonte!

En fait , j arrive pas a trouver dans mon boukin ce que tu entends pas MAJ
.. ca doit pas etre trop complique..
"tu fais la MAJ par code VBA sur évènement après MAJ de ta comboBox."
tu veux dire que je dois taper ce code sur la meme feuille de control de ma
combo box? juste en dessous en fait?

Je pense que ma table est mise a jour, parceque toutes les autres etiquettes
de mon formulaire fonctionnent parfaitement .. c est juste lorsque je change
le control source de mes deux textbox que les donnees ne s y affichent plus..
il faut donc surement que je fasse une mise a jour , uniquement de ces deux
textbox la... comment je fait? (je creer un evenement sur la textbox avec une
procedure "update when exit"?

Enfin .. a voir si j ai bien compris ton code:

Si jai : nom de ma combobox : cboApellidos
nom de ma textbox1 : txtNombre
nom de ma textbox2: txttipodeempleados

jaurai donc un code qui ressemble a ca:

Dim ctl as control
Dim ix1 as integer
Dim ix2 as integer

Me.txtNombre=Null
Set ctl =me.cboApellidos
for ix1=0 to ctl.listcount -1
if me.cboApellidos = ctl.colunm(0,ix1 ) then
me.txtNombre = clt.colum(1,ix1)
exit for
end if

Me.txttipodeempleado = null
set ctl = me.cboApellidos
for ix2 = 0 to ctl.listcount -1
if me.cboapellidos = ctl.column (0,ix2) then
me.txttipodeempleados = clt.column(1,ix2)
exit for
enf if
next ix1
set ctl
end sub

EN fait , je comprends pas trop le ix1.. et je dois sans doute me tromper
sur la seconde partie. Je veux vraiment apprendre , et si tu pourrai me dire
2 mot sur cette variable , ca m aiderai sans doute pour la suite.

MErci beaucoup beaucoup!! je suis plein de bonne volonte mais encore un tres
tres jeune utilisateur du code... mais je veux vraiment apprendre.
Encore merci,
Thib.







Bonjour,

Ta table n'est pas mise à jour car tes textbox sont indépendantes. Comme source des textbox, tu mets le nom du champ de la table, et
tu fais la MAJ par code VBA sur évènement après MAJ de ta comboBox.

Me.Nombre =Combo132.column(1)

le code que j'utilise pour ce genre de choses, mais il y a peut-être plus simple:

Dim ctl As Control
Dim ix1 As Integer

Me.monChamp= Null
Set ctl = Me.maComboBox
For ix1 = 0 To ctl.ListCount - 1
If Me.maComboBox= ctl.Column(0, ix1) Then
Me.monChamp= ctl.Column(1, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------


"Thibault" a écrit dans le message de news:

BONJOUR A TOUS!!
Bon, je suis entrain d apprendre VBA pour access avec un gros boukin pas
tres rigolo , mais je suis plein de bonne volonte... mais il faut aussi que
je continu a bosser sur ma base, ou jai toujours mon probleme de combobox.
Cette fois je dois etre en mesure de le regler avec du code.

J ai un probleme avec une combo box ds un formulaire..

J ai trois colonne ds ma combo box et je souhaiterai "stoker" les donnees
des trois colonnes a la fois dans des textbox du meme formulaire, mais aussi
dans la table liee a ce formulaire...

En fait , mes donnees se callent bien dans les text box du formulaire, mais
pas dans la table lie a ce meme formulaire , les donnees ne sont pas stoker..
je comprend pas.

Voici ma combo box132: elle reference le Nom , le prenom et le type d
employee...
Row source: SELECT INFOEMPLEADOS.Apellido, INFOEMPLEADOS.[Nombre 1],
INFOEMPLEADOS.contratistaopermanenete FROM INFOEMPLEADOS ORDER BY [Apellido],
[contratistaopermanenete];

Puis ma text box "Nombre" (prenom en espagnol) a comme control source
=Combo132.column(1)

ma text box "Tipo de empleado" : =Combo132.column(2)

Et jusque la tout fonctionne parfaitement.. ce que je ne comprend pas ce que
losque je vais verifier dans ma table "Raport de production des bolillos"
(table source du formulaire) les champs "Nombre" et "tipo de empleados" reste
vierge...

Losrque lon utilise le Wizard pour la construction dune combo, il nous
propose q une seule colonne a stoker j ai donc naturellement pris le nom de
famille (premiere colonne de ma combobox) qui , lui, se calle parfaitement
dans la table source... Je suis sur que je peux faire de meme mais pour
lensemble de mes donnees en utilisant VBA...
un code du genre:

Private sub combo132_click ()
Store valu col1 in table "Prodreportbolillos col2"
Store value col2 in textbox12 and in table "Prodreportbolillos col3"
Store value col3 in textbox14 and in table "Prodreportbolillos col4"
end sub

PS: oui je sai , ca ressemblera pas du tout a ca.. mais c est l idee...

VOila, j espere que c est pas trop confu ... merci de votre patience!
thib














Avatar
Thibault
OKKKK!!!

Bon oublie tout ce que jai di dans le premiere reponse.. CA marche! apres
avoir un peu lutter jai fini par comprendre, et ca marche!!
en fait Ix1 a un rapport avec les lignes de ma combo box c ca? genre pour
bien quil me mette les donnees dune meme ligne ...
ensuite le coup de la mise a jour, il suffit simplement de remettre le nom
du champ de la table en control source.

Maintenant , je galere juste un peu a faire la meme chose pour la deuxieme
text box.. je taper ce code, mais ca ne functionne pas vraiment..:

Private Sub cboApellidos_Click()
Dim ctl As Control
Dim ix1 As Integer

Me.Nombre = Null
Set ctl = Me.cboApellidos
For ix1 = 0 To ctl.ListCount - 1
If Me.cboApellidos = ctl.Column(0, ix1) Then
Me.Nombre = ctl.Column(1, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing

Me.Tipodeempleado = Null
Set ctl = Me.cboApellidos
For ix1 = 0 To clt.ListCount - 1
If Me.cboApellidos = ctl.Column(0, ix1) Then
Me.Tipodeempleado = ctl.Column(2, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing

End Sub

un dernier coup de pouce?
merci encore, tassure!

Bonjour,

Ta table n'est pas mise à jour car tes textbox sont indépendantes. Comme source des textbox, tu mets le nom du champ de la table, et
tu fais la MAJ par code VBA sur évènement après MAJ de ta comboBox.

Me.Nombre =Combo132.column(1)

le code que j'utilise pour ce genre de choses, mais il y a peut-être plus simple:

Dim ctl As Control
Dim ix1 As Integer

Me.monChamp= Null
Set ctl = Me.maComboBox
For ix1 = 0 To ctl.ListCount - 1
If Me.maComboBox= ctl.Column(0, ix1) Then
Me.monChamp= ctl.Column(1, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------


"Thibault" a écrit dans le message de news:

BONJOUR A TOUS!!
Bon, je suis entrain d apprendre VBA pour access avec un gros boukin pas
tres rigolo , mais je suis plein de bonne volonte... mais il faut aussi que
je continu a bosser sur ma base, ou jai toujours mon probleme de combobox.
Cette fois je dois etre en mesure de le regler avec du code.

J ai un probleme avec une combo box ds un formulaire..

J ai trois colonne ds ma combo box et je souhaiterai "stoker" les donnees
des trois colonnes a la fois dans des textbox du meme formulaire, mais aussi
dans la table liee a ce formulaire...

En fait , mes donnees se callent bien dans les text box du formulaire, mais
pas dans la table lie a ce meme formulaire , les donnees ne sont pas stoker..
je comprend pas.

Voici ma combo box132: elle reference le Nom , le prenom et le type d
employee...
Row source: SELECT INFOEMPLEADOS.Apellido, INFOEMPLEADOS.[Nombre 1],
INFOEMPLEADOS.contratistaopermanenete FROM INFOEMPLEADOS ORDER BY [Apellido],
[contratistaopermanenete];

Puis ma text box "Nombre" (prenom en espagnol) a comme control source
=Combo132.column(1)

ma text box "Tipo de empleado" : =Combo132.column(2)

Et jusque la tout fonctionne parfaitement.. ce que je ne comprend pas ce que
losque je vais verifier dans ma table "Raport de production des bolillos"
(table source du formulaire) les champs "Nombre" et "tipo de empleados" reste
vierge...

Losrque lon utilise le Wizard pour la construction dune combo, il nous
propose q une seule colonne a stoker j ai donc naturellement pris le nom de
famille (premiere colonne de ma combobox) qui , lui, se calle parfaitement
dans la table source... Je suis sur que je peux faire de meme mais pour
lensemble de mes donnees en utilisant VBA...
un code du genre:

Private sub combo132_click ()
Store valu col1 in table "Prodreportbolillos col2"
Store value col2 in textbox12 and in table "Prodreportbolillos col3"
Store value col3 in textbox14 and in table "Prodreportbolillos col4"
end sub

PS: oui je sai , ca ressemblera pas du tout a ca.. mais c est l idee...

VOila, j espere que c est pas trop confu ... merci de votre patience!
thib














Avatar
Thibault
YEAHHHHH!
Jy suis arriver !!
TROP BIEN MERCI!! en cherchant et en testant jai finalement trouver..c bon
ca funstionne impeccable!! TROP BIEN !! MERCIMERCI MERCI MERCI.

Private Sub cboApellidos_Click()
Dim ctl As Control
Dim ix1 As Integer

Me.Nombre = Null
Set ctl = Me.cboApellidos
For ix1 = 0 To ctl.ListCount - 1
If Me.cboApellidos = ctl.Column(0, ix1) Then
Me.Nombre = ctl.Column(1, ix1)
Me.Tipodeempleado = ctl.Column(2, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing
End Sub



Bonjour,

Ta table n'est pas mise à jour car tes textbox sont indépendantes. Comme source des textbox, tu mets le nom du champ de la table, et
tu fais la MAJ par code VBA sur évènement après MAJ de ta comboBox.

Me.Nombre =Combo132.column(1)

le code que j'utilise pour ce genre de choses, mais il y a peut-être plus simple:

Dim ctl As Control
Dim ix1 As Integer

Me.monChamp= Null
Set ctl = Me.maComboBox
For ix1 = 0 To ctl.ListCount - 1
If Me.maComboBox= ctl.Column(0, ix1) Then
Me.monChamp= ctl.Column(1, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------


"Thibault" a écrit dans le message de news:

BONJOUR A TOUS!!
Bon, je suis entrain d apprendre VBA pour access avec un gros boukin pas
tres rigolo , mais je suis plein de bonne volonte... mais il faut aussi que
je continu a bosser sur ma base, ou jai toujours mon probleme de combobox.
Cette fois je dois etre en mesure de le regler avec du code.

J ai un probleme avec une combo box ds un formulaire..

J ai trois colonne ds ma combo box et je souhaiterai "stoker" les donnees
des trois colonnes a la fois dans des textbox du meme formulaire, mais aussi
dans la table liee a ce formulaire...

En fait , mes donnees se callent bien dans les text box du formulaire, mais
pas dans la table lie a ce meme formulaire , les donnees ne sont pas stoker..
je comprend pas.

Voici ma combo box132: elle reference le Nom , le prenom et le type d
employee...
Row source: SELECT INFOEMPLEADOS.Apellido, INFOEMPLEADOS.[Nombre 1],
INFOEMPLEADOS.contratistaopermanenete FROM INFOEMPLEADOS ORDER BY [Apellido],
[contratistaopermanenete];

Puis ma text box "Nombre" (prenom en espagnol) a comme control source
=Combo132.column(1)

ma text box "Tipo de empleado" : =Combo132.column(2)

Et jusque la tout fonctionne parfaitement.. ce que je ne comprend pas ce que
losque je vais verifier dans ma table "Raport de production des bolillos"
(table source du formulaire) les champs "Nombre" et "tipo de empleados" reste
vierge...

Losrque lon utilise le Wizard pour la construction dune combo, il nous
propose q une seule colonne a stoker j ai donc naturellement pris le nom de
famille (premiere colonne de ma combobox) qui , lui, se calle parfaitement
dans la table source... Je suis sur que je peux faire de meme mais pour
lensemble de mes donnees en utilisant VBA...
un code du genre:

Private sub combo132_click ()
Store valu col1 in table "Prodreportbolillos col2"
Store value col2 in textbox12 and in table "Prodreportbolillos col3"
Store value col3 in textbox14 and in table "Prodreportbolillos col4"
end sub

PS: oui je sai , ca ressemblera pas du tout a ca.. mais c est l idee...

VOila, j espere que c est pas trop confu ... merci de votre patience!
thib














Avatar
J-Pierre
Bonjour,

J'arrive après la bataille, pour cause de fête de la musique :-)
Tu as visiblement compris que le contenu de ta combobox se présente sous forme d'un tableau à 2 dimensions, j'aurais dû être plus
précis, excuse-moi.

En tout cas, félicitations, ce n'est pas évident de comprendre quand on débute.

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Thibault" a écrit dans le message de news:

YEAHHHHH!
Jy suis arriver !!
TROP BIEN MERCI!! en cherchant et en testant jai finalement trouver..c bon
ca funstionne impeccable!! TROP BIEN !! MERCIMERCI MERCI MERCI.

Private Sub cboApellidos_Click()
Dim ctl As Control
Dim ix1 As Integer

Me.Nombre = Null
Set ctl = Me.cboApellidos
For ix1 = 0 To ctl.ListCount - 1
If Me.cboApellidos = ctl.Column(0, ix1) Then
Me.Nombre = ctl.Column(1, ix1)
Me.Tipodeempleado = ctl.Column(2, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing
End Sub



Bonjour,

Ta table n'est pas mise à jour car tes textbox sont indépendantes. Comme source des textbox, tu mets le nom du champ de la table,
et
tu fais la MAJ par code VBA sur évènement après MAJ de ta comboBox.

Me.Nombre =Combo132.column(1)

le code que j'utilise pour ce genre de choses, mais il y a peut-être plus simple:

Dim ctl As Control
Dim ix1 As Integer

Me.monChamp= Null
Set ctl = Me.maComboBox
For ix1 = 0 To ctl.ListCount - 1
If Me.maComboBox= ctl.Column(0, ix1) Then
Me.monChamp= ctl.Column(1, ix1)
Exit For
End If
Next ix1
Set ctl = Nothing

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------


"Thibault" a écrit dans le message de news:

BONJOUR A TOUS!!
Bon, je suis entrain d apprendre VBA pour access avec un gros boukin pas
tres rigolo , mais je suis plein de bonne volonte... mais il faut aussi que
je continu a bosser sur ma base, ou jai toujours mon probleme de combobox.
Cette fois je dois etre en mesure de le regler avec du code.

J ai un probleme avec une combo box ds un formulaire..

J ai trois colonne ds ma combo box et je souhaiterai "stoker" les donnees
des trois colonnes a la fois dans des textbox du meme formulaire, mais aussi
dans la table liee a ce formulaire...

En fait , mes donnees se callent bien dans les text box du formulaire, mais
pas dans la table lie a ce meme formulaire , les donnees ne sont pas stoker..
je comprend pas.

Voici ma combo box132: elle reference le Nom , le prenom et le type d
employee...
Row source: SELECT INFOEMPLEADOS.Apellido, INFOEMPLEADOS.[Nombre 1],
INFOEMPLEADOS.contratistaopermanenete FROM INFOEMPLEADOS ORDER BY [Apellido],
[contratistaopermanenete];

Puis ma text box "Nombre" (prenom en espagnol) a comme control source
=Combo132.column(1)

ma text box "Tipo de empleado" : =Combo132.column(2)

Et jusque la tout fonctionne parfaitement.. ce que je ne comprend pas ce que
losque je vais verifier dans ma table "Raport de production des bolillos"
(table source du formulaire) les champs "Nombre" et "tipo de empleados" reste
vierge...

Losrque lon utilise le Wizard pour la construction dune combo, il nous
propose q une seule colonne a stoker j ai donc naturellement pris le nom de
famille (premiere colonne de ma combobox) qui , lui, se calle parfaitement
dans la table source... Je suis sur que je peux faire de meme mais pour
lensemble de mes donnees en utilisant VBA...
un code du genre:

Private sub combo132_click ()
Store valu col1 in table "Prodreportbolillos col2"
Store value col2 in textbox12 and in table "Prodreportbolillos col3"
Store value col3 in textbox14 and in table "Prodreportbolillos col4"
end sub

PS: oui je sai , ca ressemblera pas du tout a ca.. mais c est l idee...

VOila, j espere que c est pas trop confu ... merci de votre patience!
thib