Artikel-ID: 160893 - Geändert am: Freitag, 19. Januar 2007 - Version: 3.2

ACC97: Abfragen verknüpfte SQL Server-Tabellen Fehler verursachen

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

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Beim Ausführen einer Abfrage basierend auf zwei oder mehr SQL Server-Tabellen werden die Abfrageergebnisse zurückgegeben, und es wird folgende Fehlermeldung:
MSACCESS verursachte einen Fehler durch eine ungültige Seite in Modul MSJET35.DLL

Ursache

Es gibt fünf Anforderungen, die Datenbank erfüllen muss, um den Fehler zu generieren:
  • Die Datenbank muss lokale Tabellen enthalten.
  • Sie benötigen eine Beziehung erzwingt die referenzielle Integrität zwischen zwei oder mehr der lokalen Tabellen in Ihrer Datenbank.
  • Die Datenbank muss verknüpfte SQL Server-Tabellen enthalten.
  • Ihre Datenbank muss eine Abfrage basierend auf zwei enthalten oder mehr verknüpfte SQL Server-Tabellen.
  • Das primäre Schlüsselfeld aus der Tabelle eine-Seite in der Abfrage muss das erste Feld in QBE-Rasters sein.

Lösung

Es gibt drei Möglichkeiten, diesen Fehler zu umgehen:
  • Aktualisieren Sie auf Version 3.51 der Microsoft Jet-Datenbankengine.
  • Sie können Ihre Abfrage ändern, daher ist der Primärschlüssel aus der Tabelle eine serverseitige nicht das erste Feld im QBE-Raster.
  • Sie können eine SQL Pass-Through-Abfrage für die verknüpften SQL Server-Tabellen verwenden.
Das folgende Beispiel veranschaulicht eine SQL Pass-Through-Abfrage zu erstellen:
  1. Öffnen Sie die Beispieldatenbank "Nordwind.mdb".
  2. Erstellen Sie eine neue Abfrage in der Entwurfsansicht.
  3. Schließen Sie das Dialogfeld Tabelle anzeigen, ohne alle Tabellen der Abfrage hinzuzufügen.
  4. Im Menü Abfrage auf SQL-spezifisch, und klicken Sie dann auf Pass-Through.
  5. In das Fenster <uiterm>SQL-Pass-Through-Abfrage</uiterm> geben Sie die folgende SQL-Anweisung ein.

    Hinweis: In der folgenden SQL-Anweisung wird ein Unterstrich (_) am Ende einer Zeile als ein Zeilenfortsetzungszeichen verwendet. Entfernen Sie beim Neuerstellen von dieser Anweisung den Unterstrich vom Ende der Zeile.
    SELECT-dbo.authors.au_id, dbo.authors.au_lname, dbo.authors. _
    Au_fname, dbo.titleauthor.royaltyper
    FROM dbo.authors INNER JOIN dbo.titleauthor auf dbo.authors.au_id = _
    dbo.titleauthor.au_id;
  6. Klicken Sie im Menü Ansicht auf Eigenschaften, um Eigenschaftenblatt der Abfrage anzuzeigen.
  7. Legen Sie die ReturnsRecords-Eigenschaft auf Ja.
  8. Legen Sie die Eigenschaft ODBCConnectStr folgt:
    ODBC; DSN = <dsnname>; SERVER = <servername><username>; UID = <benutzername>; PWD = <password>
    Ersetzen Sie <dsnname> durch den Namen der Ihre ODBC-Datenquelle für die SQL Server-Datenbank, ersetzen Sie <servername><username> durch den Namen Ihres Computers mit SQL Server, ersetzen Sie <benutzername> durch den Namen Anmeldung einen gültigen SQL Server-Benutzer und Ersetzen Sie <password> mit einem Kennwort gültige Anmeldeinformationen.
  9. Klicken Sie auf im Menü Abfrage auf Ausführen. Beachten Sie, dass die Abfrageergebnisse angezeigt werden und keine Fehler generiert.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem in Microsoft Access 97 handelt. Dieses Problem tritt nicht mehr in der Microsoft Jet-Datenbankmodul Version 3.51, dem ist verfügbar im Microsoft Download Center.

Informationen zum Microsoft Jet Database 3.51 erhalten finden Sie unter den folgenden Artikel der Microsoft Knowledge Base:
172733  (http://support.microsoft.com/kb/172733/EN-US/ ) ACC97: Neuere Version der Microsoft Jet 3.5 für Download

Weitere Informationen

Zum Reproduzieren des Problems erforderliche Schritte

Im folgende Beispiel wird die Beispieldatenbank "Nordwind.mdb" verwendet, da es lokale Tabellen mit erzwungene Beziehungen die zwei der vier Anforderungen enthält, um die fehlerhafte erfüllt.

In diesem Beispiel wird davon ausgegangen, dass Sie die dbo.authors und dbo.titleauthor Tabellen Ihrer Datenbank aus der SQL Server-Beispieldatenbank Pubs aufgerufen verknüpft haben.

Warnung: Nach diesen Schritten wird einen Fehler durch ungültige Seite auf Ihrem Computer führen. Achten Sie darauf, offene Dateien auf Ihrem Computer zu speichern und zu schließen, bevor Sie diese Schritte durchführen.
  1. Öffnen Sie die Beispieldatenbank "Nordwind.mdb".
  2. Erstellen Sie die folgende neue Abfrage auf Grundlage der Dbo_authors und Dbo_titleauthor Tabellen:
          Query: TestError
          --------------------------
          Type: Select Query
    
          Field: au_id
             Table: dbo_authors
          Field: au_lname
             Table: dbo_authors
          Field: au_fname
             Table: dbo_authors
          Field: royaltyper
             Table: dbo_titleauthor
    					
  3. Klicken Sie auf im Menü Abfrage auf Ausführen. Beachten Sie, dass die Abfrageergebnisse werden in der Datenblattansicht angezeigt, und dann der Fehler auftritt.

Informationsquellen

Weitere Informationen zum Erstellen von SQL-Pass-Through-Abfragen finden Sie in der Hilfe für "Pass-Through-Abfragen, Übersicht," oder Fragen Sie die Microsoft Access 97 Office-Assistenten.

Weitere Informationen zum Anpassen der System-Menüleiste und Symbolleisten-Datenbank, Durchsuchen der Hilfe-Index nach "Anpassen von Menüs" oder Fragen Sie den Microsoft Access 97 Office-Assistenten.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Access 97 Standard Edition
Keywords: 
kbmt kbbug kberrmsg kbusage KB160893 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 160893  (http://support.microsoft.com/kb/160893/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Retired KB ArticleDisclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.
 

SPRACHE AUSWÄHLEN