Supportnet / Forum / Datenbanken
Abfragen und Unterberichte kürzen, durch dynamische Abfragen für Unterberichte
Frage
Guten Tag, ich habe ein Problem, bei dem ich mir die Haare ausrupfen könnte.
Folgende Situation:
Ich habe eine Personen Tabelle mit Pers_ID, Name, Team
Dazu kommen Tabellen, die alle den gleichen aufbau besitzen. Bsp.: Eine Tabelle für Ringewerfen, diese Tabelle beinhaltet pers_ID als Verbindung mit der Personentabelle, einer (Punktewertigkeit), zweier, Dreier ..., Zehner.
Problemstellung:
Ich habe ein Formular erstellt, welches einen Button hat, der, wenn er betätigt wird/soll eine Auswertung aller Gruppen in einem Bericht erfolgen.
Ich habe den Bericht vorgefertigt und unterformulare erstellt, in denen die einzellnen Disziplinen der Gruppen beinhaltet sind.
ich möchte aber nicht tausende von unterformularen bzw. Abfragen haben und wollte dynamisch beim Aufruf eine SQL-Abfrage nutzen und je nach Team nur die Abfrage in VB anpassen.
Leider funktioniert alles nicht so wie ich es möchte.
Wenn ich eine Abfrage erstelle, die mir die Summe der Punkte der einzelnen Disziplinen ausgibt und die in dem Bericht verwende ist alles wunderbar.
Ich möchte aber wie gesagt nicht für alles Abfragen erstellen, das sind mir dann zu viele. So und jetzt wollte ich die RecordSource-Eigenschaft meines unterberichtes mit einer SQL-Abfrage in VB befüllen und so die Felder füllen.
Mein VB-Code sieht wie folgt aus:
Private Sub Report_Open(Cancel As Integer)
Dim sqlStr As String
sqlStr = "SELECT Sum([t_Bogen].[Einer]) AS Einer, Sum([t_Bogen].[Zweier]) AS Zweier, Sum([t_Bogen].[Dreier]) AS Dreier, Sum([t_Bogen].[Vierer]) AS Vierer, Sum([t_Bogen].[Fuenfer]) AS Fuenfer, Sum([t_Bogen].[Sechser]) AS Sechser, Sum([t_Bogen].[Siebener]) AS Siebener, Sum([t_Bogen].[Achter]) AS Achter, Sum([t_Bogen].[Neuner]) AS Neuner, Sum([t_Bogen].[Zehner]) AS Zehner FROM t_Personen INNER JOIN t_Bogen ON [t_Personen].[Pers_ID]=[t_Bogen].[Pers_ID] WHERE (((t_Personen.Team)=1)) "
Me.RecordSource = sqlStr
PS: Wenn ihr mehr Informationen benötigt bitte bescheid geben, werde schnellst möglich antworten!!
Antwort 1 von Marie
Also das Team als Variable??
Wählst das Team in einem Kombifeld in Spalte 1 aus.
sqlStr = "SELECT .......................................WHERE (((t_Personen.Team)=" & me.MeinKombifeld.Column(0) & ")) "
Wählst das Team in einem Kombifeld in Spalte 1 aus.
sqlStr = "SELECT .......................................WHERE (((t_Personen.Team)=" & me.MeinKombifeld.Column(0) & ")) "