tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von SnEaKy
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
3207
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von deusfalsus
    deusfalsus deusfalsus ist offline Mitglied Brokat
    Registriert seit
    Jan 2003
    Ort
    Jena (Thüringen)
    Beiträge
    254
    Salve!

    Kann man ein Steuerelement "live", also wenn das Formular geöffnet ist, generieren?

    So:
    Code :
    1
    2
    
    Dim txt_Name As Control
    Set txt_Name = CreateControl("frm_blabla", acTextBox, , , , "", "", "", "")
    gehts jedenfalls nicht, da man dafür im Entwurfsmodus sein muss.

    Vorschläge?
     

  2. #2
    Avatar von SnEaKy
    SnEaKy SnEaKy ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Hattersheim
    Beiträge
    219
    Indirekt machbar. Im eigenen Formular ist das nicht machbar, aber dafür kann man ein Formular bearbeiten, dass nicht geöffnet ist.
    Andere Möglichkeiten sind mir nicht bekannt.
     
    Die Welt ist binär: Entweder man ist eine Eins oder eine Null, tot oder lebendig! - Und ich? Lebe...

  3. #3
    Avatar von deusfalsus
    deusfalsus deusfalsus ist offline Mitglied Brokat
    Registriert seit
    Jan 2003
    Ort
    Jena (Thüringen)
    Beiträge
    254
    laut diesen Control dynamisch laden und diesen
    Steuerelemente zur Laufzeit hinzufügen hier geht es,
    aber ich kann zum einen keinen Index setzen (zumindest finde ich es nicht(Access2002,SP3)), was die zweite Variante ausbremst und zum anderen, was ich gar nicht verstehe: Mein Access kennt die methode "controls.add" nicht.

    Kann ich ein Formular per Befehl in den Entwurfsmodus versetzen und wieder zurück?
     

  4. #4
    Avatar von SnEaKy
    SnEaKy SnEaKy ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Hattersheim
    Beiträge
    219
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    Private Sub Form_Load()
     
      ' Label deklarieren
      Dim oLabel As Label
      
      ' Label der Form1 hinzufügen
      Set oLabel = Form1.Controls.Add("VB.Label", "Name_des_Labels")
      ' Position bestimmen
      oLabel.Move 0, 0, 1000, 225
      ' Label "sichtbar" machen
      oLabel.Visible = True
      ' da ein Label die gleiche Farbe wie eine Form hat
      ' bietet es sich an, die Hintergrundfarbe zu ändern :-)
      oLabel.BackColor = vbRed
      ' dann noch etwas Text drauf
      oLabel.Caption = "vb@rchiv"
     
    End Sub
    Der Code wird aber auch ausgeführt, bevor das Formular sichtbar ist. Das ist auch nicht wirklich in der Laufzeit.
    deusfalsus bedankt sich. 
    Die Welt ist binär: Entweder man ist eine Eins oder eine Null, tot oder lebendig! - Und ich? Lebe...

  5. #5
    Avatar von deusfalsus
    deusfalsus deusfalsus ist offline Mitglied Brokat
    Registriert seit
    Jan 2003
    Ort
    Jena (Thüringen)
    Beiträge
    254
    Mann! Darum gehts doch grad gar nicht. Erstens kann ich den Aufruf auch an andere Ereignisse binden, z.B. btn_Click.
    Zweitens habe ich konkrete Fragen gestellt, die Du geflissentlich übergehst.
    Durch die hier nun schon stattgefundene Konversation, klicken möglicherweise potentielle "Lösungswisser" nicht mehr auf den thread, obwohl Du nur unnütze Kommentare abgegeben hast, die mich zur Antwort zwingen.

    Bitte antworte nur noch, wenn Du wirklich weiterhelfen kannst!

    Ansonsten an alle, die aufmerksam lesen: meine Fragen sind noch unbeantwortet!

    1: Mein Access (2003) bzw VB kennt zwar "Controls" aber kein ".Add" dazu.
    2: Wie verpasse ich einem Textfeld einen Index, um evtl. die Load-Methode anzuwenden?
    3: Kann ich ein Formular per Befehl in den Entwurfsmodus versetzen und wieder zurück?
     

  6. #6
    luec Tutorials.de Gastzugang
    Zwar extrem spät ... aber falls der Nächste über Google diesen Thread findet:

    Index zuweisen einfach in den Eigenschaften. Hier gibt es den Punkt Index.

    Vorsicht wenn man dann eine Schleife benutzt diese bei 1 beginnen lassen, da man den Index 0 schon vergeben hat.
     

  7. #7
    miriki Tutorials.de Gastzugang
    Moinsens, allerseits!

    Ich bin einer von denen, die über Google hier gelandet sind... Und eine konkrete Frage von deusfalsus stellt sich mir ebenfalls und ist hier in der Tat geflissentlich übergangen worden:

    *: 1: Mein Access (2003) bzw VB kennt zwar "Controls" aber kein ".Add" dazu.

    Und mit meinem Access 2000 habe ich das gleiche Problem. Alle Lösungsvorschläge, die ich bisher per Google aufgesucht habe, weisen immer wieder auf

    * Set MyLabel = Me.Controls.Add("VB.Label", "LabelNeu", Me)

    hin, aber genau diese Zeile verursacht bei mir die Fehlermeldung

    * Fehler beim Kompilieren - Methode oder Datenobjekt nicht gefunden.

    In der Onlinehilfe gibt es zu "Controls" auch gleich gar keine Methoden, nur 4 Eigenschaften: Application, Count, Item und Parent.

    Also: Was machen die ganzen Lösungsgeber anders als deusfalsus oder ich, so daß es bei denen zu funktionieren scheint?

    Gruß, Michael
     

  8. #8
    accessbeginner Tutorials.de Gastzugang
    Hallo,

    ich habe das gleiche Problem wie schon oben beschrieben. Ich möchte Steuerelemente dynamisch hinzufügen.
    Mein Access (2003) + VBA 6.5 kennt kein Controls.Add

    Bei z.B. Textfeldern, die ich selber einfüge gibt es die Eigenschaft ("Index") nicht.

    Hat jemand ein Lösung dafür?
     

Ähnliche Themen

  1. tfs Abfrage zur Laufzeit einer Form generieren
    Von PhilippStr im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 25.08.09, 14:58
  2. Dynamische Events zur Laufzeit generieren
    Von heut im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 06.10.08, 15:40
  3. Mehrere Buttons zur Laufzeit dynamisch Generieren
    Von Lautsprecher im Forum Java
    Antworten: 7
    Letzter Beitrag: 26.06.07, 10:40
  4. Steuerelement zur Laufzeit mit der Maus verändern?
    Von SixDark im Forum .NET Café
    Antworten: 6
    Letzter Beitrag: 02.02.07, 09:45