Abfrage: Zusammenfassung

Hallo Zusammen,

ich glaube ich brauche einen kleinen Denkanstoß. Ich möchte eine Abfrage „basteln“, die mir eine Zusammenfassung ausgibt. Dies sind meine (vereinfachten) Tabellen:

tblBuchung
idPBuchung
idSKategorie
datDatum
dblZugang
dblAbgang

tblKategorie
idPKategorie
idSKategorieM
idSKategorieT

tblKategorieM
idPKategorieM
strBezeichnung

Nun möchte ich eine Abfrage, die mir die Summe von dblZugang und dblZugang, zusammengefasst nach idPKategorieM und gefiltert nach datDatum erstellt.

Wenn ich das ganze aus mehreren Abfragen erstelle, bekomme ich das gewünschte Ergebnis.

Dann habe ich nur das Problem, dass ich bei einem späteren Bericht nicht mehr auf das Feld datDatum zugreifen kann (dieses soll als Filter über eine frm gesetzt werden). Sobald ich das Feld datDatum einfüge, dann fasst die Abfrage datDatum und idPKategorieM zusammen.

Ich denke mir reicht ein kleiner Denkanstoss… (hoffe ich)

Ich wünsche euch allen schon jetzt ein schönes Wochenende.

Schöne Grüße aus Württemberg,

Oliver.

Hallo,

Du darst Das Feld „datDatum“ auch nicht in einer Select -Liste aufführen, sondern nur als Where- oder Having-Condition („Bedingung“ auswählen im Abfrageentwurf) benutzen.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

Danke für deine schnelle Antwort. Komme leider erst jetzt dazu, meine DB weiter zugestalten.

Du darst Das Feld „datDatum“ auch nicht in einer Select -Liste
aufführen, sondern nur als Where- oder Having-Condition
(„Bedingung“ auswählen im Abfrageentwurf) benutzen.

Das habe ich gemerkt. Wenn ich das Feld datDatum als WHERE-Condition definiere, dann wird mir alles zusammengefasst angezeigt.

Nun kommt aber das nächste Problem. Wie kann ich nun einen Report über ein Formular öffnen und den Wert für das Datum als Condition setzen?

Dim strCond as String
strCond = „CBLN(datDatum)>=“ CBLN(me.txtDatum)
DoCmd.OpenReport „rptZusammenfassung“,strCond

Hier bekomme ich nun eine Inputbox in der ich einen Wert für datDatum angeben muss.

Hast du mir hierfür auch noch einen Denkanstoß? :smile:

Schöne Grüße aus Württemberg,

Oliver.

Hallo,

ich befürchte, dass in dieser Konstellation diejenige Abfrage, die auf die TAbelle mit „datDatum“ zugreift, mittels VBA einen neuen SQL-String erhalten muß, der eben das Kriterium für das Datum enthält.

etwa so:
Dim strSQl as String

strSQl=„Select * from Tabelle1 where datdatum = " & Format(nz(Me!txtDatum,Date),#yyyy-mm-dd#“) 'nix mit Boolean-Konvertierung.

Currentdb.Querydefs(„abf_Abfrage1“).SQL = strSQL

DoCmd.OpenReport „rptZusammenfassung“,acpreview

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Guten Morgen,

ich befürchte, dass in dieser Konstellation diejenige Abfrage,
die auf die TAbelle mit „datDatum“ zugreift, mittels VBA
einen neuen SQL-String erhalten muß, der eben das Kriterium
für das Datum enthält.

Diese Befürchtung hatte ich auch schon, dass ich eben den SQL-str jedesmal neu basteln muss. Es werden nämlich noch mehr Kriterien zur Auswahl stehen; datDatum war nur eines davon.

Dann muss ich das so machen - vielen Dank für deinen Denkanstoß.

Schöne Grüße aus Württemberg,

Oliver.