Office: (Office 2019) Abfrage über zwei Tabellen

Helfe beim Thema Abfrage über zwei Tabellen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, ich benötige Hilfe bei einer Abfrage: Die Abfrage geht über zwei Tabellen: Tabelle Kunde und Tabelle Bemerkung Die beiden Tabellen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Eisfuchs, 13. August 2021.

  1. Abfrage über zwei Tabellen


    Hallo Zusammen,

    ich benötige Hilfe bei einer Abfrage:

    Die Abfrage geht über zwei Tabellen:

    Tabelle Kunde und Tabelle Bemerkung

    Die beiden Tabellen stehen in einer 1:N Beziehung.

    Struktur der beiden Tabellen:

    Tabelle Kunde
    Felder:
    KID, Unternehmen, Status A, Status B

    Tabelle Bemerkung:
    Felder:
    BID, GBMID, Art, Liste, Datum, Bearbeiter

    Die Tabelle Bemerkung sieht so aus:

    BID GBMID … Datum
    1 1 … 01.02.2021
    2 4 … 10.02.2021
    3 4 … 13.02.2021
    4 4 … 20.03.2021
    5 4 … 12.04.2021
    6 5 … 10.01.2021
    7 5 … 15.02.2021

    Die Abfrage soll als Ergebnis die Tabelle Kunde komplett anzeigen und
    von der Tabelle Bemerkung sollen nur die Zeile angezeigt werden die das letzte Datum beinhaltet – wie oben bei GBMID 4 = 12.04.2021 und bei GBMID 5 = 15.02.2021

    Kann mir jemand helfen, wie ich diese Abfrage konstruieren muss?

    Gruß
    Eisfuchs
     
    Eisfuchs, 13. August 2021
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    ich habe 2 Tabellen angelegt: Tabelle "TabKunden" und Tabelle "TabBermerkung":
    Abfrage über zwei Tabellen upload_2021-8-14_11-8-23.png Abfrage über zwei Tabellen upload_2021-8-14_11-9-49.png
    Dann habe ich die Abfrage "QryKundenBemerkungen" erstellt, um eine Gesamtabfrage der verknüpften Tabellen zu zeigen:
    Code:
    SELECT K.KID, K.Unternehmen, K.[Status A], K.[Status B], B.GBMID, B.Art, B.Liste, B.Datum
    FROM TabKunden AS K INNER JOIN TabBemerkung AS B ON K.GBID = B.GBMID;
    
    mit folgendem Abfrageergebnis:
    Abfrage über zwei Tabellen upload_2021-8-14_11-14-44.png
    Danach erstellte ich die Abfrage "QryLetztDatumBemerkung"
    Code:
    SELECT B.GBMID, Last(B.Art) AS LArt, Last(B.Liste) AS LListe, Last(B.Datum) AS LDatum, Last(B.Bearbeiter) AS LBearbeiter
    FROM TabBemerkung AS B
    GROUP BY B.GBMID
    ORDER BY B.GBMID;
    
    mit folgendem Abfrageergebnis:
    Abfrage über zwei Tabellen upload_2021-8-14_11-19-28.png
    und schließlich die Abfrage "QryKundeLetztDatumBermerkung"
    Code:
    SELECT K.KID, K.Unternehmen, K.[Status A], LB.GBMID, LB.LArt, LB.LListe, LB.LDatum, LB.LBearbeiter
    FROM TabKunden AS K INNER JOIN QryLetztDatumBemerkung AS LB ON K.GBID = LB.GBMID
    ORDER BY K.KID;
    
    Abfrage über zwei Tabellen upload_2021-8-14_11-24-11.png
     
    Exl121150, 14. August 2021
    #2
  3. derArb hat Ahnung
    Hallo,
    Dein Tabellenmodell hat Fehler. Wenn Du versuchst, eine ref.Integrität zwischen den beiden Tabellen im Beziehungsfenster herzustellen, dann wirst Du das bemerken. Da man Sonderzeichen in Objektnamen vermeiden sollte (z.B. Leerzeichen),
    hab ich die Tabellenfeldnamen 'Status A' und 'Status B' geändert in 'Status_A' und 'Status_B'.
    Der Unterstrich gilt nicht als Sonderzeichen.
    Unnötige Tabellenfelder hab ich herausgenommen und dafür gesorgt, dass Primärschlüsselfeldnamen und die
    zugehörigen Fremdschlüsselfelder denselben Namen haben mit einem Appendix "_f" am Fremdschlüsselnamen.
    Ansonsten dreht man ja durch, wenn alles beliebig (leider möglich) benannt wird.
     
  4. Abfrage über zwei Tabellen

    Hallo Exl121150,

    vielen lieben Dank für deine Antwort.
    Werde es gleich am Montag ausprobieren und mich dann noch einmal melden.

    Nochmals vielen Dank.

    Gruß
    Eisfuchs
     
    Eisfuchs, 14. August 2021
    #4
  5. Hallo derArb,

    vielen Dank für deine Antwort, werde am Montag damit fortfahren und mich dnach nochmals im Forum melden, ob alles geklappt hat.

    Gruß
    Eisfuchs
     
    Eisfuchs, 14. August 2021
    #5
  6. Hi,

    hab jetzt die Abfrage so geändert, dass Sie zu meiner Datenbank passt!


    SELECT tblGe.GeID, tblGe.Unternehmen, tblGeBemerkung.GBMID, Last(tblGeBemerkung.Art) AS LArt, Last(tblGeBemerkung.Liste) AS LListe, Last(tblGeBemerkung.Datum) AS LDatum, Last(tblGeBemerkung.Bearbeiter) AS LBearbeiter
    FROM tblGe RIGHT JOIN tblGeBemerkung ON tblGe.GID = tblGeBemerkung.GBMID
    GROUP BY tblGe.GeID, tblGe.Unternehmen, tblGeBemerkung.GBMID
    ORDER BY tblGeBemerkung.GBMID;

    Nun wird mir das ja als komplette Liste angezeigt!
    Wie schaffe ich es jetzt, dass ich für meine beiden Textfelder "Am" und "Von" zum passenden Datensatz auch den Inhalt von "LDatum" und "LBearbeiter" bekomme. Die beiden Textfelder sind ungebunden in einem gebundenen Formular.
    Das was ich gefunden habe funktioniert nicht:
    =DomWert("[LDatum]";"qryGeLetzteBemerkung"]. Sorry falls die syntax nicht ganz stimmen sollte!

    Vielen Dak im Voraus.

    Gruß
    Eisfuchs
     
    Eisfuchs, 16. August 2021
    #6
  7. Exl121150 Erfahrener User
    Hallo,

    In SQL kann man einen Recordset mit 2 verschieden wirkenden Schlüsselwörtern filtern:
    1) Schlüsselwort "WHERE Datenbankfeld = Wert"
    2) Schlüsselwort "HAVING Gruppierungsfeld = Wert"
    Mit WHERE kann man die Datensätze filtern, bevor sie in einer Gruppierung verarbeitet werden.
    Mit HAVING kann man die erfolgte Gruppierung selbst filtern.

    Daher ist die Abfolge der Schlüsselwörter in SQL in der Regel wie folgt (wenn keine irgendwie gearteten Verschachtelungen vorliegen):
    SELECT Liste_Felder
    FROM Liste_Tabellen/Abfragen
    WHERE Feld1=Wert1 AND (Feld2=Wert2 OR Feld3=Wert3)
    GROUP BY GruppFeld1, GruppFeld2
    HAVING GruppFeld2=GruppWert2
    ORDER BY FeldX;

    Dabei ist natürlich zu beachten, dass der auf WHERE bzw. HAVING folgende Ausdruck so formuliert sein muss, dass er ein logisches TRUE oder FALSE ergibt: Bei TRUE wird der Satz bzw. die Gruppierung in die Abfrage aufgenommen, bei FALSE wird der Satz bzw. Gruppierung aus dem Abfrageergebnis entfernt.
    z.B. wenn sich die WHERE-Filterung auf ein Datumsfeld (LDatum) bezieht, lautet sie in etwa:
    WHERE LDatum = #05/14/2021# OR LDatum = [Am]
    was bedeutet, dass Sätze, deren Feld LDatum gleich dem 14.Mai 2021 ist, im Abfrage-Recordset enthalten sind
    (Man beachte die US-amerikanische Datumsschreibweise - eingeschlossen in 2 #-Zeichen !!!) und ferner auch Sätze, deren Feld LDATUM gleich ist zum Inhalt eines abfrageexternen Feldes [Am] (Man beachte die beiden eckigen Klammern!!! ).
    Damit es zwischen dem Textinhalt des externen Feldes Am und dem Abfragefeld LDatum keine Konvertierungsprobleme gibt, kann man vor der "SELECT..."-Abfrage eine "PARAMETERS Am DateTime;" Zeile einfügen.
     
    Exl121150, 16. August 2021
    #7
  8. Abfrage über zwei Tabellen

    Hi Exl121150,

    klingt für mich sehr kompliziert und es fehlt mir an Erfahrung für diese Abfrage.

    Wie kann ich diese Abfrage so umbauen, dass ich mit dem DomWert() erfolg habe?

    SELECT tblGe.GeID, tblGe.Unternehmen, tblGeBemerkung.GBMID, Last(tblGeBemerkung.Art) AS LArt, Last(tblGeBemerkung.Liste) AS LListe, Last(tblGeBemerkung.Datum) AS LDatum, Last(tblGeBemerkung.Bearbeiter) AS LBearbeiter
    FROM tblGe RIGHT JOIN tblGeBemerkung ON tblGe.GID = tblGeBemerkung.GBMID
    GROUP BY tblGe.GeID, tblGe.Unternehmen, tblGeBemerkung.GBMID
    ORDER BY tblGeBemerkung.GBMID;

    Vielen Dank im Voraus.

    Gruß
    Eisfuchs
     
    Eisfuchs, 16. August 2021
    #8
  9. Nun möchte ich noch etwas in eigener Sache sagen (ist auf niemanden direkt bezogen:
    Mir tut es immer weh, wenn ich in Foren, Portalen usw. angegangen wede, dass mir die Erfahrung, Kompetenz oder ähnliches fehlt.
    Ich dachte immer, dass Foren, Portale usw. zum Austausch und Fragen offen sind.
    Kurz zu mir: Mir fehlt das 3D sehen und denken, aber ich schlage mich durch mein Leben mit ca. 1 Prozent Sehvermögen!!!
    Die Ausgrenzung im täglichen Leben ist schon schlimm genug!
    Viele User sollten einmal überlegen, wenn Sie in einer Situation wären, bei der Sie Hilfe benötigen, weil man es selbst nicht hinbekommt. Vielleicht sollten manche einmal überlegen, wie es ist mit einer Schwerbehinderung zu leben und welche täglichen Hürden man damit nehmen muss. Ich wünsche es wirklich niemanden durch einen Unfall o. ä. anschließend mit einer Schwerbehinderung zu leben.

    Ich versuche immer mein möglichstes jeden Tag.
    Es ist nur leider deprimierend, wenn man im Leben niemand hat, den man Fragen kann und um Hilfe bitten kann.

    Vielen Dank für euer Verständnis.

    Gruß
    Eisfuchs
     
    Eisfuchs, 16. August 2021
    #9
  10. Hallo zusammen,

    dieses Thema konnte gelöst werden

    Vielen Dank an alle, die mir geholfen haben.

    Gruß
    Eisfuchs
     
    Eisfuchs, 28. August 2021
    #10
Thema:

Abfrage über zwei Tabellen

Die Seite wird geladen...
  1. Abfrage über zwei Tabellen - Similar Threads - Abfrage Tabellen

  2. Abfrage mit Texteintrag in andere Tabelle

    in Microsoft Access Hilfe
    Abfrage mit Texteintrag in andere Tabelle: Hallo zusammen, habe folgendes Problem: ich möchte mit einer Abfrage folgendes lösen: Beim klicken auf eine Befehlsschaltfläche soll folgendes passieren: Die Kundennummer soll eingegeben werden...
  3. Filtern in Formular über mehrere Tabellen/Abfragen

    in Microsoft Access Hilfe
    Filtern in Formular über mehrere Tabellen/Abfragen: Hallo zusammen, folgende Problemstellung: Ich habe ca. 15 Tabellen (aus unterschiedlichen Jahren) mit den gleichen Feldernamen. Ich möchte ein HF mit UFO erstellen, wo ich über HF in UFO nach...
  4. Aus Abfrage Tabelle erstellen und automatisches zählen

    in Microsoft Access Hilfe
    Aus Abfrage Tabelle erstellen und automatisches zählen: Hallo zusammen, habe mal wieder ein Projekt bekommen wo ich nicht so richtig weiterkomme. Kurz ein Abriss zum Projekt: Aktuell betreuen wir ca. 1500 Clients. Auf diesen Clients ist eine bestimme...
  5. Abfrage über 2 Tabellen bzw Formular?

    in Microsoft Access Hilfe
    Abfrage über 2 Tabellen bzw Formular?: Hallo, ich habe von der Firma eine alte Access Datenbank mit dem Kundenstamm bekommen und war doch etwas erstaunt. Denn wenn ich zb einen Datensatz suchen und drucken soll, muss ich, ebenso wie...
  6. Exportieren einer Tabelle oder Abfrage in eine SharePoint-Website

    in Microsoft Access Tutorials
    Exportieren einer Tabelle oder Abfrage in eine SharePoint-Website: Exportieren einer Tabelle oder Abfrage in eine SharePoint-Website Access für Microsoft 365 Access 2019 SharePoint in Microsoft 365 Access 2016 Access 2013...
  7. Verknüpfen von Tabellen und Abfragen

    in Microsoft Access Tutorials
    Verknüpfen von Tabellen und Abfragen: Verknüpfen von Tabellen und Abfragen Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr......
  8. Erstellen einer Abfrage basierend auf mehreren Tabellen

    in Microsoft Access Tutorials
    Erstellen einer Abfrage basierend auf mehreren Tabellen: Erstellen einer Abfrage basierend auf mehreren Tabellen Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007...
  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