Bericht mit SQL als Datenherkunft öffnen, Kriterien aus Formular

30/10/2007 - 20:12 von Jörg Meier | Report spam
Hallo NG,

Access 2003.

Ich habe eine Tabelle mit 20 Spalten.

Zusàtzlich habe ich ein ungebundenes Formular mit 6 Listenfeldern und zwei
Textfeldern erstellt. Die Datensatzherkunft der ungebundenen Listenfelder
stammt aus einer SQL-Abfrage (VBA), welche die vorhandenen Eintràge in den
entsprechenden Spalten sucht und gruppiert. Ausgewàhlt werden können damit
nur Werte, die in den jeweiligen Spalten vorhanden sind. Die Listenfelder
lassen die erweiterte Mehrfachauswahl zu. Anhand der Listenfelder und der
Textfelder (Datumswerte) sollen Kriterien für den spàteren Bericht
zusammengestellt werden.

Der Bericht hat Felder für 15 der 20 Spalten, u.a. für Felder, deren Inhalte
Kriterien sind, die in dem Formular gewàhlt werden. Die Treffer der Suche
werden dann ganz normal im Bericht dargestellt.

So, ich hoffe, das Szenario / die Hintergründe sind ausreichend dargestellt.
Nun zu meinem Problem, zu den Fragen:

Wie schaffe ich es, die gewàhlten Werte in eine SQL-Abfrage aufzunehmen, die
dann als Datenherkunft des Berichts angewendet wird?

Ich denke, folgende Vorgehensweise werde ich wohl benötigen, oder?

1. SQL aus den Formularwerten zusammenstellen, wobei die verschiedenen
Listenfelder im Formular UND verknüpft werden sollen, mehrere Werte eines
Listenfeldes mit ODER.

2. Bericht mit SQL als Datenherkunft öffnen.

Kann mir jemand sagen,

a) ob die Strategie so richtig ist und
b) wie ich die Probleme / Schritte lösen kann?

Gibt es Beispiele?

Herzlichen Dank

Gruß Jörg
 

Lesen sie die antworten

#1 Björn Stüber
31/10/2007 - 00:19 | Warnen spam
Moin Jörg,


Jörg Meier schrieb:
Die Listenfelder
lassen die erweiterte Mehrfachauswahl zu. Anhand der Listenfelder und der
Textfelder (Datumswerte) sollen Kriterien für den spàteren Bericht
zusammengestellt werden.
Wie schaffe ich es, die gewàhlten Werte in eine SQL-Abfrage aufzunehmen, die
dann als Datenherkunft des Berichts angewendet wird?


Mal davon ausgehend, das die Feldnamen im Bericht immer die gleichen
sind würde ich das Ganze über je eine Stringvariable je Listenfeld sowie
entweder einer Globalen SQL(String) Variable oder über die
OpenArgs(finde ich besser) beim Aufruf des Berichtes angehen.

Ich würde alle Felder mit Standardwerten hinterlegen und bei den
Listenfeldern 'nach aktualisieren' die Variablen entsprechend füllen.
z.B. 'strList1 = " AND (BLand = 'Bayern' OR BLand = 'HH'...)"
Problematisch ist dabei nur die Mehrfachauswahl (Ich hasse sie
;)...müßte aber bei DonKarl zu finden sein.

Dann beim Klick-Ereignis einfach Dein SQL-String zusammenbauen:
z.B. strSQL = "SELECT ... FROM ... WHERE Feld1=Textfeld1 AND
Feld2=Textfeld2" & strList1...

Ich muss zugeben, das ich gerade die korrekte Formatierung für Deine
Datumswerte nicht im Kopf habe... das würde ich aber sonnst noch
nachreichen.

Beim Öffnen des Berichtes kannst Du dann den eben erstellten String per
OpenArgs an den Report übergeben und über Recordsource als Grundlage für
Deinen Bericht nehmen.

Gruß

Björn

Ähnliche fragen