Access 2010 über OleDb12.0 registrieren?

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von raist10.

    Access 2010 über OleDb12.0 registrieren?

    Hallo Leute,
    für eine Testapplikation benötige ich eine Access-Datenbank. Ich hab die Version 2010 installiert, jedoch kommt bei

    VB.NET-Quellcode

    1. Dim con As New OleDbConnection
    2. Dim cmd As New OleDbCommand
    3. con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & db
    4. cmd.Connection = con
    5. cmd.CommandText = "select * from status"
    6. Try
    7. con.Open() ' hier
    folgende Fehlermeldung:
    Was muss ich registrieren, damit ich Access 2010 nutzen kann?
    Bilder
    • Access.jpg

      10,54 kB, 475×169, 341 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Sorry. Falsche Antwort.
    Das laufende Programm bringt mir in der Zeile

    VB.NET-Quellcode

    1. con.Open()
    besagte Fehlermeldung.
    Das es läuft, kann kein Imports fehlen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ RoadFromGermany

    Der Connection-String muss für das NET-Framework und OleDB so in etwa aussehen:

    VB.NET-Quellcode

    1. Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;


    Was es bei Dir ja offensichtlich tut. ^^

    Erste Frage: Hast Du wirklich Access 2007 oder doch Access 2010 drauf?

    Bei letzterem probiere es mit : 14.0 anstatt 12.0 (glaube das es die 14.0 war ^^).

    Ansonsten würde ich jetzt schlicht und ergreifend urteilen es gibt den Provider noch gar nicht auf Deinem Rechner. Prüfe mal ob der wirklich installiert ist.

    @ Romario

    Das kann es nicht sein, denn dann würde Road keine Fehlermeldung bei der Ausführung bekommen sondern die Ausführung würde gleich verweigert werden vom Compiler.

    Gruß

    Rainer
    Es ist Access 2010:
    Bilder
    • Access_02.jpg

      35,61 kB, 577×422, 277 mal angesehen
    • Access_03.jpg

      10,68 kB, 475×169, 239 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hhhhmmmm ... hast Du die 64-bit oder die 32-bit von Office 2010 installiert?

    Wenn 64 bit dann könnte es daran liegen, da so gut wie alle "alten" Treiber nicht mit 64-bit funktionieren. Wäre daher denkbar das möglicherweise auch der OleDB Provider noch nicht für 64 bit vorhanden ist und daher dann gar nicht installiert wurde mit dem Office-Paket.

    Denn die Fehlermeldung ist eigentlich recht deutlich: Provider ist nicht installiert.

    Seltsam ... o_O

    Gruß

    Rainer
    *lach*

    Habe ich glatt übersehen.

    Übrigens ... hab nochmal nachgesehen 12.0 war schon richtig ... Access 2010 nutzt offensichtlich den gleichen Provider wie Access 2007.

    Na dann, viel Spaß beim Neuinstallieren mit 32 bit. ^^

    Eine andere Idee woher das Problem des nicht vorhandenen Providers ansonsten stamme könnte, habe ich nicht mehr.

    Gruß

    Rainer
    Die hab ich auch schon schon probiert.
    Leider nix. :thumbdown:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke erst mal.
    Ich werds mir mal anschauen, auch wenn das explizit für das 2007er Access ist.
    32-Bit noch nicht installiert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Danke erst mal.
    Ich werds mir mal anschauen, auch wenn das explizit für das 2007er Access ist.


    Da Access 2010 auch den 12er Provider nutzt, macht das keinen Unterschied.


    32-Bit noch nicht installiert.


    Würde ich persönlich ja gleichmal als erstes probieren, da es durchaus bekannt ist das Access 2010 in der 64-bit Version enorm Probleme verursacht, bzw. so gut wie nichts funktioniert. MS selber gibt ja mittlerweilen auch den Rat nur die 32-bit Version zu nutzen an alle Entwickler die mit Acc 2010 arbeiten raus.

    Lad doch mal eine kleine Demo hoch die bei Dir nicht läuft und ich probiere sie bei mir aus (VS 2010 und Access 2007). Dann könnte man vielleicht Code-Fehler/Fehler im Connection-String schonmal definitiv ausschliessen oder aufdecken.

    Gruß

    Rainer
    @ RodFromGermany

    Guck mal hier:

    [VB 2010] DataGridView füllt sich in .NET 4.0 Framework nicht mehr

    Da hat jemand genau das gleiche Problem wie Du.

    Der hat rausgefunden das der Fehler nur bei ihm in der Kombi VS 2010 + Office 2010 (64 bit) + Framework 4.0 auftritt. Mit Framework 3.5 soll es bei ihm alles glatt laufen.

    Guck doch mal bei Dir nach ob es funzt wenn Du das Ziel-Framework auf 3.5 umstellst.

    EDIT: Siehe Thread oben für Details, aber es scheint ein Problem zwischen Framework 4.0 und 64-bit 12.0 Provider zu sein ... mit Framework 3.5 funzt es und mit 4.0 aber 32-bit 12.0 Provider funzt es so wie es aussieht auch.

    Gruß

    Rainer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „raist10“ ()