Neuigkeiten:

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

Mobiles Hauptmenü

Filterbedingung beim öffnen eines Formulars

Begonnen von dobby110, Januar 25, 2023, 15:11:43

⏪ vorheriges - nächstes ⏩

dobby110

Hallo zusammen,

ich habe folgendes Problem.
Und zwar möchte ich ein Formular mit einer Filterbedingung öffnen. In dem zu öffnenden Formular sind allerdings nur zwei Unterformulare enthalten.

Habe folgenden VBA-Code versucht, was aber nicht funktioniert:

Private Sub cmdDetails_Click()

 DoCmd.OpenForm "fmlDetailsGesamt", , , Formulare![fmlDetailsGesamt]![fmlDetailsBetreff].Form.Filter = [ID_Thema] = Me.[ID_Thema], , acDialog

End Sub

Zum besseren Verständnis hier noch ein paar Details, was ich eigentlich vor habe.

Auf dem Hauptformular habe ich eine Themenübersicht. Da werden nur die groben Themen aufgelistet, die in der kleinen Datenbank verwaltet werden. Über einen Button will ich die Details zu dem Thema aufrufen.
Und genau das ist mein Formular, mit dem ich Probleme habe. Ich habe dies folgendermaßen aufgebaut.
Das Formular, was sich öffnet heißt
"fmlDetailsGesamt"
In diesem Formular gibt es die beiden Unterformulare "fmlDetailsBetreff" und "fmlDetailsLong"
Beide Unterformulare beziehen sich auf die gleiche Tabelle (Details)
Im oberen Unterformular "fmlDetailsBetreff" wird nur der Betreff für den Detail-Eintrag aufgeführt. Zudem ein Timestamp und die ID des Detail-Eintrag.
Im unteren Unterformular, sollen mir dann die Details in Langform zu den einzelnen Detaileinträge angezeigt werden. Diese will ich per Klick (quasi wie bei einem geteilten Formular) angezeigt bekommen.

im ersten Step scheitert mein Vorhaben aber wie oben beschrieben daran, dass ich das Formular nicht mit den gewünschten Filterbedingungen öffnen kann.

Es gibt für das Thema die ID_Thema und für die verschiedenen Detail-Einträge die ID_Details, worüber die Zuordnung eigentlich ohne Probleme möglich sein sollte.

Wo liegt mein Fehler?

  •  

MzKlMu

#1
Hallo,
die Ufos benötigen eine Verknüpfung zum Hafo (vermutlich Thema_ID). Dann werden in den Ufos automatisch nur die zum Hafo passenden Daten angezeigt.
Dann muss nur das Hafo gefiltert werden. Wobei ich nicht filtern würde, sondern mit einem Kombi nur den gewünschten Datensatz anzeigen.

Und wenn gefiltert öffnen, eher sO
DoCmd.OpenForm "fmlDetailsGesamt", , , "[ID_Thema] = " & Me.[ID_Thema], , acDialog
Zeige mal ein Bild des Beziehungsfensters.
Gruß
Klaus
  •  

dobby110

irgendwie bekommen ich das nicht hin, probiere aber gleich noch den vorgeschlagenen VBA-Code

Anbei die gewünschten Screenshots.

Wie beschrieben soll über den Button "Details" das Formular mit den zwei Unterformularen geöffnet werden.
Aber gefiltert/beschränkt auf die "ID_Thema" im oberen Ufo.

Wie verknüpfe ich denn das Ufo mit dem Hafo? Vielleicht liegt da mein Fehler?
Irgendwie steht ich jetzt komplett auf dem Schlauch.
  •  

MzKlMu

Hallo,
Du solltest erst mal die Beziehungen überarbeiten, siehe Bild.
Die Kategorie benötigt einen Primärschlüssel und in die Themen einen entsprechenden Fremdschlüssel Entferne die Nachschlagefelder (cbo...) in den Tabellen, die haben dort nichts zu suchen. Diese sind nur in Formularen sinnvoll und erfüllen dort ohne Einschränkung den gleichen Zweck.
Für Status und Prio fehlen Tabellen, Wertelisten sind ungeeignet.
Ein Fremdschlüsselfeld zum Thema ist in der Anhangtabelle ersatzlos überflüssig, denn über die Details hast Du automatisch auch das Thema.

Dies Präfixe bei den Feldnamen (txt, dat, cbo usw.) sind schlichtweg überflüssig. Machen nur Schreibarbeit, sonst sind die zu nix nutze. txtlong ist ohnehin wenig sinnvoll, es ist entweder txt oder long, beides geht nicht.

Von einem Feld "Anhang" würde ich auch Abstand nehmen, das sollte ein normales Textfeld sein, mit dem Pfad und Dateinamen zum Anhang. Auch Hyperlinkfelder sind nicht zu empfehlen, hier tut es auch ein ganz normales Textfeld.

Überarbeite das erst mal, bevor Du über Formulare nachdenkst.
Gruß
Klaus
  •