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; Hallo, ich habe mehrere Access Abfragen die auf einander aufbauen. Abfrage 0: qry0_ValidMCs: SELECT tblMachines.ID_MachinePK,... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Moerio, 11. Oktober 2009.

  1. mehrere Abfragen verschachteln (SQL)?


    Hallo,

    ich habe mehrere Access Abfragen die auf einander aufbauen.


    Abfrage 0: qry0_ValidMCs:

    SELECT tblMachines.ID_MachinePK, tblMachines.datMC_Implement, tblMachines.datMC_Dissmantle, tblCapCallDate.datCapCallDate, IIf([datCapCallDate]>[datMC_Implement] And [datCapCallDate]

    :)
     
  2. Wenn du eine Abfrage als Datenbasis einer anderen Abfrage verwendest, wird trotzdem nur eine Abfrage ausgeführt.

    Im Prinzip kannst du dir das so vorstellen:
    abfrage1:
    Code:
    abfrage2:
    Code:
    => Jet führt dann so etwas aus:
    Code:
    Anm.: Wenn man es im Jet-Showplan betrachet, wird im Ausführungsplan vermutlich sogar der Abfrage-Ausdruck in Klammer wegkommen, und so etwas ausgeführt werden:
    Code:
    Die genaue Ausführung ist jetzt aber gar nicht so wichtig. Es soll nur zeigen, dass der Jet-Abfrageoptimierer SQL-Anweisungen, die andere Abfragen als Datenquelle verwenden, die Abfragen nicht wie Tabellen verwendet, sondern nur deren SQL-Anweisung interpretiert.

    Den Fehler "Mehr Datenbanken können nicht geöffnet werden" würde ich eher wegen der Verwendung von DLookup & Co vermuten.
     
    Josef P., 12. Oktober 2009
    #2
  3. Hallo Josef,

    schon mal vielen Dank für ausführliche Erläuterung.
    Der Fehler kommt schon wenn ich die reine Abfrage starte als nicht aus einem Formular heraus oder so.
    Das Problem tritt auch nur auf wenn ich meine Datenbank in Front & Backend aufteile.
    Solange ich alles in einer *.mdb lasse läuft alles.

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

    Wenn du Abfrage14 als Datenquelle für ein Formular verwendest, kommt der Fehler nicht? Das überrascht mich jetzt etwas.

    ABer zur Sicherheit noch einmal nachgefragt: verwendet du DLookup, DSum oder ähnliche Funktionen in deinen Abfragen?

    Übrigens:
    Zur Fehlermeldung "Mehr Datenbanken können nicht geöffnet werden" solltest du auch mit Google & Co. einiges finden. Dafür gibt es nämlich mehrere Ursachen.
     
    Josef P., 12. Oktober 2009
    #4
  5. Abfragen die auf mehreren Tabellen basieren funtkionieren ja nur wenn entsprechende Beziehungen angelegt wurden.

    Wenn Du aufteilst in BE und FE stehen die Beziehungen im BE aber die Abfrage im FE ... und im FE gibt es keine Beziehungen mehr, sondern nur verknüpfte Tabellen. So zumindest ist es bei Acc2007.

    Kannst Du prüfen wenn Du im FE die Beziehungsansicht aufrufst. Ist die Beziehungsansicht im FE leer, dann geht auch keine Abfrage mehr.

    Ich habe es so gelöst, dass ich im FE die für die Abfrage benötigten Beziehungen einfach neu angelegt habe.

    Gruß

    Rainer
     
    raist10, 12. Oktober 2009
    #5
  6. Das stimmt nicht.

    Ein Datenmodell ist zwar quasi Gesetz, aber Access verlangt es nicht. Du kannst beliebig viele Tabellen in einer MDB haben, die keinerlei Linien im Beziehungsmodell haben.

    So eine Datenbank ist kaum brauchbar. Aber sie ist möglich. *Smilie

    Ähnlich lasch ist Access auch bei Primärschlüsseln ("Geht auch ohne").

    Selbst in den ABfragen sind Verknüpfungslinien nicht zwingend erforderlich; dann entstehen halt Kreuzprodukte.

    Alles möglich, meistens aber unsinnig....
     
    Atrus2711, 12. Oktober 2009
    #6
  7. Warum? Beziehungen haben mit Abfragen nicht viel zu tun. Die sorgen nur für ein stabiles Datenmodell.

    Zum Beziehungsfenster: im FE kann man zw. verknüpften Tabellen gar keine Beziehungen mehr erstellen, sondern nur noch diese Linien zeichnen, die als Standard-Verknüpfung für den Abfrageeditor verwendet werden.
    Allerdings sollten die Beziehungen aus einem Jet-Backend durchaus auch im Frontend angezeigt werden.
     
    Josef P., 12. Oktober 2009
    #7
  8. mehrere Abfragen verschachteln (SQL)?

    Dachte ich auch, aber in Acc2007 ohne Beziehung/Standard-Verknüpfung kann man keine Abfrage (ich beziehe mich auf Auswahlabfragen) erstellen oder ausführen. Kommt die Fehlermeldung im Sinne "eine oder mehrere Tabellen stehen nicht miteinander in Beziehung".

    Leider nein, zumindest nicht Acc2007. Und die Backends sind definitiv *.accdb oder *.mdb Datei, bevor die Frage aufkommt. ^^

    Sorry, das meinte ich ja auch.

    Okay, dann scheint das mal wieder eine besondere Thematik von Acc2007 zu sein:

    Es wird keine einzige Beziehung aus dem BE im FE angezeigt (Beziehungsfenster) und auch bei Auswahlabfragen werden die Beziehungen im BE nicht berücksichtigt, sondern Access mault sofort los das die Tabellen nicht miteinander in Beziehung stehen (obwohl im BE jedes einzelne Beziehung korrekt angezeigt wird). Es funktioniert erst wenn man die Beziehungen die im BE sind im FE per Hand neu anlegt/erstellt.

    Okay, dachte das wäre grundsätzlich so in Access. Aber dann wohl nur unter Acc2007, vergesst also meinen obigen Beitrag. ^^

    Gruß

    Rainer
     
    raist10, 13. Oktober 2009
    #8
  9. Komisch. Ich probierte das nun unter Ac07 aus und die Beziehungen aus dem Ac07-BE werden auch im Beziehungsfenster des Ac07-FE angezeigt.
    Für eine Abfrage ist das aber trotzdem nicht relevant, da der Join-Ausdruck nichts mit den Beziehungen zu tun hat. Diese voreingestellten Join-Ausdrücke erstellt Access zwar auf Basis dieser "Linien", das kann man (zum Glück) aber abstellen und manuell setzen.
     
    Josef P., 13. Oktober 2009
    #9
  10. Wenn ich Abfrage 14 als Datenquelle für einen Bericht verwende,kommt der Fehler auch.
    Eben genauso als ob ich die Abfrage direkt im Abfragefenster doppelklicke.
    Nein,die von Dir genannten Funktionen habe ich in meinen Abfragen nicht gefunden.
    Nur die ein odere andere Summenbildung

    Ja,die ganzen Seiten(oder eine Menge davon)habe ich mir schon durch gelesen.
    Aber meistens läuft es auf die Verwendung von CurrentDB raus und das man das ändern sollte.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  11. Möglicherweise wird je Zugriff auf eine verknüpfte Tabelle eine eigene Verbindung genutzt. Würde mich zwar etwas wundern, vorstellen könnte ich es mir aber trotzdem. *Smilie
    Ich muss allerdings gestehen, dass ich mit kaum noch eine Erfahrung mit Access/Jet-Backends habe und daher auch noch nicht die Erfahrung machte, was was passiert, wenn man in einer Abfrage mehr als 255x auf verknüpfte Tabellen zugreift.

    Wie viele Tabellenzugriff (nicht Abfragenzugriffe) sind bei dir im Spiel?

    Die Abfragen bestehen also aus reinen SQL-Anweisungen ohne irgendwelche Funktionen, die wiederum Daten abfragen?
     
    Josef P., 13. Oktober 2009
    #11
  12. Wie Josef schon andeutete:
    Ergo: Wenn die DB nicht nur aus (den gezeigten) Abfragen besteht, kann die Ursache des Überlaufs des TableID-Pools schon deutlich eher vorhanden sein.
    Es könnte auch schon eine Lösung sein, einfachere Formulare zu verwenden und diese auch zu schließen, wenn andere "tabellenintensive" Vorgänge ablaufen sollen.
     
  13. mehrere Abfragen verschachteln (SQL)?

    Ah okay ... und wo?

    Das ist wirklich komisch? Wie hast Du aufgeteilt? Über die Teilungsfunktion in Access selber? Ich habe mir die Tabellen alle in Handarbeit über die Verknüpfung rein geholt ins FE und da wird keine einzige Beziehung angezeigt. Möglicherweise liegt da der Unterschied.

    Gruß

    Rainer
     
  14. Nur damit kein Missverständnis entsteht: .. das darauf folgende Zitat ist nicht von mir.
    @Eberhard: wer hat diesen (imo das Problem gut beschreibenden) Text verfasst?


    [OT: Tabellenbeziehungen]
    @Rainer: ich erstelle in einer accdb Tabellen und verknüpfte diese miteinander (1x eine Beziehung mit RI und 1x einen Standardvorschlag für den Abfrageeditor ohne RI).
    Anschließend verknüpfte ich diese Tabellen im Frontend. Nachdem ich dann das Beziehungsfenster im FE öffnete wurden sofort die "richtigen" Beziehungen angezeigt. Die (sinnlosen) Beziehungen - die unter Access zwar Beziehungen genannt werden, aber keine sind - wurden auch angezeigt, aber erst nachdem ich auf "alle Beziehungen anzeigen" klickte.

    Die Autoverknüpfungen im Abfrageentwurf kann man über die Access-Optionen abstellen.
    Access-Optionen --> Objekt-Designer --> Abfrageentwurf
     
    Josef P., 13. Oktober 2009
    #14
  15. Okay, genau das funzt bei mir nicht. Beziehungsfenster - alle Beziehungen anzeigen ... Ergebnis: Nix.

    Tabellen wurde auch per Hand aus BE ins FE verknüpft. Allerdings nicht alle auf einmal. Mal waren es 20 auf einen Satz und ein anderes Mal nur 1 Table ergänzt. Aber so oder so ... keine Beziehungsanzeige (abgesehen von den 5 oder 6 Beziehungen dich ich per Hand angelegt habe im FE).

    Keine Ahnung woran es liegt. Wie gesagt, dachte das wäre absolut normal das die Beziehungen im BE nicht im FE angezeigt werden wenn man die Tabellen per Verknüpfung reinholt.

    Ist aber auch nicht tragisch weil es das Datenmodell nicht betrifft (hier funzen die Beziehungen natürlich einwandfrei und auch nur da werden sie ja gebraucht ^^).

    Aber danke für den Tip mit dem Ausschalten, werde ich dann auch nutzen wenn ich mal wieder eine Abfrage direkt in Access erstelle.

    Gruß

    Rainer
     
