Office: (Office 2003) mehrere Abfragen verschachteln (SQL)?

Helfe beim Thema mehrere Abfragen verschachteln (SQL)? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hi, damit das mit dem Vernichten nach Abschluss richtig klappt, würde ich zudem empfehlen, die tempDB "durchzureichen" an alle Objekte, die sich auf... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Moerio, 11. Oktober 2009.

  1. mehrere Abfragen verschachteln (SQL)?


    Hi,
    damit das mit dem Vernichten nach Abschluss richtig klappt, würde ich zudem empfehlen, die tempDB "durchzureichen" an alle Objekte, die sich auf die gleiche DB beziehen sollen.

    Hintergrund:
    Sobald der Verweiszähler auf die tempDB-Instanz 0 erreicht hat, wird (irgendwann danach) die tempDB gekillt. Wenn dieser finale Zählerwert aber nur vorübergehend mal erreicht wird, z.B. weil gerade nichts da hingreift, man aber die Daten in Kürze wieder braucht, stirbt sie zu früh. Der nächste Zugriffsversuch geht dann ins Leere, und die Daten sind weg.

    Also: immer schön die tempDB am Leben erhalten, solang man sie noch braucht. Das geht am einfachsten durch das Durchreichen der tempDB an alle Objekte, die darauf basieren sollen: Formulare, Berichte etc.
     
    Atrus2711, 14. Oktober 2009
    #31
  2. Ich meine beides, und die Frage ist ganz ernst gemeint. Wie geht man vor, um so ein 14-stöckiges Ding noch zu beherrschen?
     
    achtelpetit, 14. Oktober 2009
    #32
  3. \@Atrus2711

    wie kann ich denn beim erstellen der Temporären Tabellen einen Felddatentyp auf Prozent einstellen.


    Gruß
    Moeiro
     
  4. mehrere Abfragen verschachteln (SQL)?

    \@ moeiro

    Es gibt keinen Felddatentyp Prozent. *wink.gif*

    Da musst Du auf den Typ Decimal zurück greifen und Prozentsätze in Dezimalschreibweise speichern.

    Also anstatt 10,54% dann 0,1054.

    Gruß

    Rainer
     
  5. Ok,Danke.
     
  6. \@Atrus2711
    Muss ich eigentlich alle Tabellen auf die ich mich in der folge Abfrage beziehen will in die Temporäre Datenbank kopieren?

    Beispiel:

    Ich erstelle eine neue Tabelle "Tab1" in der temporären Datenbank die das Ergebnis aus einer Abfrage ist.

    Nun kommt die nächste Abfrage die als Quelle eben "Tab1" (in der Temporären) Datenbank und "Tab2"(in der eigentlichen Datenbank) hat.

    Muss ich dann vorher auch Tab 2 in die temporäre Datenbank schieben?

    Puh, das ist vielleicht schwer in Worte zu fassen.*confused.gif*
     
  7. Entweder das (wär aber unschön), oder (besser): du qualifizierst deine Datenbankdateien in den IN-Klauseln (sprich: jede Tabelle nennt auch den Dateinamen, wo sie liegt).
     
    Atrus2711, 15. Oktober 2009
    #37
  8. mehrere Abfragen verschachteln (SQL)?

    Z.zt sieht es so aus:
    dbTemp.db.Execute "SELECT [CapPerPart%].PieceIDFK, tblBOMCGN.TransmissionIDFK, VolumeStuddys.VolumeStuddyIDPK, tblStuddyID.StuddyID, VolumeStuddyDetails.TransmissionVolume, [CapPerPart%].dblPartVolume, [TransmissionVolume]/[dblPartVolume] AS VolumePercentage, tblPartTranslation.txtPartTranslation INTO TransmissionCapI" & _
    " FROM tblStuddyID, [CapPerPart%] INNER JOIN (VolumeStuddys INNER JOIN (tblPartTranslation INNER JOIN (tblPiecesCGN INNER JOIN (VolumeStuddyDetails INNER JOIN tblBOMCGN ON VolumeStuddyDetails.TransmissionsIDFK = tblBOMCGN.TransmissionIDFK) ON tblPiecesCGN.PieceIDPK = tblBOMCGN.PieceIDFK) ON tblPartTranslation.txtBasePK = tblPiecesCGN.PART_BASE) ON VolumeStuddys.VolumeStuddyIDPK = VolumeStuddyDetails.VolumeStuddyFK) ON [CapPerPart%].PieceIDFK = tblBOMCGN.PieceIDFK" & _
    " GROUP BY [CapPerPart%].PieceIDFK, tblBOMCGN.TransmissionIDFK, VolumeStuddys.VolumeStuddyIDPK, tblStuddyID.StuddyID, VolumeStuddyDetails.TransmissionVolume, [CapPerPart%].dblPartVolume, [TransmissionVolume]/[dblPartVolume], tblPartTranslation.txtPartTranslation" & _
    " HAVING (((VolumeStuddys.VolumeStuddyIDPK) Like [StuddyID]));"

    Wobei ich die Tabelle "tblStuddyID" in die temporäre Datenbank kopiere.

    Wo muß denn die In-Klausel hin damit es funktioniert.
    *rolleyes.gif*
    FROM In [" & CurrentProject.Fullname & "].tblStuddyID

    Gruß
    Moeiro
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  9. Qualifizierte Tabellennamen sehen so aus:
    Code:
    also der volle Dateiname in eckigen Klammern vor dem Tabellennamen, und Punkt dazwischen. Der tritt an die Stelle des bisherigen "nur-Tabelennamens".

    PS: bei so langen Tabellennamen (die jetzt durch die Dateinamen drinne noch länger werden) empfiehlt sich auch der Einsatz von Aliasen.

    SELECT * FROM SuperlangbenamstesTabellenvieh AS T
     
    Atrus2711, 16. Oktober 2009
    #39
  10. also der volle Dateiname in eckigen Klammern vor dem Tabellennamen, und Punkt dazwischen. Der tritt an die Stelle des bisherigen "nur-Tabelennamens".

    PS: bei so langen Tabellennamen (die jetzt durch die Dateinamen drinne noch länger werden) empfiehlt sich auch der Einsatz von Aliasen.

    SELECT * FROM SuperlangbenamstesTabellenvieh AS T

    Kann ich den Datenbankpfad auch als Variable deklarieren und anschließend im SQl String benutzen

    Dim dbpfad as String
    dbpfad = CurrentDb.Name

    und dann
    [dbpfad].tblKunden ?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  11. Du kannst den String durchaus zusammenmontieren. Dabei musst du aber VBA-gemäß verketten.
    • Innerhalb von Anführungstexten steht SQL-Text, den du genau so ("literal") meinst.
    • Außerhalb von Anführungszeichen steht VBA-Code, der bei Auswertung neue SQL-Teile ergibt.

    Diese Luftcode soll das verdeutlichen: Rot ist "innen" und damit SQL, Schwarz ist "außen" und damit VBA. Ausgeführt wird letztlich das ganze; es montiert sich zusammen aus Fest und Variable.

    Code:
     
    Atrus2711, 16. Oktober 2009
    #41
  12. Ich glaube jetzt wird es langsam zu kompliziert für mich*boah *entsetzt *sos
     
  13. mehrere Abfragen verschachteln (SQL)?

    Ich habs jetzt mal so geändert

    dbTemp.db.Execute "SELECT [CapPerPart%].PieceIDFK, tblBOMCGN.TransmissionIDFK, VolumeStuddys.VolumeStuddyIDPK, [" & dbpfad & "].tblStuddyID.StuddyID, VolumeStuddyDetails.TransmissionVolume, [CapPerPart%].dblPartVolume, [TransmissionVolume]/[dblPartVolume] AS VolumePercentage, tblPartTranslation.txtPartTranslation INTO TransmissionCapI" & _
    " FROM [" & dbpfad & "].tblStuddyID, [CapPerPart%] INNER JOIN (VolumeStuddys INNER JOIN (tblPartTranslation INNER JOIN (tblPiecesCGN INNER JOIN (VolumeStuddyDetails INNER JOIN tblBOMCGN ON VolumeStuddyDetails.TransmissionsIDFK = tblBOMCGN.TransmissionIDFK) ON tblPiecesCGN.PieceIDPK = tblBOMCGN.PieceIDFK) ON tblPartTranslation.txtBasePK = tblPiecesCGN.PART_BASE) ON VolumeStuddys.VolumeStuddyIDPK = VolumeStuddyDetails.VolumeStuddyFK) ON [CapPerPart%].PieceIDFK = tblBOMCGN.PieceIDFK" & _
    " GROUP BY [CapPerPart%].PieceIDFK, tblBOMCGN.TransmissionIDFK, VolumeStuddys.VolumeStuddyIDPK, [" & dbpfad & "].tblStuddyID.StuddyID, VolumeStuddyDetails.TransmissionVolume, [CapPerPart%].dblPartVolume, [TransmissionVolume]/[dblPartVolume], tblPartTranslation.txtPartTranslation" & _
    " HAVING (((VolumeStuddys.VolumeStuddyIDPK) Like [StuddyID]));"


    Jetzt bekomme ich Laufzeitfehler "3125" .Das Datenbankmodul kann " nicht finden.
     
  14. Nur Mut. Wer 14 verschachtelte ABfragen denken kann, wird sich doch nicht von 4 Anführungszeichen verunsichern lassen.

    Nicke zu den folgenden Sätzen, oder melde dich, wenn du da nicht mitkommst:
    • Du führst doch insgesamt eine SQL-Anweisung aus.
    • Diese Anweisung soll zwei Datenbanken betreffen: die echte und die TempDB. Die Namen der DBs hast du ja irgendwo greifbar, sagen wir: in zwei Stringvariablen.
    • Die SQL muss überall dort, wo bisher "normale" Tabellennamen verwendet werden, qualifizierte Tabellenamen verwenden, d.h. Tabellennamen mit Dateiname vornedran, z.B. [c:\xyz\db.mdb].tblDaten, damit ihr klar ist, wo die Tabellen jeweils liegen.
    • Die auszuführende SQL kommt aber nicht an die Variablen heran. Das sind zwei getrennte Welten, SQL und VBA. Variablen "gibts in SQL nicht". Also muss man die SQL "zusammenlöten" aus den festen Teilen (originäre SQL) und den Texten, die aus den VBA-Variablen kommen. Das nennt sich verketten, weil die Teile aneinandergefügt werden wie Kettenglieder. Die Kette ist mein rot-schwarzes Bandwurm aus dem vorigen Posting. Die ganze Kette ergibt eine vollständige SQL, aber sie ist eben aus roten (SQL) und schwazen (VBA)-Teilen zusammengefügt.


    Besser?! *Smilie
     
    Atrus2711, 16. Oktober 2009
    #44
  15. Ist denn dbTemp gefüllt, und existiert die darin genannte DB?

    Zudem müssten alle Tabellen, die du nicht mit dem Dateinamen versiehst, in dbTemp liegen, denn in dbtemp wird das gaze ja ausgeführt.

    Lass dir notfalls mal alles hinterm .Execute im Direktfenster ausgeben, damit du die letzlich entstehende Textkette mal siehst.
     
    Atrus2711, 16. Oktober 2009
    #45
