Hi
Ich möchte von einem Hauptformular einen Button auf einem Unterfomular sichtbar machen.
So soll es aussehn.
If IsNull(Me!txtNachname) Then
'MsgBox "Pflichtfeld!!"
txtNachname.BackColor = RGB(255, 0, 0)
Else
txtNachname.BackColor = RGB(255, 255, 255)
Forms!frm_UFO_Terminbuch!bntKundenUeb.Visible = True <--- so klappt es nicht !!!
End if
Könnt Ihr mir helfen??
Danke
Moin,
Private Sub txtNachname_Exit(Cancel As Integer)
If IsNull(Me!txtNachname) Then
'MsgBox "Pflichtfeld!!"
txtNachname.BackColor = RGB(255, 0, 0)
Else
txtNachname.BackColor = RGB(255, 255, 255)
' Forms!frm_UFO_Terminbuch!bntKundenUeb.Visible = True ' Deine Formulierung
End If
If IsNull(Me.txtNachname) Then Me!Unterformular!Text1.SetFocus ' Focus vom auszublendenem Button entfernen
Me!Unterformular!bntKundenUeb.Visible = Not IsNull(Me!txtNachname)
' Forms!HFo!Unterformular!bntKundenUeb.Visible = Not IsNull(Me!txtNachname) ' wenn es denn mit Forms!... sein muss
End Sub
siehe auch Beispiel im Anhang. Damit klappt es.
Was klappte denn bei Dir nicht? Fehlermeldung?
Harald
[Anhang gelöscht durch Administrator]
Hallo,
dieses hilft (auch):
http://www.donkarl.com/?FAQ4.2
Warum verweißt du auf "Text1"??
Aber irgendwie will das nicht gehn!
Gib euch mal die genauen Namen oder Objekte
Hauptformular : "frm_Kundenkarte"
Unterformular : "frm_UFO_Terminbuch"
Textfeld: "txtNachname" (auf dem Hauptformular das bei eingabe den Button Sichtbar schalten soll)
Button auf dem Ufo: "bntKundenUeb" (das sichtbar werden soll)
Hallo,
Du erklärst ungenau.
--Wie heißen das Formular , das als Unterform fungieren soll? (Name findest Du im Datenbankfenster/Formulare)
--Wie heißt das UFO-Steuerlement, das dieses "Unterform" anzeigen soll (Name findest Du in den Eigenschaften des markierten UFO-St-El. im Hauptformular.)
So sollte das gehen:
Im Haupt-Formular "frm_Kundenkarte":
Sub txtNachname_Change()
Me!Ufo_St_El_Name.Form!bntKundenUeb.Visible =Len(Me!txtNachname.Text) >0
End Sub
Ufo_St_El_Name ist durch den Namen des UFO_Steuerelementes zu ersetzen.
Danke klappt.
Und wie würde ich das machen wenn ich den Button nur "Blind" schalten möchte.
Hallo,
vermutlich meinst Du die "Aktiviert" ("Enabled")-Eigenschaft....
Zitat von: basti2010 am Februar 02, 2012, 14:39:23
Warum verweißt du auf "Text1"??
N'abend,
die Erklärung steht oben im Kommentar.
Wenn der Fokus auf ein Objekt gesetzt ist, kann dieses nur dann unsichtbar gemacht werden, wenn der Fokus auf ein anderes Steuerelement gesetzt wird. Das hatte in meinem Beispiel den Namen "Text1".
Was meinst Du mit "Blind" schalten?
Blind = Unsichtbar?
Blind = deaktiviert?
Harald
Meine Deaktivieren also graue Schaltfläche
N'abend,
1. dann ist das Versetzen vom Focus nicht nötig.
2. Me!frm_UFO_Terminbuch!bntKundenUeb.Enabled = Not IsNull(Me!txtNachname)
Harald
Und wenn ich das ganze jetzt in ein if ... else einbauen möchte...
und noch mal ne andere frage ... Gibt es im VBasic Editor keine Autovervollständigung (vorschlagsliste) mehr ??
Hallo,
ZitatUnd wenn ich das ganze jetzt in ein if ... else einbauen möchte...
mit dem Vorschlag von Harald ist das überflüssig. Der Wahrheitswert des Ausdrucks - Not IsNull(Me!txtNachname) - wird direkt zugeordnet. Es ist weder If noch Else erforderlich.
N'abend
wieso noch if else?
Wenn Du das erwartest:
If IsNull(Me!txtNachname) Then
Me!frm_UFO_Terminbuch!bntKundenUeb.Enabled = true
else
Me!frm_UFO_Terminbuch!bntKundenUeb.Enabled = false
end if
so ist das die umständliche Formulierung für den obigen Einzeiler.
Oder soll noch mehr gesteuert werden? Andere Objekte aktivieren/deaktivieren?
Harald
Ja genau es soll dann auch noch was anderes gestauert werden.
Hallo,
ZitatJa genau es soll dann auch noch was anderes gestauert werden.
Und was?
Vermutlich geht das auf die gleiche Art, ohne If..Then..Else
Zitat von: basti2010 am Februar 02, 2012, 20:05:16
Ja genau es soll dann auch noch was anderes gestauert werden.
Bitte verrate nicht zuviel, ansonsten könnte ich weitere konkrete Hilfe leisten ;D
Mal so ins Unreine spekuliert: Du willst noch ein anderes Element deaktivieren, dann schreibe hinter den obigen Einzeiler:
Me!frm_UFO_Terminbuch!Dein_anderes_Element.enabled = Me!frm_UFO_Terminbuch!bntKundenUeb.Enabled
Harald
Bei den Feldern txtNachname, txtVorname habe ich auch eine If funktion drin die überprüft ob die Zeile leer ist oder nicht.
Falls kein Zeichen drin steht und man Feld verlässt wird das feld rot. (Hinweis auf ein sogenanntes Pflichtfeld)
N'abend,
erwartest Du also das:
Private Sub txtNachname_Exit(Cancel As Integer)
If IsNull(Me!txtNachname) Then
'MsgBox "Pflichtfeld!!"
txtNachname.BackColor = RGB(255, 0, 0)
Me!frm_UFO_Terminbuch!bntKundenUeb.Enabled = false
Else
txtNachname.BackColor = RGB(255, 255, 255)
Me!frm_UFO_Terminbuch!bntKundenUeb.Enabled = true
End If
End Sub
Harald
So habe ich es auch gemacht
N'abend,
wenn damit dann alles gelöst ist, setze bitte in Deinem ersten Diskussionspunkt den grünen Haken auf erledigt.
Viel Spaß weiterhin
Harald