Access-Abfragen mit einem Platzhalterzeichen exportieren keine Daten in ein XML-Dokument


Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
823224 Access Queries with a Wildcard Character Do Not Export Data in an XML Document
Dieser Artikel bezieht sich ausschließlich auf eine Microsoft Access-Datenbank (.mdb).

Moderat: Erfordert grundlegende Kenntnisse in den Bereichen Makros, Kodierung und Interoperabilität.

Problembeschreibung


Wenn Sie eine Access-Abfrage in ein XML-Dokument exportieren und die Abfrage ein Microsoft Jet-Platzhalterzeichen, wie z. B. ein Sternchen (*), in den Kriterien enthält, werden die Daten nicht in das XML-Dokument exportiert. Deshalb enthält das resultierende XML-Dokument keine Daten.

Die Abfrage funktioniert ordnungsgemäß, wenn Sie dieselbe Abfrage mithilfe von Access ausführen.

Ursache


Dieses Verhalten tritt beim Exportieren in XML auf. XML verwendet ActiveX Data-Objekte (ADO), um die Daten aus der Datenbank abzufragen. Wenn Sie ein Jet-spezifisches Platzhalterzeichen in der Access-Abfrage verwenden, gibt die Abfrage keine Datensätze zurück. Dieses Problem tritt auf, weil ADO nur ANSI-92-Platzhalterzeichen erkennt (ANSI = American National Standards Institute).

Abhilfe


Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:
  • Methode 1

    Sie können die Abfrage erneut schreiben, um die Jet-spezifischen Platzhalterzeichen mit den ANSI-92-Platzhalterzeichen zu ersetzen. Die ursprüngliche Abfrage sieht möglicherweise ähnlich wie diese mit dem Platzhalterzeichen * aus:
    SELECT Customers.CustomerID
    FROM Customers
    WHERE (((Customers.CustomerID) Like "A*"));
    Sie können die Abfrage folgendermaßen umschreiben:
    SELECT Customers.CustomerID
    FROM Customers
    WHERE (((Customers.CustomerID) Like "A%"));
    Hinweis: Wenn die Access-Datenbank nicht für ANSI-92-Kompatibilität konfiguriert ist, wenn Sie die umgeschriebene Abfrage von Access aus ausführen, werden keine Daten zurückgegeben. Das exportierte XML-Dokument, das auf der umgeschriebenen Abfrage basiert, gibt jedoch die erwarteten Ergebnisse zurück.
  • Methode 2

    Sie können die Abfrage so umschreiben, dass das Kriterium der Abfrage keine Platzhalterzeichen enthält. Die ursprüngliche Abfrage sieht möglicherweise ähnlich wie diese mit dem Platzhalterzeichen * aus:
    SELECT Customers.CustomerID
    FROM Customers
    WHERE (((Customers.CustomerID) Like "A*"));
    Sie können die Abfrage folgendermaßen umschreiben:
    SELECT Customers.CustomerID
    FROM Customers
    WHERE Left(CustomerID,1) = "A";
  • Methode 3

    Wenn Sie Daten in ein XML-Dokument exportieren, können Sie festlegen, ob ein bestehender Filter auf das Objekt angewendet werden soll. Anstatt ein Platzhalterzeichen in den Kriterien der Abfrage festzulegen, können Sie einen Filter erstellen, in dem die Filterzeichenfolge dem Kriterium, das Sie möchten (wie z. B. "A*"), entspricht, und anschließend diesen Filter während des XML-Exportvorgangs anwenden.

    Gehen Sie hierzu folgendermaßen vor:
    1. Öffnen Sie die Beispieldatenbank "Nordwind".
    2. Klicken Sie im Menü Einfügen auf Abfrage.
    3. Wählen Sie im Dialogfeld Neue Abfrage die Option Entwurfsansicht. Klicken Sie danach auf OK.
    4. Klicken Sie im Menü Ansicht auf SQL-Ansicht.
    5. Fügen Sie in das Fenster Abfrage folgende Abfrage ein:
      SELECT Customers.CustomerID
      FROM Customers;
      Hinweis: Wie Sie sehen, wurde das Kriterium der Abfrage entfernt. Die Abfrage enthält deshalb keine Platzhalterzeichen.
    6. Klicken Sie im Menü Datei auf Speichern.
    7. Geben Sie im Dialogfeld Speichern unter im Feld Abfragename den Namen Abfrage1 ein.
    8. Klicken Sie im Menü Ansicht auf Datenblattansicht.
    9. Zeigen Sie im Menü Datensätze auf Filter, und klicken Sie dann auf Spezialfilter/-sortierung.
    10. Wählen Sie in der Liste Feld den Eintrag CustomerID.
    11. Fügen Sie in das Feld Kriterien unter CustomerID folgenden Code ein:
      Like "A*"
    12. Klicken Sie im Menü Filter auf Filter/Sortierung anwenden.
    13. Klicken Sie im Menü Datei auf Speichern.
    14. Klicken Sie im Menü Datei auf Schließen.
    15. Klicken Sie im Fenster Datenbank auf Abfragen.
    16. Klicken Sie mit der rechten Maustaste auf Abfrage1, und klicken Sie auf Exportieren.
    17. Wählen Sie im Dialogfeld Exportieren von Abfrage 'Abfrage1' nach... in der Liste Dateityp die Option XML, und klicken Sie anschließend auf Exportieren.
    18. Klicken Sie im Dialogfeld XML exportieren auf Weitere Optionen.
    19. Wählen Sie im Dialogfeld XML exportieren die Registerkarte Daten. Aktivieren Sie unter Zu exportierende Datensätze das Kontrollkästchen Bestehenden Filter anwenden, und klicken Sie auf OK.

Status


Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den oben genannten Microsoft-Produkten handelt.

Weitere Informationen


Schritte zum Reproduzieren des Problems

  1. Öffnen Sie die Beispieldatenbank "Nordwind".
  2. Klicken Sie im Menü Einfügen auf Abfrage.
  3. Wählen Sie im Dialogfeld Neue Abfrage die Option Entwurfsansicht. Klicken Sie danach auf OK.
  4. Klicken Sie im Menü Ansicht auf SQL-Ansicht.
  5. Fügen Sie in das Fenster Abfrage folgende Abfrage ein:
    SELECT Customers.CustomerID
    FROM Customers
    WHERE (((Customers.CustomerID) Like "A*"));
  6. Klicken Sie im Menü Datei auf Speichern.
  7. Geben Sie im Dialogfeld Speichern unter im Feld Abfragename den Namen Abfrage1 ein.
  8. Klicken Sie im Menü Datei auf Schließen.
  9. Klicken Sie mit der rechten Maustaste auf Abfrage1, und klicken Sie auf Exportieren.
  10. Wählen Sie im Dialogfeld Exportieren von Abfrage 'Abfrage1' nach... in der Liste Dateityp die Option XML, und klicken Sie anschließend auf Exportieren.
  11. Klicken Sie im Dialogfeld XML exportieren auf OK, um die XML-Dateien unter dem Standardspeicherort zu speichern.
  12. Öffnen Sie in Microsoft Internet Explorer die exportierte XML-Datei.

    Sie können feststellen, dass die exportierte XML-Datei, die auf der angegebenen Abfrage basiert, keine Datensätze enthält.

Informationsquellen


Um weitere Informationen über ANSI-92-Syntax zu erhalten, geben Sie im Office-Assistenten die Suchbegriffe ANSI SQL Abfragemodus ein, und klicken Sie dann auf Suchen.
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.