Hallo Zusammen,
Ich verwende Access UDF ( https://www.autoitscript.com/forum/topic/177556-yet-another-access-udf-but-different-accdb-only) und möchte eine passwortgeschützte „accdb“-Datenbank öffnen. Mit der benutzten Access UDF klappt das im Standard nicht, obwohl mit .
Meine Lösung, ich habe den Connection_String in der Funktion angepasst.
$Connection_String = "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & $DBPath & ";Jet OLEDB:Database Password=" & $PassWord
Wie kann ich das nun sauber in die UDF integrieren? Habe im engl. Forum da auch bereits angefragt, da ja sicher andere auch das Problem haben.
AutoIt
Global $Connection = _Start_Connection($dbname, "", "password") ; mein codeabschnitt im Script
; folgend die Funktion in der access.udf
#Region - Function _Start_Connection
; #FUNCTION# ====================================================================================================================
; Name ..........: _Start_Connection
; Description ...: This function will start or open a new connection.
; Syntax ........: _Start_Connection($DBPath [, $UserName = ""[, $PassWord = ""]])
; Parameters ....: $DBPath - Path of your Access database file.(with *.accdb extension and a ";" sign at the end")
; $UserName - [optional] Username of your database . Default is "".
; $PassWord - [optional] Password of your database. Default is "".
; Return values .: String. If connection is opneed then, it will be "OK". And if it is failed then, "Failed " & @error
; Author ........: spudw2k. I've made a little change to this function
; Modified ......: 2015 sep
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: _Start_Connection(@ScriptDir & "\TestDB.accdb;")
; ===============================================================================================================================
Func _Start_Connection($DBPath, $UserName = "", $PassWord = "")
If Not IsObj($objConnection) Then Return -1
$Connection_String = $sDataProvider & $DBPath & ";"
If $UserName Then $Connection_String &= "User ID=" & $UserName & ";"
If $PassWord Then $Connection_String &= "Password=" & $PassWord & ";"
; mit dem angepassten String funktioniert das öffnen
$Connection_String = "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & $DBPath & ";Jet OLEDB:Database Password=" & $PassWord
$objConnection.Open($Connection_String)
If @error Then $ConnStatus = "Failed " & @error
Return $ConnStatus
EndFunc
#EndRegion
Alles anzeigen
Danke
Gruß Marcel