Bonjour,
Je reviens vers vous plus pour répondre à une interrogation, qu'une véritable question.
J'ai actuellement un formulaire, sur lesquels des champs sont renseignées, pour pouvoir, derrière, remplir une table.
Dans mon formulaire, j'ai beaucoup de textbox, mais aussi des CheckBox et des radios bouton.
Plutôt que d'éviter de faire mon INSERT en passant sur chaque textbox, étant donné qu'elles ne vont plus bouger, j'effectue une boucle sur les contrôles de cette manière :
J'ai 2 questions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 ValeurAAjouter = "" For Each mycontrol In Me.Controls If TypeOf mycontrol Is TextBox Then If Controls(mycontrol.Name).Value = "" Or IsNull(Controls(mycontrol.Name).Value) Then ValeurAAjouter = ValeurAAjouter & "NULL," Else If IsNumeric(Controls(mycontrol.Name).Value) Then ValeurAAjouter = ValeurAAjouter & "" & Controls(mycontrol.Name).Value & "," Else ValeurAAjouter = ValeurAAjouter & "'" & Controls(mycontrol.Name).Value & "'," End If End If 'MsgBox MyControl.Name 'MsgBox Controls(MyControl.Name).Value End If Next iSQL = "INSERT INTO test (...)" _ & "VALUES (" & ValeurAAjouter & ")" 'Debug.Print iSQL CurrentDb.Execute iSQL
- quand on fait un for each, est-ce qu'il boucle sur les différents contrôles toujours dans le même ordre ?
- Si ce n'est pas le cas, il faudrait alors plutôt que je fasse une boucle for Sinon mon ValeurAAjouter ne sera jamais dans le même sens, et mon insertion en base va pas fonctionner correctement.
J'ai alors essayé un truc de ce genre :
Mais il me fait une erreur sur "Me.controls(i)".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 For i = 1 To Me.Controls.Count mycontrol = Me.Controls(i) If Left(mycontrol, 3) = "Txt" Then MsgBox mycontrol.Name End If Next i
Du coup, je sais pas trop comment boucler sur les différents contrôles..Quelqu'un aurait une piste à me fournir ?
En vous remerciant par avance de vos réponses
Partager