[ACCES 2010|VB.NET] Provider kann nicht gefunden werden.

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    [ACCES 2010|VB.NET] Provider kann nicht gefunden werden.

    Hallo!

    Seit kurzem habe ich mich damit beschäftigt, ein Programm mit Database zu programmieren (Für die Datenbank nutze ich Acces 2010). Leider bekomme ich immer den Fehler
    'Der Provider kann nicht gefunden werden. Möglicherweise ist er nicht richtig installiert worden."
    Hier der Quellcode:
    (Fehler ist in Zeile 17-18)

    VB.NET-Quellcode

    1. Public Function Login()
    2. Dim DBConn As New ADODB.Connection
    3. Dim User As New ADODB.Recordset
    4. Dim Username As String
    5. Dim UserDB As String
    6. Dim passDB As String
    7. Dim UserFound As Boolean
    8. Dim loginerror As String
    9. DBConn.Open("Provider=Microsoft.ACE.OLEDB.12.0;" & _
    10. "Data Source = `" & Application.StartupPath & "\DLD.accdb")
    11. User.Open("UserTable", DBConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
    12. UserFound = False
    13. Login = False
    14. Username = "Username = `" & txtUser.Text & "`"
    15. Do
    16. User.Find(Username)
    17. If User.BOF = False And User.EOF = False Then
    18. UserDB = User.Fields("Username").Value.ToString()
    19. passDB = User.Fields("Password").Value.ToString()
    20. If UserDB <> txtUser.Text Then
    21. User.MoveNext()
    22. Else
    23. UserFound = True
    24. If passDB = txtPass.Text Then
    25. User.Close()
    26. DBConn.Close()
    27. Return True
    28. Else
    29. loginerror = "Invalid Password"
    30. User.Close()
    31. DBConn.Close()
    32. Return False
    33. End If
    34. End If
    35. Else
    36. loginerror = "Invalid Username"
    37. User.Close()
    38. DBConn.Close()
    39. Return False
    40. End If
    41. Loop Until UserFound = True
    42. User.Close()
    43. DBConn.Close()
    44. Return False
    45. End Function


    Ich habe keine Ahnung, was den Fehler verursacht. Hoffentlich kann mir hier jemand helfen!

    MfG vich
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    HolySandvich schrieb:


    DBConn.Open("Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source = `" & Application.StartupPath & "\DLD.accdb")


    Schau Dir mal die Zeichenfolge genau an. Dann wirst Du sehen, dass am Ende ein "`" fehlt.
    Versuche es mal so:

    Visual Basic-Quellcode

    1. DBConn.Open("Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source = `" & Application.StartupPath & "\DLD.accdb") & "`"
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    üblicherweise rate ich davon ab, Datenbanken zu benutzen, bevor die Anwendung fertig ist.
    Weil so viele annere Dinge sind vorher zu bewältigen:
    vier Views-Videos
    Daten laden und speichern
    oder überhaupt Datenverarbeitungs-Vorraussetzungen

    Zu 70% schert das die Leuts einen Dreck, weil sie wollen Datenbank wursteln, und dass sie sich mit ihren Krepel-Ansätzen alles verbauen stört sie auch nicht, denn sie lernen es ja garnet erst kennen.

    Aber mit VS2013 dann nochmal mit Adodb.Recordsets einzusteigen ist doch bischen heftig.
    Gugge mindestens "Datenbank in 10 Minuten" oder wenn du meinen selbstgebastelten Tuts nicht traust: Forms over Data-Videos

    INOPIAE schrieb:

    HolySandvich schrieb:


    DBConn.Open("Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source = `" & Application.StartupPath & "\DLD.accdb")


    Schau Dir mal die Zeichenfolge genau an. Dann wirst Du sehen, dass am Ende ein "`" fehlt.
    Versuche es mal so:

    Visual Basic-Quellcode

    1. DBConn.Open("Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source = `" & Application.StartupPath & "\DLD.accdb") & "`"


    Sobald ich das "`" hinzufüge, bekomme ich den Fehler "end-of Anweisung erwartet".
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    ErfinderDesRades schrieb:

    der fehler ist so blöd - das sollteste selbst finden - ist übrigens schon bei INOPane fehlerhaft.

    Du magst sagen, solch post ist nicht hilfreich, aber isser vlt. doch, indem ich dir zutraue, das eiglich bereits selbst bewerkstelligen zu können.
    Sollte ich mich irren, frag einfach nochmal.


    OK, hab den Fehler jetzt auch erkannt und behoben. Das erklärt aber immernoch nicht die Sache mit dem Provider!
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    HolySandvich schrieb:

    'Der Provider kann nicht gefunden werden. Möglicherweise ist er nicht richtig installiert worden."
    Da gibts einen berühmten Bug mit Office.
    Hat iwas mit x64-Maschinen zu tun.
    Variiere mal deine Compilier-Optionen x64 - x86 - hat bei mir mal geholfen.
    Oder google mal "ace oledb x86"