0
votes

Pour chaque énoncé de boucle à travers le tas de valeurs de zone de texte

J'ai un tas de textes de texte qui sera rempli avec des valeurs sélectionnées dans une liste déroulante.

permet de dire sur 10 textes de texte, des valeurs ont été remplacées dans 5: rinv1 à rinv5 < /code >.

puis-je vous en protéger et collecter ces valeurs?

J'essaie d'utiliser un pour chaque boucle et collectez ces valeurs dans un tableau, puis stockez ces valeurs dans un champ de ma DB. xxx

une erreur de syntaxe.


0 commentaires

3 Réponses :


2
votes

Je suggérerais d'itération des noms de contrôle plutôt que des objets de contrôle, par exemple quelque chose dans les lignes des suivantes:

Dim Itm
Dim RollName As String
For Each Itm in Split("Rinv1 Rinv2 Rinv3")
    RollName = RollName & Me.Controls(Itm).Value
Next Itm
Forms![LabelSHEETER2].JOB = RollName


4 commentaires

Meilleure réponse ici!


Rinv1, rinv2, rinv3 et ainsi de suite sont des noms de textbox ... pas la valeur réelle. La valeur pourrait changer. Lorsque vous dites des noms de contrôle sur l'objet de contrôle, qu'est-ce que cela signifie? Je m'excuse si c'est une question très naïve.


Ok, j'ai lu certaines définitions en ligne et j'ai essayé de suivre votre code. Il fonctionne comme un charme! Merci beaucoup :)


@Newatsql vous êtes le bienvenu. Pour complétude: chaque objet de contrôle (Textbox, ListBox, Combobox, etc.) dans la collection Controls d'un formulaire comporte une propriété nom qui peut être utilisée pour acquérir l'objet à partir de la collection de contrôles. Ma suggestion était de itérer les noms de tels objets, plutôt que les objets eux-mêmes.



1
votes

Voici un exemple simple de la manière d'obtenir les valeurs de toutes les zones de texte et de les combiner dans une chaîne

Private Sub CommandButton1_Click()

Dim ctrl As Control
Dim str As String

For Each ctrl In UserForm1.Controls
    If TypeName(ctrl) = "TextBox" Then
        str = str & ctrl.Text
    End If
Next ctrl

MsgBox str

End Sub


0 commentaires

1
votes

Je voudrais faire boucler les commandes de formulaire et vérifier les matchs de noms. De cette façon, vous n'avez pas besoin de laisser la fenêtre de conception de formulaire à nouveau pour changer votre code ou ajouter des objets à un tableau.

Dim ctl As Control
Dim strRollName As String

For Each ctl in Me.Controls
    If ctl.Name Like "Rinv*" Then
        strRollName = strRollName & ctl.Value & " "
    End If
Next ctl


0 commentaires