Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Filter für Unterformular
zurück: ERLEDIGT: Weiteres Datenbank-Feld ausgeben weiter: einfaches Formular Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
wdseifert
Acccess-VBA-Programmierer im Nebenberuf


Verfasst am:
20. Mai 2007, 17:01
Rufname: Didi
Wohnort: Korntal-Münchingen

Filter für Unterformular - Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo zusammen,

trotz intensiver Suche (auch in diesem Forum) habe ich noch keine Lösung für mein Problem...

Ich habe ein Formular "Rechnung" mit einem Unterformular "Rechnungdetails". "Rechnungdetails" beruht auf einer eigenen Abfrage. Weiterhin habe ich ein 2. Unterformular "Sammelrechnung", in dem ich zusätzlich zum eigentlichen Stammauftrag (über den Schlüssel "AuftragID" identifiziert) weitere Aufträge (auch jeweils über den Schlüssel "AuftragID" identifiziert) zuordnen kann. Nun möchte ich in dem Unterformular "Rechnungsdetails" abhängig vom Inhalt des Unterformulars "Sammelrechnung" alle den AuftragID's zugeordneten Detaildatensätze anzeigen lassen.
Grundsätzlich sollte das wohl so funktionieren, dass man das Unterformular "Rechnungdetails" nicht direkt verknüpft, sondern jeweils einen Filter setzt.
Leider funktionieren meine Versuche bisher nicht:
Code:
    Me.Filter = "'Me.Parent!ufRechnungdetails!Probe_AuftragID' = '" & Me!AuftragID & "'"
    Me.Parent!ufRechnungdetails.Form.Filter = Me.Filter
    Me.Parent!ufRechnungdetails.Form.FilterOn = True
Me.Filter muss abhängig vom Inhalt des "Sammelrechnung"-Unterformulars entsprechend angepasst werden.
Welchem Ereignis muss die Filtereinstellung zugeordnet werden?
Hat jemand eine Idee?

Grüßle

_________________
Es gibt 10 Gruppen von Computernutzern: Die einen verstehen das binäre System, die anderen nicht.
jens05
Moderator


Verfasst am:
20. Mai 2007, 20:20
Rufname:
Wohnort: ~~~~~


AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo,
im Formulareriegnis "Beim Anzeigen" vom UF "Sammelrechnung" solltest du richtig sein.

Nur verstehe ich deinen 1. Filter nicht?
du vergleichst den String 'Me.Parent!ufRechnungdetails!Probe_AuftragID' mit einer Zahl Confused
Code:
    With Me.Parent!ufRechnungdetails.Form
        .Filter = "Probe_AuftragID=" & Me!AuftragID
        .FilterOn = True
    End With
Probe_AuftragID = Datenfeld im UF "ufRechnungdetails"
AuftragID = Textfeld im UF Sammelrechnung

_________________
mfg jens05 Wink
wdseifert
Acccess-VBA-Programmierer im Nebenberuf


Verfasst am:
20. Mai 2007, 23:08
Rufname: Didi
Wohnort: Korntal-Münchingen

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo jens,

vielen Dank für die schnelle Antwort.
Ich muss -glaube ich- deutlicher erklären:
AuftragID ist eine Zahl in einer Tabelle "Auftrag" (und das Hauptsortier-/Auswahlkriterium für das Hauptformular "Rechnung").
Probe_AuftragID (= Hauptsortier-/Auswahlkriterium für das Unterformular "Rechnungdetails") ist eine Zahl gleichen Formats in einer Tabelle "Probe" und über eine 1:n-Beziehung verknüpft.
Vermutlich habe ich da ein Syntaxproblem, dass ich nicht sehe Sad
(ich verstehe Deinen Einwand auch nicht mit Text und Zahl ...):
me.Filter ist doch eine String-Definition für einen Filter (SQL Klausel ohne WHERE) oder?
Diesen Filter ordne ich dem Unterformular zu (2. Zeile) ...
und sage dann Filter anwenden (3. Zeile) oder sehe ich das komplett falsch?

Mein Problem weiterhin ist, dass ich den Filter für die Detaildatensätze je nach Inhalt der Liste/des Formulars "Sammelrechnung" (Basis ist eine Tabelle mit 2 Spalten: SRUnterauftragID und SRStammauftragID) anpassen muss:
wenn es leer ist: Probe_AuftragID = AuftragID (=Stammauftrag aus dem Hauptformular oder SRStammauftragID aus ufSammelrechnung, da identisch - logisch oder?)
wenn es 1 Datensatz enthält: Probe_AuftragID = AuftragID OR Probe_AuftragID = SRUnterauftragID(1)
wenn es x Datensätze enthält: Probe_AuftragID = AuftragID OR Probe_AuftragID = Probe_AuftragID = SRUnterauftragID(1) ... OR Probe_AuftragID = SRUnterauftragID(x)

_________________
Es gibt 10 Gruppen von Computernutzern: Die einen verstehen das binäre System, die anderen nicht.
jens05
Moderator


