Neuigkeiten:

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

Mobiles Hauptmenü

RecordSource eines Berichtes mit unterschiedlichen Parameterabfragen auswählen

Begonnen von Iso, Februar 25, 2011, 11:19:00

⏪ vorheriges - nächstes ⏩

Iso

Hallo zusammen,

ich habe ein Formular (HF, UF) erstellt, in welchem per Buttons Filter gesetzt werden können, die dann im UF als Datenblatt angezeigt werden.
Es sind zwei unterschiedliche: Einmal Monat, einmal Jahreszeit.

Jeweils dazu habe zwei Parameterabfragen erstellt, die beide Male das Jahr (aus dem HF) und entweder Monat oder Jahreszeit aus dem UF "automatisch auswählt" (Kriterium in der Abfrage auf das jeweilige Formularfeld; es muss also nichts eingetippt werden). Das funktioniert wunderbar.

Nun möchte ich über den Button "Bericht drucken" erreichen, dass der Bericht - je nach .Filter des Formulars - auch die entsprechende Abfrage als Grundlage auswählt.

Alle Felder kommen überall vor und die Abfrage funktionieren auch, wenn man sie so aufruft. Klar ist, dass man die .Filter-Eigenschaft des Formulars (HF) nach einem entsprechenden Schlüsselwort (in meinem Fall "Saison" oder "Mois") abfragen muss, um je nach Ergebnis die entsprechende RecordSource für den Bericht festzulegen. Also: Wenn in .Filter "Mois" steht, dann wähle als RecordSource des Berichts die Abfrage "sqlMois" und wenn dort "Saison" steht, dann die Abfrage "sqlSaison".

Ich weiss nun aber nicht:

a) wie man auf einfachem Weg, die RecordSource des Berichts ändern kann, indem man einfach den entsprechenden Abfragenamen verändert?!

und

b) an welcher Stelle das geschehen muss (im Button, oder im Ereignis BeimÖffnen des Berichts)?

Es geht um Acc2003 und ich wäre für jeden Hinweis dankbar.




Jonny

Hallo,
Du kannst beim öffnen des Berichts den Recourdsource einstellen.

if Forms!Formname!Feldname = "Mois" then
   me.recordsource = "Abfrage1"
else
   me.recordsource = "Abfrage2"
end if

Gruß

Johann

Iso

Hallo Johann,

vielen Dank für Deine Antwort!

Ein Teilerfolg ist erzielt! Allerdings müsste die Bedingung eine andere werden, denn ich muss ja nicht einen Feldinhalt auf den String "Mois" hin untersuchen, sondern die Filtereigenschaft (.Filter) des UFs auf den String "Mois" oder "Saison" und je nach Ergebnis die entsprechende Abfrage auswählen.

Im Filter des UF steht (je nach getroffener Auswahl) bspw.: Mois='mai 5' oder Saison = 'Printemps'

Das möchte ich auswerten, wobei der jeweilige Teilstring ("Mois=" oder "Saison=") dann das Kriterium für die Wahl der RecordSource bilden soll.

Vielleicht habe ich mich im ersten Post missverständlich ausgedrückt...

Gibt es dafür auch einen Tipp?!


Jonny

Hallo,

versuch es mal mit:
Dim ZwFilter as string
ZwFilter = me.filter
if left(ZwFilter,4) = "Mois" then
   me.recordsource = "Abfrage1"
else
   me.recordsource = "Abfrage2"
end if

Jonny

Hallo,
ich war zu schnell.
Natürlich mußte du dich auf den Formularfilter beziehen.

Gruß

Johann

Iso

Hallo Johann,

das funktioniert ausgezeichnet!

Ich bin immer wieder beeindruckt ;)

Vielen Dank für die schnelle Hilfe!