ODBC??

  • VB6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Gast.

    ich habe ein kleines VB Programm etwickelt und davon ein setUp gemacht und installiert, jetzt habe ich es ausgeführt und es kommmt zu Fehlermeldung daß es kein Datenbank findet(test.mdb), könnte es sein daß ich den sogennaten ODBC Treiber installierem muss, wen ja wie kan ich es machen, ich habe WinXP rechner.
    die Verbindung zur Datenbank sieht so aus bei mir


    Public Sub OpenMDB()
    On Error Resume Next
    MDB_Pfad = App.Path & "\test.mdb"

    PW = ""
    Cs = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=" & PW & ";Persist Security Info=False;Data Source=" & MDB_Pfad & ";Mode=Read|Write"
    MDB.CursorLocation = adUseClient
    Do While MDB.State = 0 And x < 101
    x = x + 1
    MDB.Open Cs
    Loop
    If MDB.State = 0 Then
    MsgBox "Die Datenbank" & vbCr & "konnte nicht gefunden oder geöffnet werden !"
    End If
    On Error GoTo 0
    End Sub


    Also du benötigst in deinem Fall auf jeden Fall einen ODBC Treiber. Meiner Meinung nach wird dieser automatisch in das Setup Programm integriert und dann installiert. Aber scheinbar ist das nicht der Fall. Durchsuche doch mal die VB CD, vielleicht gibt es da ein ODBC Setup zur Weitergabe. Ansonsten kannst du es ja auch ohne ODBC machen. Dann musst du nur den Zugriff auf die Datenbank ändern, aber man kann ansonsten eine MDB Datei vollständig benutzen.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hi,

    die Datenbank ist aber schon dann im selben Ordner wie das ausgeführte Programm.

    Mit dem ODBC-Treiber hat das nix zu tun.

    a) WIN-XP bringt automatisch die Microsoft Data Access Components 2.6 mit, da ist ODBC drin
    b) du greifst mit dem OLEDB-Jet DB Treiber zu, da gibts kein ODBC

    Du musst aber schon ein Objekt MDB deklarieren als ADODB.Connection

    das "Mode=Read|Write" kenne ich nicht, hab ich auch noch nie benötigt, funzt daher auch ohne diese Angabe.

    zum Testen solltest du evt. aber mal diese doofe Fehlerbehandlung "On Error Resume Next" komplett rausnehmen, dann bekommst du sicher einen aussagekräftigeren Fehler angezeigt.

    Dein ConnectionString (Cs) sieht auch seltsam aus, versuchs mal so: (funzt bei mir immer)

    Cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MDB_Path & ";"

    die Credentials (User/PW) gibst du beim Öffnen an:
    mdb.open cs,user_id,pw

    die user_id bei Access-Datenbanken ist eigentlich immer "admin"

    Warum versuchst du es gleich so brutal, die DB 100 mal zu öffnen ... und schließen solltest du diese bei erfolgreicher Öffnung auch wieder.... Dein Quellcode macht auch mich einen sehr grausamen Eindruck, wer lehrt so etwas?

    1) Connection Objekt deklarieren
    2) ConnectionString definieren (provider, data source)
    3) Connection öffnen mit Angabe ConnectionString
    4) Aktionen durchführen
    5) Connection wieder schliessen

    Und wennschon Fehlerbehandlung, dann aber bitte ordentlich, lass dir die Fehlermeldung der Error-Objektes ausgeben und nicht so einen nichtssagenden Satz wie "konnte nicht geöffnet werden ... "

    Hoffe, du kommst auf den richtigen Weg,
    Gruß, pepi