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

Ajouter des contrôles automatiquement

20 réponses
Avatar
Jacques
Bonjour,

J'ai une ligne de contrôles : un combobox suivi de 12 textebox.
La combobox est alimentée par une table contenant des noms

Serait-il possible d'ajouter autant de lignes de contrôles qu'il n'y a de
nom
dans la table
Comment procéder ?

Si vous avez un site, un exemple ou une documentation cela serait le
bienvenu :-)


Merci de vos réponses.


Jacques

10 réponses

1 2
Avatar
Tisane
Bonjour Jacques,

J'ai une ligne de contrôles : un combobox suivi de 12 textebox.
La combobox est alimentée par une table contenant des noms
Serait-il possible d'ajouter autant de lignes de contrôles qu'il n'y a de
nom
dans la table
Comment procéder ?


Tu parles d'un formulaire ? D'un sous-formulaire ?
Il est en mode continu ?
Si tu as créé une zone de liste déroulante (combo box), c'est dans
l'objectif, je suppose, de sélectionner un item à affecter à
l'enregistrement en cours.
Comment veux-tu qu'Access affiche des enregistrements que tu n'as pas encore
créés ?
Sinon, je ne vois pas à quoi te sert cette liste. Tu peux baser ton
formulaire sur la table et tu auras tous les noms affichés.
Mais honnêtement, je ne crois pas avoir compris. Précise à quoi sert cette
liste déroulante et où elle se trouve.

--
Tisane

Avatar
Jacques
Bonjour Tisane,

Merci de te préoccupé de ma question...:-)

J'ai une table qui contient des noms. Selon le nombre d'enregistrements, je
voudrai ajouter sur un sous-formulaire autant de ligne que
d'enregistrements.
Chaque ligne de contrôles contientrait un combobox et 12 textbox.

J'ai résolu en partie ce problème ! (Je suis têtu!) :-)

Là, où je coince encore c'est de savoir comment écrire les évènements pour
ces contrôles créés dynamiquement.
La combobx serai alimentée par la table contenant les noms et pour chacun
des textbox un appel à une fonction sur le lostfocus.
Mais comment aller écrire le code dans l'évènement de chacun de ces
contrôles ??
J'espère avoir été plus clair !

Jacques

"Tisane" a écrit dans le message de news:
#e2F#
Bonjour Jacques,

J'ai une ligne de contrôles : un combobox suivi de 12 textebox.
La combobox est alimentée par une table contenant des noms
Serait-il possible d'ajouter autant de lignes de contrôles qu'il n'y a
de


nom
dans la table
Comment procéder ?


Tu parles d'un formulaire ? D'un sous-formulaire ?
Il est en mode continu ?
Si tu as créé une zone de liste déroulante (combo box), c'est dans
l'objectif, je suppose, de sélectionner un item à affecter à
l'enregistrement en cours.
Comment veux-tu qu'Access affiche des enregistrements que tu n'as pas
encore

créés ?
Sinon, je ne vois pas à quoi te sert cette liste. Tu peux baser ton
formulaire sur la table et tu auras tous les noms affichés.
Mais honnêtement, je ne crois pas avoir compris. Précise à quoi sert cette
liste déroulante et où elle se trouve.

--
Tisane




Avatar
Jacques
Re,