Verfasst am:
21. Mai 2007, 07:06
Rufname:
Wohnort: ~~~~~

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo,
es ist schon richtig, das der Filter der Where Klausel entspricht.
Hierbei
Code:
Me.Filter = "'Me.Parent!ufRechnungdetails!Probe_AuftragID' = '" & Me!AuftragID & "'"

dürfte dann aber z.B.
"Me.Parent!ufRechnungdetails!Probe_AuftragID" = "25" rauskommen.

Wie du filtern möchtest, ist jetzt nach deinem letzten Post für mich unverständlicher geworden Crying or Very sad
Ein Bsp der DB kannst du nicht online stellen?

_________________
mfg jens05 Wink
wdseifert
Acccess-VBA-Programmierer im Nebenberuf


Verfasst am:
21. Mai 2007, 09:49
Rufname: Didi
Wohnort: Korntal-Münchingen


AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hi Jens,

das mit den Hochkommas war eine der tausend Versionen, die ich ausprobiert habe ...
aber auch ohne funzt es nicht Sad

Vergiss erstmal das Problem mit dem Unterformular "Sammelrechnung" ...

Ich schaffe es ja nicht mal aus dem Hauptformular raus, den Filter zu setzen
Evil or Very Mad
Probe_AuftragID und AuftragID sind übrigens die jeweiligen Steuerelementinhalte.
Mit (im Objekt Form_Current() des Hauptformulars) (zum Testen!)
Code:
     Me.Filter = "Probe_AuftragID = " & Me!AuftragID
     Me!ufRechnungdetails.Form.Filter = Me.Filter
     Me!ufRechnungdetails.Form.FilterOn = True

bekomme ich die "Fehler"meldung "Parameterwert eingeben: Probe_AuftragID ..." .
Mit
Code:
     Me.Filter = "Me!ufRechnungdetails!Probe_AuftragID = " & Me!AuftragID
     Me!ufRechnungdetails.Form.Filter = Me.Filter
     Me!ufRechnungdetails.Form.FilterOn = True

bekomme ich ebenfalls die "Fehler"meldung "Parameterwert eingeben: Me!ufRechnungdetails!Probe_AuftragID ..." .
Mit
Code:
     Me.Filter = "Forms!Rechnung!ufRechnungdetails!Probe_AuftragID = " & Me!AuftragID
     Me!ufRechnungdetails.Form.Filter = Me.Filter
     Me!ufRechnungdetails.Form.FilterOn = True

gibt es keine Meldung, aber es werden keine Datensätze angezeigt (wobei sie kurz "aufblitzen")

Eine Beispieldatenbank zu senden, ist -glaube ich- etwas aufwändig, da ich MySQL als Backend verwende, mal schauen vielleicht bastle ich da noch was ....

Einstweilen auch mal ein "Danke" für Deine Bemühungen

_________________
Es gibt 10 Gruppen von Computernutzern: Die einen verstehen das binäre System, die anderen nicht.
jens05
Moderator


Verfasst am:
21. Mai 2007, 10:05
Rufname:
Wohnort: ~~~~~

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo,
bei deinem ersten Filter, Probe_AuftragID ist im Formular wo der Code liegt und im UF ufRechnungdetails in der Feldliste enthalten?

Bei AuftragID liegt dort ein numerisches Feld vor? (Tabelleneigenschaften)

_________________
mfg jens05 Wink
wdseifert
Acccess-VBA-Programmierer im Nebenberuf


Verfasst am:
21. Mai 2007, 10:51
Rufname: Didi
Wohnort: Korntal-Münchingen

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo Jens

Probe_AuftragID und AuftragID sind beide numerische Felder (MySQL int(10)) mit Werten wie 7010001.

Der Code liegt derzeit im Hauptformular ("Rechnung"), in dem AuftragID als Textfeld (Name: tfAuftragID) das "bestimmende" Element ist.

Probe_AuftragID liegt nur im Unterformular ("Rechnungdetails") als Textfeld (Name:tfProbeAuftragID) vor ...

_________________
Es gibt 10 Gruppen von Computernutzern: Die einen verstehen das binäre System, die anderen nicht.
jens05
Moderator


Verfasst am:
21. Mai 2007, 10:59
Rufname:
Wohnort: ~~~~~

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo,
was passiert, wenn du es so machst.
Code:
     'Me.Filter = "Probe_AuftragID = " & Me!AuftragID  >>> auskommentiert
     Me!ufRechnungdetails.Form.Filter = "Probe_AuftragID = " & Me!AuftragID
     Me!ufRechnungdetails.Form.FilterOn = True

_________________
mfg jens05 Wink
Nouba
nicht ganz unwissend :)


Verfasst am:
21. Mai 2007, 12:03
Rufname:
Wohnort: Berlin

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo,

