Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Registerkarten aus- und einblenden

Begonnen von mafa_neu, August 29, 2014, 01:07:53

⏪ vorheriges - nächstes ⏩

mafa_neu

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.

bahasu

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
Servus

mafa_neu

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.

bahasu

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
Servus

mafa_neu

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


bahasu

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
Servus

mafa_neu

... danke Euch, leider funktioniert es aber trotz Optimierung und Punktsetzung nicht :(

bahasu

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
Servus

mafa_neu

... 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...

MzKlMu

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?
Gruß Klaus

mafa_neu

Hallo,

nein, das sind Daten aus unterschiedlichen Tabellen...

Viele Grüße
f

DF6GL

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.)

MaggieMay

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.
Freundliche Grüße
MaggieMay