Hallo,
ich habe ein Formular mit Registerkarten erstellt. Das Formlar beginnt mit einigen Datenfeldern, darunter sind die Registerkarten angeordnet. Nun sollen einige der Registerkarten abhänig von einem bestimmten Wert in einem der oberen Datenfelder ein- bzw. ausgeblendet werden. Meine Fragen: Geht das und wenn ja, wie bzw. wenn es nicht ginge, gibt es Alternativen?
Ganz vielen Dank für Eure Hilfe.
f.
Hi,
probier mal:
Me.Name_der_Registerkarte(Nummer der auszublendenden Karte).visible=false bzw. true
Die Nummer steht bei den Eigenschaften des Registers im Reiter "Format" beim Begriff "Seitenindex".
Harald
Danke Harald für die schnelle Antwort. Das Problem ist nur, dass ich die betreffende Registerkarte abhängig von einem bestimmten Datenwert im oberen Teil des Formulars ausblenden lassen will. Also wenn in dem Betreffenden Feld (das ist ein Auswahlfeld mit mehreren Werten) "X" steht (oder bei neuen Datensätzen entsprechend ausgewählt wird), soll die Registerkarte erscheinen oder eben nicht.
Hi,
das Auswahlfeld hat ein Ereignis "Nach Aktualisierung".
Dort mußt Du den Inhalt des Feldes prüfen und die Sichtbarkeit des Registers einstellen.
In der Art:
if Me.MeinAuswahlfeld = "X" then
Me.(hier muss ggf. noch der Name des Unterformulars stehen!)Name_der_Registerkarte(Nummer der auszublendenden Karte).visible=false
else
Me.(hier muss ggf. noch der Name des Unterformulars stehen!)Name_der_Registerkarte(Nummer der auszublendenden Karte).visible= true
end if
Vermutlich ist es einfacher, Du stellst eine komprimierte und gezippte Datenbank im access 2003-Format mit wenigen Spieldaten zur Verfügung, dann ist Hilfe einfacher.
Harald
Hi Harald,
hab wieder ganz herzlichen Dank - geht ja echt schnell. Da ich kein Access-Crack bin, stelle ich mich vielleicht auch etwas an :(
Hab jetzt folgendes versucht:
Private Sub pers_typ_AfterUpdate()
If Me!pers_typ = 1 Then
Me!RegisterStr23!Fraktion!Visible = False
Else
Me!RegisterStr23!Fraktion!Visible = True
End If
End Sub
Es klappt aber leider nicht. Zur Erläuterung: Das Auswahlfeld heißt "pers_typ" - man kann dort aus einer Liste auswählen, die entscheidende (also wenn eingeblendet werden soll) ist, wenn der Wert "1" eingegeben wird (=der referenzierte Wert, angezeigt wird eine Bezeichnung). "RegisterStr23" ist der Name des Registers, "Fraktion" heißt das Registerblatt....
Vielleicht kannst Du ja nochmal drüber schauen. Danke Dir schon jetzt!!!!
falk
Hallo,
schreib mal
....Fraktion.Visible...
Hi,
und nach erfolgreicher Umsetzung vom Franz's Korrekturhinweis noch eine kleine Optimierung:
Private Sub pers_typ_AfterUpdate()
Me!RegisterStr23!Fraktion.Visible = Me!pers_typ <> 1
End Sub
... danke Euch, leider funktioniert es aber trotz Optimierung und Punktsetzung nicht :(
Hi,
definiere "funktioniert nicht".
z.B. tritt eine Error-Nr und Beschreibung auf?
Ist Dein Auswahlfeld vom Typ Zahl oder ist es ein Text?
Ansonsten wiederhole ich den Vorschlag: Datenbank hier reinstellen.
Harald
... das ist jetzt eingestellt:
Private Sub pers_typ_AfterUpdate()
Me!RegisterStr23!Fraktion.Visible = Me!pers_typ <> 1
End Sub
es gibt keine Fehlermeldung, aber auch keinerlei Reaktion.
Beim dem Feld handelt es sich um ein Auswahlfeld mit Zahlen, die jedoch nicht sichtbar sind (da in der ersten Spalte der dahinterliegenden DB und dieselbe mit "0cm" eingestellt ist).
Danke für Deine Mühe Harald...
Hallo,
bei solchen Aktionen stellt sich oftmals auch die Frage nach dem Sinn. Wie unterscheiden sich denn die Daten auf den Registern?
Sind das Daten aus unterschiedlichen Tabellen?
Oder sind das die gleichen Daten die auf den Registern nur unterschiedlich ausgewählt sind?
Hallo,
nein, das sind Daten aus unterschiedlichen Tabellen...
Viele Grüße
f
Hallo,
setz mal einen Haltepunkt in die Prozedur und prüf, ob die überhaupt ausgeführt wird. Prüfe dann den Inhalt des Feldes "pers_typ", ob darin tatsächlich die gewünschte Zahl steht...
Am besten lädst Du die Db hier mal hoch... (komprimiert/repariert und gezippt, evtl. auf ein paar Spieldaten reduziert.)
Hallo,
versuche es mal hiermit:Private Sub pers_typ_AfterUpdate()
Me!RegisterStr23.Pages("Fraktion").Visible = Not (Me!pers_typ = 1)
End Sub
Allerdings sollte der Code wohl auch im Formular-Ereignis "Beim Anzeigen" eingesetzt werden.