Supportnet / Forum / Datenbanken
Access - Sichtbarkeit in Formularen
Frage
Hallo ich bis mal wieder,
kann ich in einem Formular ein Textfeld nur anzeigen lassen wenn etwas drin steht?
Ich habe Felder die nicht unbedingt befüllt sind, und wenn aber nix drinsteht will ich auhc nicht das sie angezeigt werden.
Geht das? oder ist das Wunschdenken?
Danke schon im Vorraus
cremecarameleis
Antwort 1 von Risatara2
Hi,
Wenn du VBA kannst geht das. Wenn nicht hier die Schritte:
Du gehst in das Formular, in die Entwurfsansicht. Dort machst du einen Doppelklick in die Linke obere Ecke, wo sich die beiden Lineale schneiden, so dass das Eigenschaftsfenster auf geht.
In den Eigenschaften gehst du auf Ereignis (der Reiter oben in dem Fenster), und machst einen Doppelklick in das Feld hinter "Beim Anzeigen". Da sollte dann "[Ereignissprozedur]" stehen. Dann sollte auch hinter dem Feld ein Button mit "..." stehen, auf den klickst du, und der VBA-Editor geht auf.
Dort bist du dann in einer Sub, also zwischen den beiden Texten "Sub Form_Current()" und "End Sub". Hier gibst du jetzt ein:
Ich kann es leider nicht ausprobieren, darum bin ich mir nicht 100% sicher. Auf jeden Fall Sicherheitskopie machen.
Risatara
Wenn du VBA kannst geht das. Wenn nicht hier die Schritte:
Du gehst in das Formular, in die Entwurfsansicht. Dort machst du einen Doppelklick in die Linke obere Ecke, wo sich die beiden Lineale schneiden, so dass das Eigenschaftsfenster auf geht.
In den Eigenschaften gehst du auf Ereignis (der Reiter oben in dem Fenster), und machst einen Doppelklick in das Feld hinter "Beim Anzeigen". Da sollte dann "[Ereignissprozedur]" stehen. Dann sollte auch hinter dem Feld ein Button mit "..." stehen, auf den klickst du, und der VBA-Editor geht auf.
Dort bist du dann in einer Sub, also zwischen den beiden Texten "Sub Form_Current()" und "End Sub". Hier gibst du jetzt ein:
If isnull(Me.DeinFeldNameHier) then Me.DeinFeldNameHier.Visible = false else Me.DeinFeldNameHier.Visible = true
Ich kann es leider nicht ausprobieren, darum bin ich mir nicht 100% sicher. Auf jeden Fall Sicherheitskopie machen.
Risatara
Antwort 2 von cremecarameleis
Hallo,
Habs ausprobiert und es sagt mir aber Fehler beim Kompilieren: Else ohne If
?????
cremecarameleis
Habs ausprobiert und es sagt mir aber Fehler beim Kompilieren: Else ohne If
?????
cremecarameleis
Antwort 3 von Roadrunner90
Hi,
da fehlt nur noch ein endif
Gruß Rudolf
da fehlt nur noch ein endif
Gruß Rudolf
Antwort 4 von erik
oder die Kurzfassung:
With Me.MeinFeld
.Visible = Not IsNull(.Value)
End With
With Me.MeinFeld
.Visible = Not IsNull(.Value)
End With
Antwort 5 von cremecarameleis
Hi Roadrunner,
An das endif hab ich gedacht. Und es schmeißt mit trotzdem den Fehler.
Gruß cremecarameleis
An das endif hab ich gedacht. Und es schmeißt mit trotzdem den Fehler.
Gruß cremecarameleis
Antwort 6 von Risatara2
Da fehlt kein End If, sondern das ganze ist in einer Zeile.
Antwort 7 von cremecarameleis
Cool, jetzt funktionierts. Wenn ich jetzt mehrere Anweisungen hintereinander machen möchte, brauch ich dann das end if?
Gruß cremecarameleis
Gruß cremecarameleis
Antwort 8 von Risatara2
Kommt darauf an, wie du das meinst: Wenn du sagst ich habe in Feld 1 keinen Wert, deshalb sollen die Felder 2, 3 und 4 ausgeblendet werden, würdest du das ungefähr so schreiben:
Wenn du aber sagst, wenn Feld 1 leer ist, soll es nicht angezeigt werden, und wenn Feld 2 leer ist soll es nicht angezeigt werden schreibst du:
if isnull(me.feld1)
then
me.feld2.visible=false
me.feld3.visible=false
...
else
me.feld2.visible=true
me.feld3.visible=true
...
end if
Wenn du aber sagst, wenn Feld 1 leer ist, soll es nicht angezeigt werden, und wenn Feld 2 leer ist soll es nicht angezeigt werden schreibst du:
if isnull(me.feld1) then me.feld1.visible=false else me.feld1.visible=true
if isnull(me.feld2) then me.feld2.visible=false else me.feld2.visible=true
...

