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 code> à
rinv5 < /code >.
puis-je vous en protéger et collecter ces valeurs? p>
J'essaie d'utiliser un une erreur de syntaxe. p> p> pour chaque code> boucle et collectez ces valeurs dans un tableau, puis stockez ces valeurs dans un champ de ma DB. p>
3 Réponses :
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
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é code> nom code> 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.
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
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