Problem bei Access DB mit Passwort

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Asana.

    Problem bei Access DB mit Passwort

    Huhu Leute,
    ich möchte über eine OleDBConnection auf meine .accdb Datei zugreifen, das funktioniert auch soweit super. Nun wollte ich im nächsten Schritt die Datei mit einem Passwort sichern, also musste ich den Connection String dementsprechend anpassen. Nun sieht mein Code wie folgt aus:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim con As New OleDb.OleDbConnection
    3. Dim filedialog As New OpenFileDialog
    4. With filedialog
    5. .Multiselect = False
    6. .Filter = "Microsoft Access Datenbank (*.accdb)|*.accdb"
    7. .FileName = ""
    8. End With
    9. If filedialog.ShowDialog = DialogResult.OK Then
    10. My.Settings.dbpfad = filedialog.FileName
    11. con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\PfadzurDatei\Datenbank.accdb;Jet OLEDB:Database Password=abcdefg;"
    12. 'Das ist der alte Connection String der funktioniert
    13. 'con.ConnectionString =
    14. '"Provider=Microsoft.ACE.OLEDB.12.0;" &
    15. '"Data Source=" & My.Settings.dbpfad & ""
    16. Try
    17. con.Open()
    18. Label1.Location = New Point(275, 197)
    19. Label1.Text = "Mit der Datenbank verbunden"
    20. Label1.ForeColor = Color.Green
    21. OK.Enabled = True
    22. Catch ex As Exception
    23. MsgBox(ex.Message)
    24. Label1.Location = New Point(265, 197)
    25. Label1.Text = "Keine Verbindung zur Datenbank"
    26. Label1.ForeColor = Color.Red
    27. OK.Enabled = False
    28. End Try
    29. End If
    30. End Sub


    Folgende Fehlermeldung erhalte ich beim Ausführen: "Datenbank '' konnte nicht geöffnet werden. Entweder wird die Datenbank nicht von Ihrer Anwendung erkannt, oder die Datei ist beschädigt"
    Letzeren Punkt kann ich ausschließen, Passwort habe ich bereits raus genommen und mit dem alten Connectionstring geöffnet -> hat alles wunderbar geklappt.

    Hat jemand eine Idee woran das liegen könnte?
    Danke erstmal an euch beiden, mein Passwort für die Datenbank ist zu Testzwecken "123" gewesen, daran liegts nicht.
    Mit dem ConnectionStringBuilder bin ich schon mal einen Schritt weiter gekommen.
    Folgendermaßen habe ich den String aufgebaut:

    VB.NET-Quellcode

    1. builder.ConnectionString = "Data Source=C:\PfadzurDatei\Datenbank.accdb"
    2. builder.Add("Provider", "Microsoft.ACE.OLEDB.12.0")
    3. builder.Add("Jet OLEDB:Database Password", "123")
    4. builder.Add("Jet OLEDB:System Database", "C:\PfadzurDatei\Datenbank.accdb") 'Ohne diese Zeile gibt es die gleiche Fehlermeldung

    Soweit so gut, die alte Fehlermeldung erscheint nun nicht mehr.
    Nun bekomme ich folgende Fehlermeldung:
    "Die Informationsdatei für Arbeitsgruppen des Microsoft Office Access-Datenbankmoduls kann nicht geöffnet werden."
    Laut Google liegt das an der System.mdw Datei im ...\AppData\Roaming\Microsoft\Access Verzeichnis, diese soll einfach gelöscht werden um das Problem zu lösen.
    Leider war dieser Lösungsansatz erfolglos für mich, bekomme weiterhin die Fehlermeldung das die Informationsdatei nicht geöffnet werden kann. (Programm wurde mit Adminrechten gestartet)

    Asana schrieb:

    "Jet OLEDB:System Database", "C:\PfadzurDatei\Datenbank.accdb") 'Ohne diese Zeile gibt es die gleiche Fehlermeldung
    Wenn du nicht mit dem "Access Workgroup Manager" arbeitest, ist diese Zeile völlig fehl am Platz.
    Und wenn, dann muss das eine .mdw-Datei sein und keine .accdb
    Das sind Relikte aus älteren Access-Versionen (bis 2003).

    Versuch einfach mal alle Varianten:
    connectionstrings.com/access/
    Beginne vielleicht damit:
    connectionstrings.com/microsof…driver/standard-security/
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Nein damit arbeite ich nicht, ich möchte nur eine ganz normale, selbst erstellte .accdb (2016) Datei mit meinem Programm öffnen.
    "ERROR [HY000] [Microsoft] [ODBC-Treiber für Microsoft Access] Datenbank '(unbekannt)' konnte nicht geöffnet werden. Entweder wird die Datenbank nicht von ihrer Anwendung erkannt, oder die Datei ist beschädigt."
    Bei:

    VB.NET-Quellcode

    1. conn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\PfadzurDatei\Datenbank.accdb;Pwd=123;"