Thema:

mehrere Abfragen verschachteln (SQL)?

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

  2. Freigegebene Excel-Tabelle als Quelle für Seriendruck

    in Sonstiges
    Freigegebene Excel-Tabelle als Quelle für Seriendruck: Hallo, :) wir haben eine Excel-Tabelle, welche auf der Cloud liegt und bei Änderungen automatisch speichert. Es haben mehrere Personen Lese- und Schreibrechte und sobald jemand etwas abändert,...
  3. Sql-Abfrage, Laufzeitfehler 3075, Syntaxfehler (fehlender Operator)

    in Microsoft Access Hilfe
    Sql-Abfrage, Laufzeitfehler 3075, Syntaxfehler (fehlender Operator): Hallo an alle, ich habe folgendes Problem. In meiner Datenbank habe ich mehrere Tabellen, unter anderem die Tabelle Teile_allgemein und Faktura. Mit meinem Abfrageformular funktioniert folgender...
  4. Kombination von zwei Abfragen in PQ mit Abhängigkeiten

    in Microsoft Excel Hilfe
    Kombination von zwei Abfragen in PQ mit Abhängigkeiten: Hallo zusammen, ich habe folgende Ausgangssituation. Ich habe einen Datensatz "Zeitpunkt 1" und einen Datensatz "Zeitpunkt 2". In Zeitpunkt 1 wird der Produnktionsstart eines Produktes auf einer...
  5. Range der Abfrage erhöhen

    in Microsoft Excel Hilfe
    Range der Abfrage erhöhen: Hallo Zusammen, ich hoffe ihr könnt mir helfen. Und zwar habe ich in unserer Urlaubsdatei weitere Mitarbeiter hinzubekommen...in allen Reitern habe ich die neuen Kollegen (#76-79) bereits...
  6. Ausführen einer Abfrage Forcieren

    in Microsoft Access Hilfe
    Ausführen einer Abfrage Forcieren: Guten Morgen Ich hätte mal ne Frage zum Ausführen von Abfragen mittels VBA. Mittels VBA kann ich ja via "docmd.openquery ..." eine Abfrage ausführen. Ich nutze das immer wieder mal um z.b:...
  7. Abfrage Kriterien ist falsch

    in Microsoft Access Hilfe
    Abfrage Kriterien ist falsch: Hallo, ich will bei einer Abfrage als Kriterium folgende Anweisung einfügen: Nicht In (SELECT tblBenutzergruppen.BenutzergruppeID FROM tblBenutzergruppen INNER JOIN tblGruppenzuordnungen ON...
  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