Thema:

mehrere Abfragen verschachteln (SQL)?

Die Seite wird geladen...
  1. mehrere Abfragen verschachteln (SQL)? - Similar Threads - Abfragen verschachteln SQL

  2. Abfrage: Anzahl von Kriterium >0

    in Microsoft Access Hilfe
    Abfrage: Anzahl von Kriterium >0: Hallo, [ATTACH] Ich versuche gerade, die Anzahl der belegten Plätze auf einem LKW per Abfrage zu ermitteln. Dabei wäre dann FSPal > 0. Leider zeigt er mir die Anzahl der Plätze an. [ATTACH]...
  3. Teil des Zellinhaltes abfragen in VBA

    in Microsoft Excel Hilfe
    Teil des Zellinhaltes abfragen in VBA: Guten Tag, ich möchte in Zelle E1 den linken 4-stelligen Teil in Zelle A3 abfragen. Habs versucht mit IF (LEFT(R[2]C[-3],4) = "8396") then ... Else ... End If Wer kann...
  4. Verliert irgendwann die Selektive Abfrage von UFO

    in Microsoft Access Hilfe
    Verliert irgendwann die Selektive Abfrage von UFO: Guten Tag Ich habe ein HF mit darin befindlichem UF. Die Abfrage der Teilnehmer im Uf bezieht sich immer auf den Kurs-Typ im HF Solang ich das Formular neu erstelle, funktioniert das...
  5. automatische Abfrage URL via Artikelnummer

    in Microsoft Access Hilfe
    automatische Abfrage URL via Artikelnummer: Guten Tag Bei der Aktualisierung der Homepage und aufgrund eines Plugin-Wechsels des Üebersetzungstools hat wordpress alle Permalinks der Produkte verändert. Unserem Webmaster war nicht bekannt,...
  6. Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern

    in Microsoft Access Hilfe
    Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern: Hallo Community, ich habe folgendes Problem beim Nutzen einer Access-Datenbank. Zunächst die Datenstruktur: [ATTACH] Dies sind die Tabellen meiner Datenbank. In der Tabelle "Adressliste"...
  7. mit String aus Formular Übereinstimmung in Abfrage prüfen

    in Microsoft Access Hilfe
    mit String aus Formular Übereinstimmung in Abfrage prüfen: Hallo liebe Mitglieder Ich verzweifle wieder einmal fast und wende mich an Euch. Ich möchte gern aus einem Formular heraus (Click) prüfen, ob übereinstimmende Datensätze in einer Abfrage vorhanden...
  8. "And" und "Or" in If-Abfrage verschachteln

    in Microsoft Excel Hilfe
    "And" und "Or" in If-Abfrage verschachteln: Hallo liebe Community, leider komme ich mit der Suchfunktion nicht so wirklich weiter. Ich möchte eine If-Abfrage starten. Bisher musste immer nur ein Feld überprüft werden, wenn die Bedingung...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden