Datenherkunft im UF ändern

Hallo ihr Experten,

ich habe ein Problem mit der Datenherkunftsänderung.

Ich habe ein Formular „Übersicht_F“, dieses enthält ein UF „Programme_F“, basierend auf der Tabelle „Programme_T“.
Die Tbl „Programme_T“ enthält ein Feld „Kategorie“.
In diesem Feld trage ich eine Kategorie zur Beschreibung ein, zb. „Tools“, oder „Audio“, oder „Bildbearbeitung“ u.s.w.
Jetzt habe ich verschieden Abfragen erstellt, die mir in meinem Unterformular „Programme_F“ entsprechend filtern.
Also, habe ich eine Abfrage „Tools_A“, eine Abfrage „Audio_A“ u.s.w.

Wie bekomme ich es hin, dass ich in meinem Übersichtsformular per Button die Datenherkunt in meinem UF ändere. Also bei Klick auf dem Button Tools, soll die Datenherkunft die Abfrage „Tools_A“ sein.

Bekomme das einfach nicht hin.
Benutze Access 2000

Hoffe auf eure Hilfe und vielen Dank,
Markus

Hallo,
du solltest nach dem Klick auf den Button die Datenherkunft des Unterformulars auf die entsprechende Abfrage mit der Recordsource-Eigenschaft des Unterformulars setzen.
Beispiel: Me!unterformular.recordsource=„Tools_A“.

Aber ich hätte mir das Erstellen der einzelnen Unterformularabgragen erspart, in dem ich nur eine Abfrage dazu erstelle, in der die Bedingung der Kategorie etwa so lautet: =forms!hauptformularname!auswahlfeld. Dann kannst du mit dem Button das Unterformular aktualisieren lassen (me!unterformular.requery). Wenn du nachträglich noch Kategorien hinzufügst, ersparst du dir das Programmieren für die weiterne Kategorien.

Hallo ihr Experten,

ich habe ein Problem mit der Datenherkunftsänderung.

Ich habe ein Formular „Übersicht_F“, dieses enthält ein UF
„Programme_F“, basierend auf der Tabelle „Programme_T“.
Die Tbl „Programme_T“ enthält ein Feld „Kategorie“.
In diesem Feld trage ich eine Kategorie zur Beschreibung ein,
zb. „Tools“, oder „Audio“, oder „Bildbearbeitung“ u.s.w.
Jetzt habe ich verschieden Abfragen erstellt, die mir in
meinem Unterformular „Programme_F“ entsprechend filtern.
Also, habe ich eine Abfrage „Tools_A“, eine Abfrage „Audio_A“
u.s.w.

Wie bekomme ich es hin, dass ich in meinem Übersichtsformular
per Button die Datenherkunt in meinem UF ändere. Also bei
Klick auf dem Button Tools, soll die Datenherkunft die Abfrage
„Tools_A“ sein.

Hast Du beim Click-Ereignis schon einmal die Datenquelle im Unterformular geändert (einfache Zuweisung) und über Requery auf dem Unterformular für eine Datenaktualisierung gesorgt ?!?

Ich persönlich würde keine getrennten Abfragen erstellen, sondern eine SQL-String mit entsprechender Where-Bedingung direkt manipulieren und als Datenquelle zuweisen.

Hallo,
danke für die schnelle Antwort.
Die Geschichze mit dem Recorsource habe ich schon einmal probiert.
Bekomme aber immer die Meldung "MS Office Access kann das in Ihrem Ausdruck angesprochene Feld ‚Programme_UF‘ nicht finden. Was mache ich denn da falsch?
Hier mal der Code:

Private Sub Befehl52_Click()
On Error GoTo Err_Befehl52_Click
Me!Programme_UF.RecordSource = „Tools_A“
Me!Programme_UF.Requery
Exit_Befehl52_Click:
Exit Sub
Err_Befehl52_Click:
MsgBox Err.Description
Resume Exit_Befehl52_Click
End Sub

Grüße, Markus

Danke für die schnelle Antwort,
leider bin ich in Sachen Access und VBA noch Anfänger und daher noch nicht so erfahren in der Manipulation von Abfragen uns SQL Anweisungen.
Daher im Moment erstmal mehere Abfragen.
Gruß, Markus

Der Umgang mit SQL-Strings ist nicht sonderlich schwer. Du kannst ja jederzeit im Abfrage-Editor den SQL-String anzeigen lassen. Du wirst feststellen, dass sich bis auf eine Stelle in der WHERE-Klausel nichts ändert - so etwas kann man dann quasi einfach über einen String zusammenbauen.

strPreSQL = "SELECT … WHERE ( = "
strPostSQL = „);“
strSQL = strPreSQL & & strPostSQL.

Den Filterwert kannst Du dynamisch aus dem gewählten Auswahlfeld übernehmen - dadurch wird die Applikation flexibel und die brauchst bei einem neuen Kriterium nicht eine neue Abfrage erstellen :wink:

Hallo,

habe noch etwas gegoogelt und denke ich werde es einmal so probieren.
Also vilen Dank für die Hilfe

Hallo Markus,

melde mich erst jetzt, da Urlaub jetzt vorbei.
Die Lösung geht per vba-Befehl für den Button Click-Ereignis. Dort trägst du ein:
Me.RecordSource = „Name der Abfrage“
Du kannst auch das SQL-Statement der Abfrage für Me.RecordSource eintragen.

Gruß Reinold
wenn es nicht klappt, bitte nochmals kontaktieren

Hallo Reinhold,

musste noch etwas probieren, weil sich der Click-Befehl auf das UF bezog, aber nun funktioniert es.

Vielen Dank für die Hilfe.
Grüße, Markus

Hallo markus,

ich habe die Frage nicht ganz verstanden und hoffe, es konnte Dir in der zwischenzeit jemand helfen…

Viele grüße

Dagmar

Tut mir leid, dafür habe ich leider keine Lösung parat.