2016-05-10 10 views
1

Unsere Anwendung muss eine .mdb (MS Access 2000) Datei von VB.NET erstellen. Wir verwenden ADOX für diese Verwendung als VerbindungszeichenfolgeWie erstellt man eine Access 2000-Datenbank aus einer 64-Bit-.NET-Assembly?

Anbieter = Microsoft.Jet.OLEDB.4.0; Jet OLEDB: Motortyp = 5;

Das funktioniert gut. Jetzt möchten wir jedoch eine 64-Bit-Kompilierung unserer Anwendung zulassen. Da die Jet 4.0-Engine nur 32 Bit umfasst, muss der Anbieter in der Verbindungszeichenfolge in ACE 12.0 geändert werden. Wenn wir diesen Anbieter jedoch verwenden, wird eine MS Access 2010 (.accdb) Datei erstellt, während wir eine MS Access 2000 (.mdb) Datei benötigen.

Wie können wir das lösen?

+2

Sind Sie sicher, dass es sich lohnt? - Bedenken Sie, dass [access 2000] (https://support.microsoft.com/en-gb/lifecycle?p1=1265) vor 7 Jahren aus der * erweiterten * Unterstützung herausfiel, wenn es hier Probleme gibt. Manchmal muss man sagen "genug ist genug". –

+0

Ich denke, @Damien_The_Unbeliever hat einen guten Punkt ... Etwas, das datiert wird für immer weniger unterstützt werden. Wechseln Sie zu einer späteren Access-Datenbank (oder noch besser SQLite oder SQL Server) – Basic

Antwort

1

Nun versuchten wir unser Glück mit

Provider = Microsoft.ACE.OLEDB.12.0; Jet OLEDB: Motor Typ = 5;

Und siehe da: es scheint zu funktionieren!

1

Sie ACE DAO statt ADOX verwenden könnte, etwa so:

' required COM reference: 
'  Microsoft Office 14.0 Access Database Engine Object Library 
' 
' Imports Microsoft.Office.Interop.Access.Dao 
' 
Dim dbe As New DBEngine 
dbe.CreateDatabase("C:\path\foo.mdb", LanguageConstants.dbLangGeneral, DatabaseTypeEnum.dbVersion40)