luna01
Goto Top

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:
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.

Content-ID: 364476

Url: https://administrator.de/contentid/364476

Ausgedruckt am: 24.11.2024 um 23:11 Uhr

Volchy
Volchy 12.02.2018 aktualisiert um 12:49:18 Uhr
Goto Top
Moin moin,

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
Luna01
Luna01 04.04.2018 um 14:01:01 Uhr
Goto Top
Hallo Volchy,
ich möchte mich erst mal vielmals entschuldigen, dass ich nicht gleich geantwortet habe.
Ich war krank und hab dann total vergessen mich nochmals zu melden.
Bitte nochmal um Entschuldigung.
Zu deinem Lösungsvorschlag, das ist glaube das geht genau in die Richtung, ich bin allerdings durch meine zwischenzeitliche Krankheit nicht mehr dazu gekommen mich genauer damit zu beschäftigen.
Hoffe das ich dies bald nachholen kann.
Grüße Luna01