2009-02-26 5 views
2

Ich habe eine Verbindung zu einer Access-Datenbank, die MSDataShape implementiert, die perfekt auf Windows XP funktioniert, jetzt, wenn ich versuche, es auf Windows Vista laufen zu lassen, mir ein Fehler.MSDataShape unter Windows Vista

Der Fehler auf Vista:

Fehler # -2147467259 [Microsoft] [ODBC Driver Manager] Der Datenquellenname

Der gleiche Code funktioniert perfekt nicht gefunden und angegeben kein Treiber Verzuges eine saubere XP-Installation.

Was ist das große Geheimnis?

+0

+1 für die Einführung in MSDatashape. Ich wusste nicht einmal, dass es vorher existiert hat. –

+0

nicht der 2 Antwort lösen mein Problem ... Ich kann immer noch nicht ein Shaped Recordset in Windows Vista Ultimate sauber installieren. Es scheint, dass MSDataShape nicht länger von diesem Betriebssystem unterstützt wird. Übrigens habe ich die Remou-Methode vor dem Fragen verwendet. – diego2k

Antwort

1

Ich habe dies auf Vista und Access 2000 getestet, und es hat für mich funktioniert. Ich habe die neueste Jet-Version, die mit Vista installieren sollte.

Private Sub Form_Open(Cancel As Integer) 
    Set cn = New ADODB.Connection 
    With cn 
     .Provider = "MSDataShape" 
     .CursorLocation = adUseClient 
     .ConnectionString = "DATA PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ 
     & "DATA SOURCE=c:\docs\ltd.mdb" 
     .Open 
    End With 

    Set rs = New ADODB.Recordset 

    With rs 
     .Source = "SELECT * From Table1" 
     .ActiveConnection = cn 
     .CursorType = adOpenKeyset 
     .LockType = adLockOptimistic 
     .Open 
    End With 

    Set Me.Recordset = rs 
    Me.UniqueTable = "Table1" 

End Sub 

Referenzen: http://support.microsoft.com/kb/227053/EN-US/ http://support.microsoft.com/kb/239114/en-us

1

Ein paar Dinge zu überprüfen:

  • Sie ODBC verwenden, sind Sie sicher, genau die gleiche ODBC-Datenquelle, die Sie auf die Verwendung XP-Maschine wurde erstellt?

  • Wenn Sie auf 64-Bit-Betriebssystem sind, müssen Sie eine 32 bit ODBC Datenquelle erstellen, die 64-Bit-ODBC-Datenquellen sind für Access unsichtbar, die eine 32-Bit-App ist.

  • Stellen Sie sicher, dass Sie die richtigen Jet-Datenbanktreiber installiert haben. Wenn Sie Access 2007 verwenden, sind dies die Access Database Engine component.

+0

In Bezug auf die letzte, das ist nur wichtig, wenn Ihre "Access" -Datei eine ACCDB und keine MDB ist. Eine in A2K7 erstellte MDB ist über den Jet 4 ODBC-Treiber vollständig zugänglich. –