none
DB Abfrage in Excel anders als in Access

    Frage

  • Hallo MSDN Community,

    Ich habe diese Anfrage schon mal im Microsoft Community Forum gestellt und auf Bitte vom Microsoft Support hier her kopiert. Kann das Original hier nicht verlinken, hat aber den selben Titel wie hier.

    Ich habe eine MS Access Datenbank, in der ich mehrere Abfragen definiert habe. Nun möchte ich Zwecks weiterer Analysen der Daten diese nach Excel importieren. Jedoch keine Kopie der Daten sondern eine Verknüpfung auf die Datenbank da sich der Datenbestand ändern kann.

    Die Verbindung zur Datenbank hat geklappt, ich konnte die Abfrage auswählen und nach Excel importieren, soweit kein Problem.

    Doch leider sind die Ergebnisse der Abfrage nicht gleich mit den Ergebnissen aus Access, es kommt mir so vor als würde die Excel Verknüpfung SQL Statements mit Wildcards ignorieren, in dem speziellen Fall: " ... WHERE xyz NOT LIKE '*HPC*' "

    In Access werden also alle Tupel ausgeschlossen, die in Spalte xyz "HPC" enthalten. In Excel sind diese jedoch mit in der Ergebnismenge.

    In meinem Fall habe ich mehrere Bedingungen AND verknüpft, die anderen Bedingungen ohne LIKE mit Wildcards werden beachtet.

    In Excel filtern geht leider nicht, da die Ergebnisse vorher durch GROUP BY zusammengefasst werden und die Informationen dabei verloren gehen (was sie auch sollen solange vorher richtig aussortiert wurde mit NOT LIKE).

    Hat jemand einen Tipp für mich wie ich Excel das beibringe?

    Liebe Grüße,

    Felix

    Mittwoch, 27. September 2017 08:43

Antworten

  • Hallo Felix,

    * gibt es eigentlich nur in Access selbst. Aber auch dort wird intern mit % beim Ausführen von SQL Statements gearbeiten. In deinem Fall müsste die WHERE Klausel also so aussehen:

    ... WHERE xyz NOT LIKE '%HPC%'


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community



    • Bearbeitet Stefan FalzMVP Mittwoch, 27. September 2017 09:01
    • Als Antwort vorgeschlagen Flogex Mittwoch, 27. September 2017 11:00
    • Als Antwort markiert Emilfelix Mittwoch, 27. September 2017 11:28
    Mittwoch, 27. September 2017 08:57
  • Hey Felix,
    du kannst in den Optionen die unterstützten Zeichensätze ändern, also normales SQL (ANSI-92) mit dem %-Platzhalter anstatt Microsoft Access SQL (ANSI-89) mit * verwenden. Gehe dazu Objekt-Designer => Abfrageentwurf => SQL Server-kompatible Syntax (ANSI 92) und aktiviere das Kästchen "In dieser Datenbank verwenden".

    Optionen

    Beste Grüße


    Vergiss nicht, die Antwort auf deine Frage zu markieren und hilfreiche Beiträge zu bewerten, damit auch andere schnell die Lösung für ihr Problem finden können - und wir nebenbei noch ein paar Punkte verdienen. :)

    • Bearbeitet Flogex Mittwoch, 27. September 2017 11:02
    • Als Antwort markiert Emilfelix Mittwoch, 27. September 2017 11:25
    Mittwoch, 27. September 2017 11:00

Alle Antworten

  • Hallo Felix,

    * gibt es eigentlich nur in Access selbst. Aber auch dort wird intern mit % beim Ausführen von SQL Statements gearbeiten. In deinem Fall müsste die WHERE Klausel also so aussehen:

    ... WHERE xyz NOT LIKE '%HPC%'


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community



    • Bearbeitet Stefan FalzMVP Mittwoch, 27. September 2017 09:01
    • Als Antwort vorgeschlagen Flogex Mittwoch, 27. September 2017 11:00
    • Als Antwort markiert Emilfelix Mittwoch, 27. September 2017 11:28
    Mittwoch, 27. September 2017 08:57
  • Hallo Stefan,

    vielen Dank für deine Antwort, leider funktioniert % als Standard SQL wildcard bei mit in Access 2016 nicht. Wenn ich anstatt der Sternchen % verwende, werden mir in der Ergebnismenge trotzdem Einträge mit HPC ausgegeben. Hab mich schon gewundert warum MS hier vom Standard abweicht...

    Hast du noch eine Idee?

    Liebe Grüße, Felix

    Mittwoch, 27. September 2017 09:55
  • Hey Felix,
    du kannst in den Optionen die unterstützten Zeichensätze ändern, also normales SQL (ANSI-92) mit dem %-Platzhalter anstatt Microsoft Access SQL (ANSI-89) mit * verwenden. Gehe dazu Objekt-Designer => Abfrageentwurf => SQL Server-kompatible Syntax (ANSI 92) und aktiviere das Kästchen "In dieser Datenbank verwenden".

    Optionen

    Beste Grüße


    Vergiss nicht, die Antwort auf deine Frage zu markieren und hilfreiche Beiträge zu bewerten, damit auch andere schnell die Lösung für ihr Problem finden können - und wir nebenbei noch ein paar Punkte verdienen. :)

    • Bearbeitet Flogex Mittwoch, 27. September 2017 11:02
    • Als Antwort markiert Emilfelix Mittwoch, 27. September 2017 11:25
    Mittwoch, 27. September 2017 11:00
  • Hallo Flogex,

    jetzt funktioniert es! Dein Tipp den Zeichensatz umzustellen in Verbindung mit Stefans Tipp die Sternchen gegen Prozent auszutauschen hat nun geholfen in Excel das selbe Resultat wie in Access zu haben, wunderbar!

    Eventuell müssen andere geöffnete Datenbanken geschlossen, erst "Standard für neue Datenbanken" ausgewählt und Access neu gestartet werden, damit das Kästchen sich aktivieren lässt.

    Vielen vielen Dank euch beiden (ihr habt meine Projektarbeit für die Uni gerettet) !!!


    • Bearbeitet Emilfelix Mittwoch, 27. September 2017 11:32 Info hinzugefügt
    Mittwoch, 27. September 2017 11:27