Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Registerkarten ausblenden?

Begonnen von Dorian, Mai 21, 2010, 12:21:20

⏪ vorheriges - nächstes ⏩

Dorian

Hallo liebes Forum!

Ich habe in einem Register "Druck/Zeitung" u.a. 4 ja/nein Felder. Kann ich mithilfe dieser Felder andere Register automatisch aus- und einblenden? Wenn ich z.B. auf die ja/nein Schaltfläche Liederzettel "nein" gewählt habe, wäre es schön, wenn diese Registerkarte garnicht erst erscheint!
Kann ich das per Code bei klicken lösen?

Danke für Hilfe

Dorian

database

#1
Hallo Dorian,

ja das geht, das kann man realisieren.

Wenn du die Register direkt beim Ankaken der Felder (ich gehe davon aus, dass du mitJa/Nein-Feldern Checkboxen also Kontrollkästchen meinst) ausblenden möchtest:

Folgendes ist UNGETESTET!

Ins Ereignis 'Beim Klicken' der betreffenden Checkbox (angenommen, dass diese 'chkLiederzettel' heißt) --->


Private Sub chkLiederzettel_Click()
   If Me!chkLiederzettel = 0 then
       Me!NameDeinerRegisterkarte.Visible = True
   Else
       Me!NameDeinerRegisterkarte.Visible = False
   End If
End Sub


Beim Laden des Formulars musst dann überprüfen ob die Checkbox auf ja oder nein steht und entsprechend die Sichtbarkleit der Registerkarte setzen.
Voraussetzung ist aber, dass die Zustände der Checkboxen in der DB gespeichert sind.

HTH

Peter

Dorian

#2
Hallo Peter!

Ich habe es mit Deiner Hilfe gelöst!

Private Sub Trauer_Brief_Click()
   If Me!Trauer_Brief = 0 Then
       Forms!Auftraege!Trauerbriefe!.Visible = False
   Else
       Forms!Auftraege!Trauerbriefe!.Visible = True
   End If
End Sub


Klappt alles prima!

Danke für Deine (so oft schon) Hilfe!

LG

Dorian

PS: Sollte ich vor Forms! noch Me! hinzufügen???

Neee, geht nur ohne Me!

database

Hallo Dorian,

freut mich, dass ich mal wieder helfen konnte :)

ZitatSollte ich vor Forms! noch Me! hinzufügen
Nein, mit Forms! wird die Forms-Auflistung aufgerufen in der dann das Formular 'Auftraege' gefunden wird.
Nach Auftraege folgt wiederum ein ! um die Auflistung der Steuerelemente aufzurufen, in der dann das Registersteuerelement 'Trauerbriefe' angesprochen wird.
Für dieses wird dann mittels Punkt die Eigenschaft Visible auf wahr oder falsch gesetzt.

Nach 'Trauerbriefe' sollte KEIN Rufzeichen mehr stehen!
siehe hierzu bitte auch:   www.donkarl.com?FAQ6.3

Greets
Peter

Dorian

Hallo Peter!

Ja so langsam fange ich an die ersten Schritte zu verstehen  ;D

Danke Dir für Deine Hilfe!

LG

Dorian

Dorian

Hallo Peter!

Doch noch eine Frage. Die Ereignisse bei Click funktionieren jetzt. Jetzt möchte ich diese Ereignisse beim Laden des Formulars ebenfalls als Codes einfügen:

   If Me!Trauer_Brief = 0 Then
        Forms!Auftraege!Trauerbriefe!.Visible = False
    Else
        Forms!Auftraege!Trauerbriefe!.Visible = True
    End If


Private Sub Trauer_Zeitung_Click()
If Me!Trauer_Zeitung = 0 Then
        Forms!Auftraege!Traueranzeige.Visible = False
    Else
        Forms!Auftraege!Traueranzeige.Visible = True
    End If
End Sub


Ich muss sie glaube ich auf "Public" setzten und eine Run Sql ??? Anweisung machen, oder?

Dorian


database

Hallo Dorian,

für die Überprüfung der Chekboxen brauchst du keine SQL Anweisung, den Zustand kannst du eigentlich auch aus dem Formular erfragen.
Alternativ kann der Zustand natürlich auch aus der betroffenen Tabelle selbst ermittelt werden - dazu kann ich aber keine definitive Aussage oder Tipp liefern, da ich jetzt nicht weiß wie die Zuordnung der betreffenden Daten in deiner Datenbank gehandelt wird.
Daher zum Formular
Um den Zustand der Häkchen beim Öffnen des Formulars zu Prüfen benötigst du das Ereignis 'beim Öffnen' des Hauptformulars!

Ich gehe davon aus, dass ich deine Beschreibung genau verstanden habe und im Formular 'Auftraege'   2 Checkboxen erstellt wurden, die 1. mit dem Namen Trauer_Brief und die 2. mit dem Namen Trauer_Zeitung.
Je nach Zustand dieser Checkboxen - angehakt oder nicht - wird die zugeordnete Registerkarte angezeigt oder nicht.
Also sollte folgendes den gewünschten Effekt bringen:

Im Formular Autraege:


Private Sub Form_Open(Cancel As Integer)

   If Me!Trauer_Brief = 0 Then
       Forms!Auftraege!Trauerbriefe.Visible = False
   Else
       Forms!Auftraege!Trauerbriefe.Visible = True
   End If

   If Me!Trauer_Zeitung = 0 Then
       Forms!Auftraege!Traueranzeige.Visible = False
   Else
       Forms!Auftraege!Traueranzeige.Visible = True
   End If
End Sub


Wenn sich die Chekboxen nicht auf dem Formular 'Auftraege' befinden musst du in der If - Bedingung statt Me! die Ansprache  Forms!Auftraege!NameDerRegisterkarte!Trauer_Brief / Trauer_Zeitung  verwenden.

Hoffe es Klappt auch diesmal... :)

Grüße
Peter

Dorian

Hallo Peter!

Jaaa auch das habe ich mir Deiner Hilfe hinbekommen.
Jetzt nur noch eine Frage:

Wenn ich den Datensatz ändere, möchte ich ja auch diese Codes ausführen.
Ist das dann Datensatzwechsel:  "Bei Änderung" oder "Bei Datenänderung" oder?

Dorian

database

Hi Dorian,

Das sollte das Ereignis 'Beim Anzeigen' des Formulars sein also Form_Current

Greets Peter

Dorian

Hi Peter!

Ja, jetzt ist alles richtig!!!

Vielen Dank!

Dorian