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

Accéder à des champs de formulaire au moyen d'un index

3 réponses
Avatar
AJADV
Bonjour,
un de mes formulaires est constitué d'un certain nombre de champs dans les
quels l'utilisateur peut ou non entrer des valeurs. Je cherche une méthode
simple (boucle par exemple) pour analyser dans mon code les champs qui ont
été renseignés et ignorer les autres. Bien entendu je peux me référer à
chaque champ au moyen de son nom, mais cela alourdit considérablement le code.
Quelqu'un aurait-il une solution plus astucieuse pour résoudre mon problème ?
Merci d'avance.
Alain

--
AJ

3 réponses

Avatar
Gilbert
Bonjour,

Voici un exemple qui te permet de parcourir la collection des controles de
ton formulaire.

Dim ctl As Control
For Each ctl In Me.Controls

Select Case ctl.ControlType
Case acLabel
MsgBox ctl.Name & ": Label"
Case acRectangle
MsgBox ctl.Name & ": Rectangle"
Case acLine
MsgBox ctl.Name & ": Line"
Case acImage
MsgBox ctl.Name & ": Image"
Case acCommandButton
MsgBox ctl.Name & ": Command Button"
Case acOptionButton
MsgBox ctl.Name & ": Option button"
Case acCheckBox
MsgBox ctl.Name & ": Check box"
Case acOptionGroup
MsgBox ctl.Name & ": Option group"
Case acBoundObjectFrame
MsgBox ctl.Name & ": Bound object frame"
Case acTextBox
MsgBox ctl.Name & ": Text Box"
Case acListBox
MsgBox ctl.Name & ": List box"
Case acComboBox
MsgBox ctl.Name & ": Combo box"
Case acSubform
MsgBox ctl.Name & ": SubForm"
Case acObjectFrame
MsgBox ctl.Name & ": Unbound object frame or chart"
Case acPageBreak
MsgBox ctl.Name & ": Page break"
Case acPage
MsgBox ctl.Name & ": Page"
Case acCustomControl
MsgBox ctl.Name & ": ActiveX (custom) control"
Case acToggleButton
MsgBox ctl.Name & ": Toggle Button"
Case acTabCtl
MsgBox ctl.Name & ": Tab Control"
End Select

Next


--
Cordialement,

Gilbert


"AJADV" a écrit dans le message de
news:
Bonjour,
un de mes formulaires est constitué d'un certain nombre de champs dans les
quels l'utilisateur peut ou non entrer des valeurs. Je cherche une méthode
simple (boucle par exemple) pour analyser dans mon code les champs qui ont
été renseignés et ignorer les autres. Bien entendu je peux me référer à
chaque champ au moyen de son nom, mais cela alourdit considérablement le


code.
Quelqu'un aurait-il une solution plus astucieuse pour résoudre mon


problème ?
Merci d'avance.
Alain

--
AJ


Avatar
Blaise Cacramp
"AJADV" a écrit dans le message de news:

Bonjour,
un de mes formulaires est constitué d'un certain nombre de champs dans les
quels l'utilisateur peut ou non entrer des valeurs. Je cherche une méthode
simple (boucle par exemple) pour analyser dans mon code les champs qui ont
été renseignés et ignorer les autres. Bien entendu je peux me référer à
chaque champ au moyen de son nom, mais cela alourdit considérablement le
code.
Quelqu'un aurait-il une solution plus astucieuse pour résoudre mon
problème ?
Merci d'avance.
Alain

--
AJ



Il n'y a malheureusement pas d'indices en ACCESS (contrairement au VB).
Je contourne le problème comme suit:
Le nom des champs est stocké dans une table (mais il peut l'être dans un
tableau).
Table : Rst_Ctl
Nom du champ : Rst_Ctl!ctl_nom
Nom du formulaire : Frm_1_Encodage_Quotidien
Accès à la valeur du champ (Zone de Texte) :
Forms.Frm_1_Encodage_Quotidien!(Rst_Ctl!ctl_nom).Value

code :

For J = 1 To Rst_Ctl.RecordCount
If Not
IsNull(Forms.Frm_1_Encodage_Quotidien!(Rst_Ctl!ctl_nom).Value) Then
...
end if
rst_ctl.movenext
next


Cdt, Blaise
Avatar
AJADV
Merci pour vos réponses qui me satisfont pleinement et m'ouvrent des horizons
pour résoudre mon problème.
Cordialement
Alain
--
AJ


"Blaise Cacramp" a écrit :


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

> Bonjour,
> un de mes formulaires est constitué d'un certain nombre de champs dans les
> quels l'utilisateur peut ou non entrer des valeurs. Je cherche une méthode
> simple (boucle par exemple) pour analyser dans mon code les champs qui ont
> été renseignés et ignorer les autres. Bien entendu je peux me référer à
> chaque champ au moyen de son nom, mais cela alourdit considérablement le
> code.
> Quelqu'un aurait-il une solution plus astucieuse pour résoudre mon
> problème ?
> Merci d'avance.
> Alain
>
> --
> AJ

Il n'y a malheureusement pas d'indices en ACCESS (contrairement au VB).
Je contourne le problème comme suit:
Le nom des champs est stocké dans une table (mais il peut l'être dans un
tableau).
Table : Rst_Ctl
Nom du champ : Rst_Ctl!ctl_nom
Nom du formulaire : Frm_1_Encodage_Quotidien
Accès à la valeur du champ (Zone de Texte) :
Forms.Frm_1_Encodage_Quotidien!(Rst_Ctl!ctl_nom).Value

code :

For J = 1 To Rst_Ctl.RecordCount
If Not
IsNull(Forms.Frm_1_Encodage_Quotidien!(Rst_Ctl!ctl_nom).Value) Then
...
end if
rst_ctl.movenext
next


Cdt, Blaise