PDA

Vollständige Version anzeigen : Steuerelementinhalt in Ereignisprozedur verändern


Thomas0782
24.09.2001, 07:17
Moin!

Ich möchte per Ereignisprozedur den Steuerelementihalt und seinen Namen ändern. Wie funzt das?

Thomas

Pepi
24.09.2001, 07:26
Welches Ereignis? Den Namen kannst Du wohl nur ändern, wenn Du in den Entwurfsmodus wechselst. Ansonsten:
TextBox1.Value = "Ein neuer Text"
Matthias

Thomas0782
24.09.2001, 07:30
möchte auf ein anderes feld der tabelle verweisen, mit der das formular verknüpft ist.

Thomas0782
24.09.2001, 08:13
das ganze soll in ne if anweisung rein.
wenn ich zwischen den datensätzen wechsele.
ist abhängig von nem kontrollkästchen.

erwin
24.09.2001, 08:42
siehe ControlSource Eigenschaft i.d. OL-Hilfe

zB.: Me!FeldName.ControlSource = "anderesFeld"

so long erwin...

Thomas0782
24.09.2001, 12:35
funzt so leider nicht, hab auch schon etwas rumprobiert, a bringt aber jedes mal ne fehlermeldung.

Stema
24.09.2001, 12:38
Hallo Thomas,

prinzipiell fuktioniert Erwin's Vorschlag.
Vielleicht solltest Du uns mal zeigen, was Du bis jetzt gemacht hast und dann sagen welche Fehlermeldung auftaucht.
Dann findet sich bestimmt jemand, der Dir helfen kann...

Thomas0782
24.09.2001, 12:45
So sieht die prozedur aus. die funktioniert aber leider nicht. Soldat ist ein Kontrollkästchen, FIDR ein Textfeld.

Private Sub Soldat_AfterUpdate(Cancel As Integer)
If Me.Soldat = True Then
Me!FIDR.ControlSource = "Dienststelle"
Else
Me!FIDR.ControlSource = "Institution"
End If
End Sub

Thomas0782
24.09.2001, 13:36
sorry, hab mich etwas dumm angestellt. hätte gleich präziser werden sollen. jetzt sollte es aber erkennbar sein, worum es mir geht. an welchen stellen ich dann den quelltext einbauen muss, damit es funzt weiss ich auch, bloß am qt selber hängts halt. wäre nett, wenn hr mir da noch etwas helfen könntet.

Danke

erwin
25.09.2001, 08:54
was funktioniert denn nicht - bzw. was für Fehler kommt ???

In der, dem Form zugrundeliegenden Tab./Query MUSS es die Felder namens "Dienststelle" und "Institution" geben (max. 1x sonst wäre Tabname.Feldname nötig), ausserdem wird das Konstrukt nur dann funktionieren, wenn das Feld "Soldat" geändert wird - und nicht automatisch - dazu müsstest du die Funktion auch noch bei Form_Current (BeimAnzeigen) aufrufen - wobei das ganze sowieso NUR in einem eizelnen Formular (also weder Endlos noch Datenblatt) sinnvoll funktionieren kann.

so long erwin...

PS: logische Felder braucht man nicht auf = True zu prüfen ;)

Thomas0782
25.09.2001, 09:13
wie müsste denn dann unter Form_Current konkret der Code aussehen, damits funzt?
Bedingungen:
Tabelle mit Feld Institution und Dienststelle
Formular mit Textfeld Dienststelle und Kontrollkästechen Soldat

-> aus Institution soll, wenn Soldat = -1 Dienststelle werden

erwin
25.09.2001, 20:33
na - ganz denselben Code wie der beim AfterUpdate natürlich: Der Feldinhalt von "Soldat" ändert sich eben entweder, wenn er vom Benutzer geändert wird, oder wenn ein neuer/anderer DS angezeigt wird.

so long erwin...

PS: das mit dem =True hast du falsch verstanden (denke ich ;) ) Man soll boolsche Felder auch nicht auf = -1 abfragen !
Du sagst doch auch nicht:
Wenn er wahr ist, dass die Sonne scheint, gehe ich spazieren. :D

dh. wenn du boolsche (logische) Felder abfragst, schreib eleganter + performancegünstiger zB.:

if Me!Soldat Then... ' oder
if (not Me!Soldat) Then...