MS Access - Zugriff auf passwortgeschützte MDB über OLEDB

  • Hallo,
    benutze schon seit längerem über autoit den zugriff auf access mdb's!

    jetzt wurde die mdb mit Datenbankpasswort zum öffnen versenhen und ich war auf der suche nach einer lösung, um dies mit der access.au3 zu lösen, aber ohne erfolg, bis ich über google gefunden habe, wo man das passwort übergeben kann ...

    [autoit]


    $adoCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password=12345678; Data Source=" & $_dbname)

    [/autoit]


    hier mal eine kleines beispiel, welches eine spalte einer tabelle ausliest ..

    Spoiler anzeigen
    [autoit]


    $s_dbname = @scriptdir & "\DB\test\test1_1.mdb"
    $s_db_pwd = "12345678"

    [/autoit] [autoit][/autoit] [autoit]

    ; table
    $tbln_1 = "Adressenliste"
    $fldn_1 = "Vorname" ;bla
    $format = "Text(150)"

    [/autoit] [autoit][/autoit] [autoit]

    $query = "SELECT * FROM " & $tbln_1
    $strData = _ReadOneFld($query, $s_dbname, $fldn_1) ; db auslesen
    MsgBox(0,"",$strData)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _ReadOneFld($_sql, $_dbname, $_field)
    Dim $_output
    $adoCon = ObjCreate ("ADODB.Connection")
    $adoCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password=" & $s_db_pwd & "; Data Source=" & $_dbname)
    $adoRs = ObjCreate ("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open ($_sql, $adoCon)

    [/autoit] [autoit][/autoit] [autoit]

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields ($_field).Value & @CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc ;==>_ReadOneFld

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    vielleicht benötigt es mal jemand :)

    gruß gmmg