none
VB 2017 Datenbankverbindung zu ACCESS 2016 Datenbank mit Provider Microsoft.ACE.OLEDB.16.0 RRS feed

  • Frage

  • Ich habe Visual Studio (Visual Basic) B2017 und ACCESS 2016 installiert und will eine Datenbankverbindung mit dem Provider Microsoft.ACE.OLEDB.16.0 herstellen.

    Wo finde ich den Provider Microsoft.ACE.OLEDB.16.0 und wie kann ich diesen installieren?

    Mit der Version 12.0 erkennt VB2016 das Datenbankformat von ACCESS 2016 Datenbanken nicht. Der Treiber Microsoft.ACE.OLEDB.12.0 aus 2007 hat also nicht zum Ziel geführt.

    Donnerstag, 23. November 2017 05:43

Alle Antworten

  • Das hängt nun von deiner 32/64-Bit-Anwendung ab.
    Hast du Access in 32-Bit installiert musst du deine VB-Anwendung ebenso auf 32-Bit fixieren (Projekteinstellung).
    Umgekehrt gilt dies ebenso.
    Access bringt seine Provider für die jeweilige Bit-Version selber mit.
    Ansonsten kann man sich diese noch als "Redistributable" downloaden:

    https://www.microsoft.com/en-us/download/details.aspx?id=54920

    Donnerstag, 23. November 2017 08:52
  • Hallo bfuerchau,

    Ich habe sowohl Visual Studio 2017 als auch OFFICE 365 mit ACCESS 2016 als X64 installiert. Von VS nutze ich Visual Basic. In ACCESS und EXCEL sind die OLEDB.16.0 Provider installiert. In VB ist nur der Jet.OLEDB.4.0 installiert und aktiviert.

    Daran hat auch die Installation der "Redistributable" in Version X64 nichts geändert.

    Was muss ich machen um OLEDB.16.0 in VB zu aktivieren? Ich weiß mir keinen Rat mehr.

    Gruß Join-T

    Sonntag, 26. November 2017 06:12
  • Da verstehe ich nicht, was du meinst.
    Die Installation von OLEDB-Treibern ist unabhängig von Visual Studio.
    In VS (egal ob C#, VB) kannst du dann die OLEDB-Klassen verwenden und gibst als Provider dann den OLEDB-Provider an.

    Wo genau ist dein Problem?

    Nachtrag:
    In den Express-Versionen von Visualstudio gibt es keine Designerunterstützung von OLEDB/ODBC, leider nur für SQL-Server, den es in Express ja auch gibt.
    Man kann allerdings native, wie gesagt, entsprechende Verbindungen nutzen. Nur die Generierung von typesave Datasets/DataTables geht halt nicht. Dafür muss man sich dann vollwertige Versionen (ich glaube ab Pro), installieren.
    Sonntag, 26. November 2017 11:26
  • OK, ich habe mal folgendes probiert:
    Ohne die Access-Redist funktioniert diesbezüglichgar nichts, auch wenn man Access native installiert hat.
    Also, je nach Version, die Access-Redist's downloaden, nur die fehlende Version, also 32 oder 64-Bit.
    Nun kann die Exe installiert werden, allerdings ohne manuellen Eingriff, kann man nur entweder  32 oder 64-Bit installieren.
    Vorgehen:
    - Eingabeaufforderung als Administrator
    - Aufruf der Exe's mit der Option "/quiet"
    In diesem Fall erfolgt keine Prüfung, ob die Gegenversion 32 vs 64-Bit bereits installiert ist.
    Nun werden die Treiber (Access, Excel, ...) im Verzeichnis  C:\Program Files\Common Files\microsoft shared\OFFICE16 bzw. C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16 installiert.

    Achtung:
    Wenn man eine höhere Version der Redist als die aktuell installierte Officeversion installiert, kann es dazu kommen, dass der Installer die aktuelle Registrierung der Officeversion aufhebt!
    Dies ist mir passiert, da ich auf Office 2010 die Redist von 2013 installiert hatte. Nun gilt Office 2010 als nicht mehr registriert und ich kann ebenso meinen Lizenzschlüssel nicht mehr dafür verwenden.
    Eine Deinstalllation der Redist brachte leider keine Rückkehr zur registrierten Version.
    Das selbe gilt auch, wenn man Access bereits installiert haben sollte. In diesem Fall darf man die passende 32/64-Redist nicht installieren, sonst klappt Access nicht mehr.

    Aber nun weiter in VisualStudio:
    Im Server-Explorer neue Verbindung Hinzufügen->Datenquelle: Andere, Datenanbieter: Netframework OLEDB.
    In dem darauffolgenden Dialog escheint nun im Dropdown der OLEDB-Anbieter ebenso "Microsoft Office 16.0 ...".

    Analog kann man dies ebenso für vorherige Versionen (Office 15, 14, ...) durchführen

    Hat man bereits Access installiert, wird i.d.R. der Microsoft-Access-Datenbanken-Provider bereits angebeoten.

    Sonntag, 26. November 2017 13:23
  • Ich habe die Lösung meines Problems selbst gefunden.-

    Visual Studio 2017 (und alle Vorgänger) ist einer 32 bit Software -
    Mein Office 365 ist als 64 bit Software installiert. Also auch die AccessDatabaseEngine.


    Die Folge ist, das Visual Studio die Provider der 64bit Access Database Engine 2016 nicht erkennt.
    Abhilfe 32bit AccessDatabaseEngine /quiet installieren - die Ergänzung /quiet ist wichtig, damit keine Prüfung auf installierte 64bit Engines erfolgt.


    Dann gibt es das Problem mit nicht registrierten Providern oder nicht erkannten Providern nicht mehr.
    32bit Sofware Entwicklung funktioniert mit 32 bit Treibern oder Providern
    64bit Sofware Entwicklung funktioniert mit 64 bit Treibern oder Providern

    Mischmasch führt zu Fehlern.

    Jetzt funktioniert bei mir alles so wie es soll.

    Dienstag, 12. Dezember 2017 12:28
  • Schön, dass du meine Lösung (s.o.) somit auch bestätigst;-).
    Dienstag, 12. Dezember 2017 13:05