Supportnet Computer
Planet of Tech

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) & ")) "