Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: Iso am Februar 25, 2011, 11:19:00

Titel: RecordSource eines Berichtes mit unterschiedlichen Parameterabfragen auswählen
Beitrag von: Iso am Februar 25, 2011, 11:19:00
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.



Titel: Re: RecordSource eines Berichtes mit unterschiedlichen Parameterabfragen auswählen
Beitrag von: Jonny am Februar 25, 2011, 12:35:44
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
Titel: Re: RecordSource eines Berichtes mit unterschiedlichen Parameterabfragen auswählen
Beitrag von: Iso am Februar 25, 2011, 13:35:26
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?!

Titel: Re: RecordSource eines Berichtes mit unterschiedlichen Parameterabfragen auswählen
Beitrag von: Jonny am Februar 25, 2011, 14:51:08
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
Titel: Re: RecordSource eines Berichtes mit unterschiedlichen Parameterabfragen auswählen
Beitrag von: Jonny am Februar 25, 2011, 16:07:00
Hallo,
ich war zu schnell.
Natürlich mußte du dich auf den Formularfilter beziehen.

Gruß

Johann
Titel: Re: RecordSource eines Berichtes mit unterschiedlichen Parameterabfragen auswählen
Beitrag von: Iso am Februar 25, 2011, 16:10:40
Hallo Johann,

das funktioniert ausgezeichnet!

Ich bin immer wieder beeindruckt ;)

Vielen Dank für die schnelle Hilfe!