Guten Abend Ihr Fachleute,
nach intensiver Recherche habe ich leider für mein Problem keine Lösung gefunden, obwohl ähnliche Fragen schon gestellt worden sind.
Auf einem Hauftformular (frm_Dokumente) ist ein Treeview und ein Unterformular (frm_Dokumente_AbfrageUF).
Durch einen Doppelklick auf einen Knoten im Treeview wird der gesamte Pfadname an eine Variable Namens strgFilterwert übergeben.
Nun soll das Unterformular (frm_Dokumente_AbfrageUF) auf das Feld "Struktur_Zuordnung" gefiltert werden und zwar auf den Wert , der in der Variablen strgFilterwert "gespeichert" worden ist.
Ich denke es gibt zwei Ansätze für dieses Problem:
1. Filterkriterium per VBA direkt an das Unterformular übergeben
Hierzu war z.B. einer meiner vergebens ausprobierten Ansätze:
Private Sub tvwDokuFolder_DblClick()
Set objTreeView = Me.tvwDokuFolder.Object
strgFilterwert = objTreeView.SelectedItem.FullPath
Debug.Print strgFilterwert
Me![Struktur_Zuordnung].Form.Filter = "[Struktur_Zuordnung] = 'strgFilterWert'"
Me![Struktur_Zuordnung].Form.FilterOn = True
End Sub
Folgende Fehlermeldung tritt auf:
Laufzeitfehler '438':
Objekt unterstützt diese Eigenschaft oder Methode nicht!
Debuggen Fehler an folgender Stelle:
Me![Struktur_Zuordnung].Form.Filter = "[Struktur_Zuordnung] = 'strgFilterWert'"
Habe auch zu Testzwecken versucht direkt einen Wert anstatt der Variablen anzugeben. Ebenfalls ohne positives Ergebnis.
2.) Filterkriterium der Abfrage ändern.
Das Unterformular bezieht die Daten aus einer Abfrage qry_Dokumente_AbfrageUF ohne Filterkriterium
Nach Doppelklick auf einen Knoten bekommt die o.g. Abfrage ein Filterkriterium für das Feld "Struktur_Zuordnung" übergeben. Danach müsste das Unterformular "frm_DokumenteUF" aktualisiert werden.
Hierfür habe ich aber keinen nennenswerten Ansatz gefunden außer
Dim strgFilterwert As String
Set objTreeView = Me.tvwDokuFolder.Object
strgFilterwert = objTreeView.SelectedItem.FullPath
Debug.Print strgFilterwert
[Query]![qry_Dokumente_AbfrageUF]![Struktur_Zuordnung] = strgFilterwert
Da sich auf dem Hauptformular kein Steuerelement befindet habe ich auch keine Verknüpfung in den Eigenschaften des Unterformulars angegeben (Verknüpfung von & Verknüpfung nach).
Ich hoffe ich konnte mein Problem enigermaßen verständlich beschreiben und bedanke mich schon jetzt für eure Antworten und Lösungsansätze.
Schönen Abend
Lehrling Frank
ZitatUnterformular (frm_Dokumente_AbfrageUF)
Me![Struktur_Zuordnung].Form.Filter = "[Struktur_Zuordnung] = 'strgFilterWert'"
Mit welchem Namen sollte man das Unterformular-Control ansprechen?
Zitat von: Lehrling Frank am Mai 13, 2023, 20:25:39Me![Struktur_Zuordnung].Form.Filter = "[Struktur_Zuordnung] = 'strgFilterWert'"
Du musst die fixen Textliterale mit dem *Wert* aus der Variable verknüpfen.
Me![Struktur_Zuordnung].Form.Filter = "[Struktur_Zuordnung] = '" & strgFilterWert & "'"Weiterhin schließe ich mit den Zweifeln von
@ebs17 an, dass "Struktur_Zuordnung" nicht der tatsächliche Name des Unterformular
steuerlements ist.
Hallo Eberhard, hallo PhilS,
wie recht Ihr mal wieder habt. Natürlich war meine Interpretation der Syntax falsch. Habe einen Hinweis hier im Forum falsch verstanden. Aus
,,Und, ganz wichtig, "NameUnterformular" MUSS der Name des Unterformular-Steuerelements (ich hasse dieses Wort) sein, und NICHT der Name des eingebetteten Formulars."
habe ich Steuerelement eines Feldes gemacht. Somit kam die Doppelung zustande, was mich schon ein wenig stutzig gemacht hast.
Hier nun meine Lösung:
'Me![Dokumente].Form.Filter = "[Struktur_Zuordnung] = '" & strgFilterwert & "'" 'Genaue Filterung
'Me![Dokumente].Form.Filter = "Struktur_Zuordnung like '*" & strgFilterwert & "*'" ' mit vor- und nachgestellter Wildcardfunktion
Me![Dokumente].Form.Filter = "Struktur_Zuordnung like '" & strgFilterwert & "*'" ' mit nachgestellter Wildcardfunktion
Me![Dokumente].Form.FilterOn = True
Nochmals DANKESCHÖN für eure Informationen.
Lehrling Frank