none
accdb Access 12 unter Windows 7 32/64 Bit RRS feed

  • Frage

  • Hallo,

    unter windows 7 32 und/oder 64bit bekomme ich es leider nicht gebacken von meinem Programm aus auf accdb Datenbanken zuzugreifen (unter VB.NET mit .NET Framework 3.5). Mein Programm habe ich mal als 32 bit, mal als 64 bit Variante (nicht parallel) unter einem 64 Bit Windows 7 installiert, um eine geeignete Konfiguration auszutesten.

    Habe dann folgendes probiert:

    - AccessDatabaseEngine Access 12 installiert --> läuft nur auf 32 bit --> kein Zugriff möglich, wenn Application auf x64 compiliert
    - wollte AccessDatabaseEngine Access 13 64 bit Variante --> geht nicht, weil ich Office 2007 installiert habe (und das brauche ich)
    - gehe ich komplett auf 32 bit, dann kann ich auf HKEY_LOCAL_MACHINE in der Registry nicht zugreifen, warum auch immer :-(

    Merkwürdig ist, dass der ODBC Treiber für Access 12 gar nicht im Verwaltungsteil der Systemsteuerung unter Datenbanken (ODBC) auftaucht.

    Wie bekomme ich die Access 12 odbc Treiber unter Win 7 x86 Version zum Laufen?

    BTW: Merkwürdigerweise kann ich als x86 Installation meines Programmes nun auch nicht mehr auf die Datenbanken zugreifen.

    -------------------------------------------
    Berthold Dettlaff
    Montag, 15. März 2010 09:54

Antworten

Alle Antworten

  • Hallo Berthold,

    weder für die Access/Jet 4.0 (Access 2000-2003) noch für die Office 12 (2007) Access/Jet Implementation
    gibt es einen 64-Bit Treiber. Und von der Verwendung eines Beta-Treibers (Access 14/Office 2010)
    würde ich generell absehen => Office 2010 erscheint demnächst.

    Eine Anwendung, die die derzeitigen Jet Treiber nutzt, muß als x86 (32-Bit) Anwendung kompiliert werden.
    Ein Zugriff auf die Jet Datenbanken sollte über den OleDb Client erfolgen,
    ODBC macht nur einen unnötigen Umweg.

    Unter einem 64-Bit System taucht 32-Bit Treiber nur unter den 32-Bit ODBC Treibern auf, siehe
    Die 32-Bit-Version des ODBC-Tools und der 64-Bit-Version des ODBC-Tools zeigen die 32-Bit-Benutzer-DSNs
    und die 64-Bit-Benutzer-DSNs in eine 64-Bit-Version des Windows-Betriebssystems

    Zu Deinem Registry Problem hast Du bereits einen Thread laufen, deswegen hier nur kurz:
    Schau Dir dazu an Registry Virtualization in Windows Vista
    (wird im obigen KB Artikel auch angesprochen)

    Wegen des BTW:
    MDB/ACCDB-Datenbanken sollten wie alle beschreibbaren Dateien niemals im Programm-Verzeichnis
    sondern in den Applikations-Datenverzeichnisse installiert werden.

    Gruß Elmar

    Montag, 15. März 2010 12:54
    Beantworter
  • Vielen Dank Elmar. Hat mir weitergeholfen.

    Gruß
    Berthold
    Dienstag, 16. März 2010 12:16
  • Hallo,

    leider ist mein Problem noch nicht ganz behoben. Ich habe zwar gefunden, dass der Treiber für die accdb Zugriffe installiert ist; wird auch ganz normal im odbcad32 angezeigt. Ich möchte dann eine Oledb-Connection öffnen und laufe dann in einen Connect-Error, dass der Microsoft.ACE.OLEDB.12.0 Provider nicht registriert ist....

    ???
    Ich habe AccessDatabaseEngine nochmals drüberinstalliert... Keine Änderung.

    Gruß, Berthold
    Donnerstag, 18. März 2010 17:26
  • Hallo Berthold,

    auch für die OleDb Provider gilt, was für ODBC gilt.
    Willst Du die Jet-Treiber verwenden, muß das Programm als "x86" kompiliert werden.

    OleDb Provider tauchen ohnehin nicht als ODBC Datenquelle auf.
    Die Informationen werden dort der COM Registry entnommen.
    Am einfachsten sind die installierten über ein UDL-Datalink zu sehen:
    http://msdn.microsoft.com/en-us/library/e38h511e%28VS.71%29.aspx

    wobei ich kein Window 7 hier habe und nicht testen kann,
    ob man das dort totgelegt hat, unter Vista gehts noch.

    Gruß Elmar
    Donnerstag, 18. März 2010 18:55
    Beantworter
  • Hallo Elmar,

    oops. Studio war auf AnyCPU... nach Umstellung auf x86 funktioniert es. Bleibt zu hoffen, dass bald die neue Office Version erscheint.

    Gruß
    Berthold


    Donnerstag, 18. März 2010 22:39