Je cherche mais sans vraiment de résultat... :-(
Voici ci-dessous un bout de code dans lequel j'essaie d'inserer mon code.
Le code est en erreur è la ligne Set frm où je veux passer le nom de mon
sous-formulaire
Une idée ??

Merci

Public Function AjoutCode(ctlcode As String)
Dim mdl As Module
Dim frm As Form
Dim lngRetour As Long

On Error GoTo AjoutCode_Error
Set frm = "sfrmHoraire" ??????????????

Set mdl = frm.Module
lngRetour = mdl.CreateEventProc("GotFocus", combo_0)
mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"" "

On Error GoTo 0
Exit Function

AjoutCode_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure
AjoutCode of Module modAjoutCtl"

End Function



"Tisane" a écrit dans le message de news:
#e2F#
Bonjour Jacques,

J'ai une ligne de contrôles : un combobox suivi de 12 textebox.
La combobox est alimentée par une table contenant des noms
Serait-il possible d'ajouter autant de lignes de contrôles qu'il n'y a
de


nom
dans la table
Comment procéder ?


Tu parles d'un formulaire ? D'un sous-formulaire ?
Il est en mode continu ?
Si tu as créé une zone de liste déroulante (combo box), c'est dans
l'objectif, je suppose, de sélectionner un item à affecter à
l'enregistrement en cours.
Comment veux-tu qu'Access affiche des enregistrements que tu n'as pas
encore

créés ?
Sinon, je ne vois pas à quoi te sert cette liste. Tu peux baser ton
formulaire sur la table et tu auras tous les noms affichés.
Mais honnêtement, je ne crois pas avoir compris. Précise à quoi sert cette
liste déroulante et où elle se trouve.

--
Tisane




Avatar
Raymond [mvp]
Bonjour.

je ne voudrais pas entrer dans le vif du sujet car je n'ai rien compris au
pourquoi du comment de la chose.
pour la procédure, voici un exemple de code simple pour créer un module, à
toi de le compléter avec la gestion des erreurs, le passage des paramètres
etc...

Dim mdl As Module
Dim frm As Form
Dim lngRetour As Long
DoCmd.OpenForm "sfrmHoraire", acDesign, , , , acHidden
Set frm = Forms("sfrmHoraire")
Set mdl = frm.Module
lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"""
DoCmd.Close acForm, "sfrmHoraire", acSaveYes

pour créer du code, il faut que le formulaire soit ouvert en mode Design.
--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j’en ai rien à coder, je me forme : les devoirs de vacances
http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99


"Jacques" a écrit dans le message de news:
%
| Re,
|
| Je cherche mais sans vraiment de résultat... :-(
| Voici ci-dessous un bout de code dans lequel j'essaie d'inserer mon code.
| Le code est en erreur è la ligne Set frm où je veux passer le nom de mon
| sous-formulaire
| Une idée ??
|
| Merci
|
| Public Function AjoutCode(ctlcode As String)
| Dim mdl As Module
| Dim frm As Form
| Dim lngRetour As Long
|
| On Error GoTo AjoutCode_Error
| Set frm = "sfrmHoraire" ??????????????
|
| Set mdl = frm.Module
| lngRetour = mdl.CreateEventProc("GotFocus", combo_0)
| mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"" "
|
| On Error GoTo 0
| Exit Function
|
| AjoutCode_Error:
|
| MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure
| AjoutCode of Module modAjoutCtl"
|
| End Function
|
Avatar
Jacques \(BE\)
Bonjour et merci Raymond,

J'ai une erreur de code sur la ligne :

lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")

Error 57017 - Gestionnaire d'évènement non valide dans la procédure ...

Je ne trouve pas d'information sur cette erreur!

Merci

Jacques

"Raymond [mvp]" a écrit dans le message
de news:
Bonjour.

je ne voudrais pas entrer dans le vif du sujet car je n'ai rien compris
au

pourquoi du comment de la chose.
pour la procédure, voici un exemple de code simple pour créer un module, à
toi de le compléter avec la gestion des erreurs, le passage des paramètres
etc...

Dim mdl As Module
Dim frm As Form
Dim lngRetour As Long
DoCmd.OpenForm "sfrmHoraire", acDesign, , , , acHidden
Set frm = Forms("sfrmHoraire")
Set mdl = frm.Module
lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"""
DoCmd.Close acForm, "sfrmHoraire", acSaveYes

pour créer du code, il faut que le formulaire soit ouvert en mode Design.
--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j'en ai rien à coder, je me forme : les devoirs de vacances

http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99



"Jacques" a écrit dans le message de news:
%
| Re,
|
| Je cherche mais sans vraiment de résultat... :-(
| Voici ci-dessous un bout de code dans lequel j'essaie d'inserer mon
code.

| Le code est en erreur è la ligne Set frm où je veux passer le nom de mon
| sous-formulaire
| Une idée ??
|
| Merci
|
| Public Function AjoutCode(ctlcode As String)
| Dim mdl As Module
| Dim frm As Form
| Dim lngRetour As Long
|
| On Error GoTo AjoutCode_Error
| Set frm = "sfrmHoraire" ??????????????
|
| Set mdl = frm.Module
| lngRetour = mdl.CreateEventProc("GotFocus", combo_0)
| mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"" "
|
| On Error GoTo 0
| Exit Function
|
| AjoutCode_Error:
|
| MsgBox "Error " & Err.Number & " (" & Err.Description & ") in
procedure

| AjoutCode of Module modAjoutCtl"
|
| End Function
|




Avatar
Jacques \(BE\)
Re bonjour,

L'erreur semble ne plus se produire par contre j,ai un autre message
"Impossible d,entrer en mode arrêt maintenant"

si je clique sur "Continuer" , j'ai un autre message
"Erreur 2450 impossible de trouver le formulaire sfrmHoraire auquel il est
fait référence..."

La fonction s'écrit malgré tout ainsi que le Msgbox dans le formulaire


Merci de votre aide

Jacques


"Raymond [mvp]" a écrit dans le message
de news:
Bonjour.

je ne voudrais pas entrer dans le vif du sujet car je n'ai rien compris
au

pourquoi du comment de la chose.
pour la procédure, voici un exemple de code simple pour créer un module, à
toi de le compléter avec la gestion des erreurs, le passage des paramètres
etc...

Dim mdl As Module
Dim frm As Form
Dim lngRetour As Long
DoCmd.OpenForm "sfrmHoraire", acDesign, , , , acHidden
Set frm = Forms("sfrmHoraire")
Set mdl = frm.Module
lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"""
DoCmd.Close acForm, "sfrmHoraire", acSaveYes

pour créer du code, il faut que le formulaire soit ouvert en mode Design.
--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j'en ai rien à coder, je me forme : les devoirs de vacances

http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99



"Jacques" a écrit dans le message de news:
%
| Re,
|
| Je cherche mais sans vraiment de résultat... :-(
| Voici ci-dessous un bout de code dans lequel j'essaie d'inserer mon
code.

| Le code est en erreur è la ligne Set frm où je veux passer le nom de mon
| sous-formulaire
| Une idée ??
|
| Merci
|
| Public Function AjoutCode(ctlcode As String)
| Dim mdl As Module
| Dim frm As Form
| Dim lngRetour As Long
|
| On Error GoTo AjoutCode_Error
| Set frm = "sfrmHoraire" ??????????????
|
| Set mdl = frm.Module
| lngRetour = mdl.CreateEventProc("GotFocus", combo_0)
| mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"" "
|
| On Error GoTo 0
| Exit Function
|
| AjoutCode_Error:
|
| MsgBox "Error " & Err.Number & " (" & Err.Description & ") in
procedure

| AjoutCode of Module modAjoutCtl"
|
| End Function
|




Avatar
Raymond [mvp]
moi j'ai mis le nom que tu avais indiqué, mais est-ce bien le nom réel de
ton contrôle ?

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j’en ai rien à coder, je me forme : les devoirs de vacances
http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99


"Jacques (BE)" a écrit dans le message de news:
%
| Bonjour et merci Raymond,
|
| J'ai une erreur de code sur la ligne :
|
| lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
|
| Error 57017 - Gestionnaire d'évènement non valide dans la procédure ...
|
| Je ne trouve pas d'information sur cette erreur!
|
| Merci
|
| Jacques
|
| "Raymond [mvp]" a écrit dans le
message
| de news:
| > Bonjour.
| >
| > je ne voudrais pas entrer dans le vif du sujet car je n'ai rien compris
| au
| > pourquoi du comment de la chose.
| > pour la procédure, voici un exemple de code simple pour créer un module,
à
| > toi de le compléter avec la gestion des erreurs, le passage des
paramètres
| > etc...
| >
| > Dim mdl As Module
| > Dim frm As Form
| > Dim lngRetour As Long
| > DoCmd.OpenForm "sfrmHoraire", acDesign, , , , acHidden
| > Set frm = Forms("sfrmHoraire")
| > Set mdl = frm.Module
| > lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
| > mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"""
| > DoCmd.Close acForm, "sfrmHoraire", acSaveYes
| >
| > pour créer du code, il faut que le formulaire soit ouvert en mode
Design.
| > --
| > @+
| > Raymond Access MVP http://www.OfficeSystemAccess.com/
| > http://officesystem.access.over-blog.com/
| > Pour débuter sur le forum: http://www.mpfa.info/
| >
| > Cet été, j'en ai rien à coder, je me forme : les devoirs de vacances
| >
|
http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99
| >
| >
| > "Jacques" a écrit dans le message de news:
| > %
| > | Re,
| > |
| > | Je cherche mais sans vraiment de résultat... :-(
| > | Voici ci-dessous un bout de code dans lequel j'essaie d'inserer mon
| code.
| > | Le code est en erreur è la ligne Set frm où je veux passer le nom de
mon
| > | sous-formulaire
| > | Une idée ??
| > |
| > | Merci
| > |
| > | Public Function AjoutCode(ctlcode As String)
| > | Dim mdl As Module
| > | Dim frm As Form
| > | Dim lngRetour As Long
| > |
| > | On Error GoTo AjoutCode_Error
| > | Set frm = "sfrmHoraire" ??????????????
| > |
| > | Set mdl = frm.Module
| > | lngRetour = mdl.CreateEventProc("GotFocus", combo_0)
| > | mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"" "
| > |
| > | On Error GoTo 0
| > | Exit Function
| > |
| > | AjoutCode_Error:
| > |
| > | MsgBox "Error " & Err.Number & " (" & Err.Description & ") in
| procedure
| > | AjoutCode of Module modAjoutCtl"
| > |
| > | End Function
| > |
| >
| >
|
|
Avatar
Jacques \(BE\)
Bonjour,

oui, c'est bien le nom ... :-(

Jacques

"Raymond [mvp]" a écrit dans le message
de news:%
moi j'ai mis le nom que tu avais indiqué, mais est-ce bien le nom réel de
ton contrôle ?

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j'en ai rien à coder, je me forme : les devoirs de vacances

http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99



"Jacques (BE)" a écrit dans le message de news:
%
| Bonjour et merci Raymond,
|
| J'ai une erreur de code sur la ligne :
|
| lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
|
| Error 57017 - Gestionnaire d'évènement non valide dans la procédure ...
|
| Je ne trouve pas d'information sur cette erreur!
|
| Merci
|
| Jacques
|
| "Raymond [mvp]" a écrit dans le
message
| de news:
| > Bonjour.
| >
| > je ne voudrais pas entrer dans le vif du sujet car je n'ai rien
compris

| au
| > pourquoi du comment de la chose.
| > pour la procédure, voici un exemple de code simple pour créer un
module,

à
| > toi de le compléter avec la gestion des erreurs, le passage des
paramètres
| > etc...
| >
| > Dim mdl As Module
| > Dim frm As Form
| > Dim lngRetour As Long
| > DoCmd.OpenForm "sfrmHoraire", acDesign, , , , acHidden
| > Set frm = Forms("sfrmHoraire")
| > Set mdl = frm.Module
| > lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
| > mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"""
| > DoCmd.Close acForm, "sfrmHoraire", acSaveYes
| >
| > pour créer du code, il faut que le formulaire soit ouvert en mode
Design.
| > --
| > @+
| > Raymond Access MVP http://www.OfficeSystemAccess.com/
| > http://officesystem.access.over-blog.com/
| > Pour débuter sur le forum: http://www.mpfa.info/
| >
| > Cet été, j'en ai rien à coder, je me forme : les devoirs de vacances
| >
|

http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99

| >
| >
| > "Jacques" a écrit dans le message de news:
| > %
| > | Re,
| > |
| > | Je cherche mais sans vraiment de résultat... :-(
| > | Voici ci-dessous un bout de code dans lequel j'essaie d'inserer mon
| code.
| > | Le code est en erreur è la ligne Set frm où je veux passer le nom de
mon
| > | sous-formulaire
| > | Une idée ??
| > |
| > | Merci
| > |
| > | Public Function AjoutCode(ctlcode As String)
| > | Dim mdl As Module
| > | Dim frm As Form
| > | Dim lngRetour As Long
| > |
| > | On Error GoTo AjoutCode_Error
| > | Set frm = "sfrmHoraire" ??????????????
| > |
| > | Set mdl = frm.Module
| > | lngRetour = mdl.CreateEventProc("GotFocus", combo_0)
| > | mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"" "
| > |
| > | On Error GoTo 0
| > | Exit Function
| > |
| > | AjoutCode_Error:
| > |
| > | MsgBox "Error " & Err.Number & " (" & Err.Description & ") in
| procedure
| > | AjoutCode of Module modAjoutCtl"
| > |
| > | End Function
| > |
| >
| >
|
|




Avatar
Jacques \(BE\)
Bonjour,

J'ai tester l'exemple se trouvant dans l'aide VBA d'Access mais j'ai le même
résultat
...
"Impossible d,entrer en mode arrêt maintenant"
...
Jacques

"Jacques (BE)" a écrit dans le message de
news:
Re bonjour,

L'erreur semble ne plus se produire par contre j,ai un autre message
"Impossible d,entrer en mode arrêt maintenant"

si je clique sur "Continuer" , j'ai un autre message
"Erreur 2450 impossible de trouver le formulaire sfrmHoraire auquel il est
fait référence..."

La fonction s'écrit malgré tout ainsi que le Msgbox dans le formulaire


Merci de votre aide

Jacques


"Raymond [mvp]" a écrit dans le
message

de news:
Bonjour.

je ne voudrais pas entrer dans le vif du sujet car je n'ai rien compris
au

pourquoi du comment de la chose.
pour la procédure, voici un exemple de code simple pour créer un module,
à


toi de le compléter avec la gestion des erreurs, le passage des
paramètres


etc...

Dim mdl As Module
Dim frm As Form
Dim lngRetour As Long
DoCmd.OpenForm "sfrmHoraire", acDesign, , , , acHidden
Set frm = Forms("sfrmHoraire")
Set mdl = frm.Module
lngRetour = mdl.CreateEventProc("GotFocus", "combo_0")
mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"""
DoCmd.Close acForm, "sfrmHoraire", acSaveYes

pour créer du code, il faut que le formulaire soit ouvert en mode
Design.


--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j'en ai rien à coder, je me forme : les devoirs de vacances



http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99



"Jacques" a écrit dans le message de news:
%
| Re,
|
| Je cherche mais sans vraiment de résultat... :-(
| Voici ci-dessous un bout de code dans lequel j'essaie d'inserer mon
code.

| Le code est en erreur è la ligne Set frm où je veux passer le nom de
mon


| sous-formulaire
| Une idée ??
|
| Merci
|
| Public Function AjoutCode(ctlcode As String)
| Dim mdl As Module
| Dim frm As Form
| Dim lngRetour As Long
|
| On Error GoTo AjoutCode_Error
| Set frm = "sfrmHoraire" ??????????????
|
| Set mdl = frm.Module
| lngRetour = mdl.CreateEventProc("GotFocus", combo_0)
| mdl.InsertLines lngRetour + 1, vbTab & "Msgbox ""CA marche"" "
|
| On Error GoTo 0
| Exit Function
|
| AjoutCode_Error:
|
| MsgBox "Error " & Err.Number & " (" & Err.Description & ") in
procedure

| AjoutCode of Module modAjoutCtl"
|
| End Function
|








Avatar
Raymond [mvp]
c'est bien un sous-formulaire ? est-il chargé quand tu fais le design ?
normalement il ne devrait pas être chargé pour que ça fonctionne.

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j’en ai rien à coder, je me forme : les devoirs de vacances
http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99


"Jacques (BE)" a écrit dans le message de news:
%
| Bonjour,
|
| oui, c'est bien le nom ... :-(
|
| Jacques
|
1 2