Accsess SQL Abfrage als Variable in einer anderen Abfrage übergeben
Guten Morgen,
zu meinem Problem: ich habe mehrere (Haupt-) Abfragen, die ich über ein Kombinationsfeld KombiHauptabfrage aufrufe.
qyrHaupt1, qyrHaupt2, qyrHaupt3…
die würde ich gerne mit weiteren Unter-Abfragen im 2. Kombinationsfeld KombiUnterabfrage kombinieren.
Bisher habe ich das so gemacht, das ich die Hauptabfrage in die Unterabfrage im Abfrage Editor rein gezogen und falls noch nicht verbunden die Tabellen der Unterabfrage mit der Referenz verbunden habe.
Beispiel:
Allerdings müsste ich dann für jede Kombination einer Haupt- und Unterabfrage eine neue Abfrage erstellen. Das wollte ich vermeiden.
Jetzt habe ich mir folgendes gedacht, dass ich die Hauptabfragen jeweils in eine Variable speichere
Dim A As String
Dim B As String….
A = qyrHaupt1
B = qyrHaupt2
Und wenn der Eintrag im KombiHauptabfrage z.B. Alle Teilnehmer ist ich diese Variable dann in z.B. folgender Zeile Aufrufe bzw. übergebe.
Leider habe ich im Moment keine Ahnung wie ich das machen könnte oder ob das überhaupt funktionieren würde.
Vielen Dank für Hilfe und Hinweise.
zu meinem Problem: ich habe mehrere (Haupt-) Abfragen, die ich über ein Kombinationsfeld KombiHauptabfrage aufrufe.
qyrHaupt1, qyrHaupt2, qyrHaupt3…
die würde ich gerne mit weiteren Unter-Abfragen im 2. Kombinationsfeld KombiUnterabfrage kombinieren.
Bisher habe ich das so gemacht, das ich die Hauptabfrage in die Unterabfrage im Abfrage Editor rein gezogen und falls noch nicht verbunden die Tabellen der Unterabfrage mit der Referenz verbunden habe.
Beispiel:
SELECT Count(tblTeilnehmer.TeilnehmerID) AS AnzahlvonTeilnehmerID, IIf([TNGeschl]="1","männlich",IIf([TNGeschl]="2","weiblich")) AS Ausdr1, Int((Count([TNGeschl])/DCount("*","**qyrHaupt1**")*100)*100+0.5)/100 AS pGeschl
Allerdings müsste ich dann für jede Kombination einer Haupt- und Unterabfrage eine neue Abfrage erstellen. Das wollte ich vermeiden.
Jetzt habe ich mir folgendes gedacht, dass ich die Hauptabfragen jeweils in eine Variable speichere
Dim A As String
Dim B As String….
A = qyrHaupt1
B = qyrHaupt2
Und wenn der Eintrag im KombiHauptabfrage z.B. Alle Teilnehmer ist ich diese Variable dann in z.B. folgender Zeile Aufrufe bzw. übergebe.
Int((Count([TNGeschl])/DCount("*","**A**")*100)*100+0.5)/100 AS pGeschl
Leider habe ich im Moment keine Ahnung wie ich das machen könnte oder ob das überhaupt funktionieren würde.
Vielen Dank für Hilfe und Hinweise.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 364476
Url: https://administrator.de/contentid/364476
Ausgedruckt am: 24.11.2024 um 23:11 Uhr
2 Kommentare
Neuester Kommentar
Moin moin,
du kannst mal schauen wie es ist, wenn du dir eine DB Verbindung aufbaust:
Hab ich jetzt noch nicht getestet, nur mal als erster Gedankengang evtl.
Lauf mal im Debug durch, ob es ein Ansatz ist, der dich ggf. weiter bringt.
lG
du kannst mal schauen wie es ist, wenn du dir eine DB Verbindung aufbaust:
Dim DB As DAO.Database
Set DB = CurrentDb
Dim A As Integer
Dim B As String
A = (DB.QueryDefs("qry1").Fields.Count)
C = DB.QueryDefs("qry2").Fields.Count
B = Replace(DB.QueryDefs("qry2").SQL, "qry1.anzahl", "" & C)
- qry.1anzahl soll dabei den Platzhalter in deiner eigentlichen SQL-Abfrage symbolisieren (bei dir die Stelle, an der du die Multiplikation einfügen möchtest)
Hab ich jetzt noch nicht getestet, nur mal als erster Gedankengang evtl.
Lauf mal im Debug durch, ob es ein Ansatz ist, der dich ggf. weiter bringt.
lG