Daten aus einem Benutzersteuerelement übernehmen?

Habe ein kleines Problem.Habe in einem Programm vers. Formulare Module und Benutzersteuerelemente.In einem Benutzerst. soll ein Wert eingegeben werden, dieser Wert soll nun in einem Formular verarbeitet werden.Leider funktioiert mein Code nicht.

Z.B a= Form1.Text1.text, das ist klar.Aber wenn ich jetzt z.b b = Benutzersteuerelement1.Text1.text funktioniert das nicht. Wie kann ich denn inhalt in Text1.text auf meinem Benutzerst. in ein Formular einlesen?

Danke

Hallo,

das Benutzersteuerelement muss den Wert den du haben willst auch als Eigenschaft offen legen. Also muss im Benutzersteuerelement irgend was in der Art vorhanden sein:

Public Property Get Buchname() As String
Buchname = txt_Buch.Text
End Property

Wenn du jetzt z.B. BenElement.Buchname verwendest, bekommts du die Text-Eigenschaft von txt_Buch im Benutzersteuerelement zurückgegeben.

Du kannst von aussen also nur auf die Eigenschaften zugreifen, die auch über das Benutzersteuerelement offengelegt werden, denn die Textbox txt_Buch gibt es von aussen gesehen nicht.

Gruß
Daniel

Hallo,

Danke für Deine Antwort. Aber was ist BenElement……?

Kann ich jetzt nicht einfach in einem anderen Formular den Wert des Textfeldes1 aus dem Benutzersteuerelement übernehmen( Nachdem ich Deinen Code ins Benutzersteuerelemnt geschrieben habe)?

Benutzersteuerelement:
Public Property Get Angebotsnummer() As Integer
Angebotsnummer = Text2.Text
End Property

Formular:
z.b text2.text = Buchname

Es wird dann aber nur ein leeres Textfeld auf meinem Formular ausgegeben.

Danke

Gruß

Hallo,

ein BenElement ist ein Benutzersteuerelement für schreibfaule. Das sollte nur den Objektbezeichner für das Benutzersteuerelement darstellen.

Also der Code im Benutzersteuerelement sieht ja schon mal ganz gut aus (wenn’s Text2 wirklich gibt).

Wenn du jetzt dieses Benutzersteuerlement in dein Formular einbaust, kannst du ihm ja einen Namen geben wie jedem anderen Steuerelement auch.

Und unter diesem Namen kannst du dann auch auf die Eigenschaften zugreifen.

Also wenn dein Benutzersteuerlement MyElement heisst und die Eigenschaft Angebotsnummer (wie in deinem letzten Posting), dann solltest du eigentlich mit
MyElement.Angebotsnummer auf den entsprechenden Wert zugreifen können.

Gruß
Daniel

Hallo,

glaube habe jetztb den Fehler.Mein Benutzersteuerelement ist nicht in dem Formular eingebaut, wo der Wert abgefragt werden soll.Sprich, ich habe mehrere Formulare. Das Benutzersteuerelement ist auf einem zweiten Formular, der Wert soll aber in das erste übernommen werden.

Wenn ich nun Deine Dbfrage so mache wie beschrieben (text100.text= MyElement.Angebotsnummer), so kommt nur eine Fehlermeldung " Objekt erforderlich" gebe ich aber ein (text100.text = Angebotsnummer) so bleibt das TextFeld leer, aber keine Fehlermeldung.

Kann ich nun überhaubt von einem Formular auf ein Benutzerst. in einem anderen zukreifen?
Wenn ja, funktioniert dies wie beschrieben?

Danke

Hallo,

soweit ich weiss sind Steuerlemente private, d.h. sie können in einem Formular nicht ohne weiteres abgefragt werden.
Wenn das Formular, welches das Steuerlement enthält allerdings offen ist, kannst du über Formularname.Steuerlementname.Eigenschaft darauf zugreifen (also z.B. Form1.MyElement.Angebotsnummer).

Wenn du nur Angebotsnummer eingibst und es erscheint ein Leerstring, hast du wahrscheinlich nicht Option Explicit am Anfang des Codemodules stehen. Damit denkt VB Angebotsnummer ist eine ganz normale Variable, der noch kein Wert zugewiesen wurde. Und ohne Option Explicit brauch VB nicht zwingend eine Deklaration und erkennt daher nicht, das es eigentlich um etwas ganz anderes geht.

Gruß
Daniel