das Beim Anzeigen Ereignis dürfte kein gut gewählter Platz zum Anbringen eines Filterausdrucks sein. Dieser würde ja nach Anwendung erneut das gleiche Ereignis auslösen. Setze einmal ein festes Kriterium in einer Abfrage (gleiche Datenbasis wie im Formular verwenden), prüfe sie und schalte danach in die SQL-Ansicht um. Der Ausdruck nach WHERE wird ein gültiger Filterausdruck sein. Die Zuweisung hinterlegst Du dann testweise in das Beim Klicken einer Schaltfläche. Wenn das funktioniert, sollte man daran gehen, das Kriterium durch einen Steuerelementinhalt (i. d. R. ein ungebundenes Textfeld/Kombifeld/Listenfeld dafür verwenden) ersetzen zu lassen.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
wdseifert
Acccess-VBA-Programmierer im Nebenberuf


Verfasst am:
21. Mai 2007, 12:15
Rufname: Didi
Wohnort: Korntal-Münchingen

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

@jens:

ich erhalte wie oben beschrieben die "Fehler"meldung "Parameterwert eingeben: Probe_AuftragID ..." .

@nouba:

Der Filter wird ja nur für das Unterformular angewendet; am Hauptformular ändert sich nix, so dass da eigentlich kein neues Ereignis stattfindet oder?

Edit - Nachtrag ...
PS: Das Filtern über den formularbasierten Filter funzt wie gewünscht!?! Question

_________________
Es gibt 10 Gruppen von Computernutzern: Die einen verstehen das binäre System, die anderen nicht.
jens05
Moderator


Verfasst am:
21. Mai 2007, 19:43
Rufname:
Wohnort: ~~~~~

AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

Hallo,
wenn das Parameter-PopUp erscheint, findet Access das entsprechende Feld nicht.
Ist Probe_AuftragID wirklich in der Feldliste des Ufos enthalten??

Was steht in der Formulareigenschaft "Filter" ,wenn du den formularbasierten Filter aktiviert hast?

_________________
mfg jens05 Wink
wdseifert
Acccess-VBA-Programmierer im Nebenberuf


Verfasst am:
22. Mai 2007, 08:50
Rufname: Didi
Wohnort: Korntal-Münchingen


AW: Filter für Unterformular - AW: Filter für Unterformular

Nach oben
       Version: Office 2003

hallo Jens,

Asche auf mein Haupt!! Oh ist das peinlich!!
Der Feldinhalt heißt Probe_AuftrID (entgegen meiner Programmierregeln!) und nicht Probe_AuftragID. Und ich habs nicht gesehen, weil das Feld entsprechend klein war - Oh Mann - ich bin urlaubsreif!

Sorry, dass ich Euch damit belästigt habe - das Thema hat sich erledigt ...

Nix für ungut - Grüße aus dem Ländle

_________________
Es gibt 10 Gruppen von Computernutzern: Die einen verstehen das binäre System, die anderen nicht.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Filter mit 2 bedingungnen 1 75_Cent 634 16. Aug 2007, 14:21
Willi Wipp Filter mit 2 bedingungnen
Keine neuen Beiträge Access Tabellen & Abfragen: Der Filter bleibt nicht an? 1 seppel27 422 15. Aug 2007, 19:40
blicki Der Filter bleibt nicht an?
Keine neuen Beiträge Access Tabellen & Abfragen: Befehlsschaltläche bezieht sich auf Unterformular! 12 seppel27 809 15. Aug 2007, 13:07
seppel27 Befehlsschaltläche bezieht sich auf Unterformular!
Keine neuen Beiträge Access Tabellen & Abfragen: Filter funktionert und dann wieder nicht?? 7 maibaum0_1 733 19. Apr 2007, 10:07
jens05 Filter funktionert und dann wieder nicht??
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage in Unterformular mit Kombifeld 0 Scratrat 625 29. März 2007, 17:17
Scratrat Abfrage in Unterformular mit Kombifeld
Keine neuen Beiträge Access Tabellen & Abfragen: Inhalt von Listenfeld als Filter verwenden 11 GregorJ 1125 20. März 2007, 18:17
GregorJ Inhalt von Listenfeld als Filter verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: Fehlermeldung bei Filter einbauen 3 DrChill 1835 26. Feb 2007, 20:32
jens05 Fehlermeldung bei Filter einbauen
Keine neuen Beiträge Access Tabellen & Abfragen: Wie Werte als Filter an eine Abfrage übergeben? 2 StefanTA650 922 25. Okt 2006, 20:12
StefanTA650 Wie Werte als Filter an eine Abfrage übergeben?
Keine neuen Beiträge Access Tabellen & Abfragen: Filter mit 2 Bedingungen 2 flyingeagle_83 1321 30. Aug 2006, 08:03
flyingeagle_83 Filter mit 2 Bedingungen
Keine neuen Beiträge Access Tabellen & Abfragen: Filter 4 Highlander 822 02. Aug 2006, 07:15
Highlander Filter
Keine neuen Beiträge Access Tabellen & Abfragen: Problem: Parameter-Abfrage aus einem Unterformular ausführen 3 bettina_vt 3427 12. Mai 2006, 15:44
bettina_vt Problem: Parameter-Abfrage aus einem Unterformular ausführen
Keine neuen Beiträge Access Tabellen & Abfragen: Änderung der Datenquelle für ein Unterformular 6 turbochris 4720 06. Mai 2006, 10:56
Willi Wipp Änderung der Datenquelle für ein Unterformular
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps