Thema Datum  Von Nutzer Rating
Antwort
Rot Zugriff auf dynamich generierte Steuerelemente
22.07.2011 19:15:08 Gonzu
NotSolved
22.07.2011 20:38:05 Dekor
NotSolved
23.07.2011 11:21:01 Gast84217
NotSolved
23.07.2011 12:35:14 Dekor
NotSolved

Ansicht des Beitrags:
Von:
Gonzu
Datum:
22.07.2011 19:15:08
Views:
1609
Rating: Antwort:
  Ja
Thema:
Zugriff auf dynamich generierte Steuerelemente

Hallo VBA-Gemeinde

In einem Formular werden zur Laufzeit eine Reihe Steuerelemente dynamisch erstellt. Diese werden in Reihen dargestellt und jede Reihe bildet eine Datensatz, der anschießend nach Überprüfung in eine Db gespeichert werden soll. Es sind pro Reihe 17 Steuerelemente. Die Namen werden nach einem festen Schema vergeben (Name + laufende Nr, z.B. cboName1, txtNr1, txtPk1, txtkz1, ...,cboName2, txtNr2, txtPk2, txtKz2,...
Um darauf zugreifen zu können mache ich folgendes:

For each ctl in Userform Controlls
     If Left(ctl.Name, 7) = "cboName" Then
     ctlNr = Mid(ctl.Name, 8)
      ...
next



Damit wird z.B. cboName3 gefunden. Damit ist auch klar, dass txtNr3, txtPk3, txtKz3, ... existieren müssen. Mein Problem ist nun auf diese weiteren Steuerelemente zu zugreifen. So was wie

 

 MsgBox txtNr & ctlNr

 

funktioniert natürlich nicht, da ein Steuerelement txtNr nicht existiert (wohl aber txtNr3). Ich könnte das zwar mit einer weiteren (inneren) Schleife hinkriegen.

For Each ctl in Userform Controlls
     If Left(ctl.Name, 7) = "cboName" Then
     ctlNr = Mid(ctl.Name, 8)
 
      For Each ctl2 in Userform Controlls
           If ctl.Name = "txtNr" & ctlNr Then
           ...
       Next
Next

Dies ist aber alles andere als elegant (bei 17 Textboxen sind das 17 innere Schleifen), schlecht für die Performance und auch völlig unnötig. Wahrscheinlich gibt es eine ganz einfache Lösung und ich bin einfach nur zu blind.

Also meine Frage noch mal anders formuliert. Wie kann ich auf ein Steuerelement zugreifen, dessen Name ich vorher aus vorhandenen Informationen zusammensetzten muß. Ich hoffe, ich habe meine Frage einigermassen verständlich formuliert und es findet sich hier ein jemand, der mir helfen kann.

Danke im voraus

Gonzu
 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zugriff auf dynamich generierte Steuerelemente
22.07.2011 19:15:08 Gonzu
NotSolved
22.07.2011 20:38:05 Dekor
NotSolved
23.07.2011 11:21:01 Gast84217
NotSolved
23.07.2011 12:35:14 Dekor
NotSolved