Auf AccessDB mit Passwort per VB/A zugreifen

Moin,

kann mir einer erklären, wie ich bei einem Zugriff auf eine paßwortgeschützte Access-DB per VB (VBA) ein Paßwort übermitteln kann?

So sieht der Code bisher aus:

Dim DBS as Database
Dim WKS as Workspace

Set WKS=DBEngine.Workspaces(0)
Set DBS=WKS.OpenDatabase(„C:\Test.mdb“,":stuck_out_tongue_winking_eye:WD=password")

Nach der MSDN müßte ich so doch das Passwort an Access übermitteln, oder?

Für Hilfe bin ich dankbar!

Gruß aus Bremen,
Tom

„Con“ ist dabei eine definierte ADODB-Connection

con.ConnectionString = „Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\DeinPfad\DeinDBName.mdb;Jet OLEDB:smiley:atabase Password=DeinBenötigtesPasswort“

Gruß aus Finnland
Stephan

Um welche Art von Passwort geht es? Das Datenbankkennwort oder den Zugriffsschutz auf Benutzerebene?

Welches Datenzugriffsmodell willst du verwenden? Dein Beispiel ist DAO, Stephans Tipp ADO…

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

Na ja, denn spielen wir doch ein bisschen rum. Andenkbar wäre somit auch, beim Starten einer DB (per Makro „autoexec“ --> Einzige Aktion: AusführenCode, mit einem einzigem Argument: OpenDB() - untenstehendes Modulgerät aufzurufen). Das wäre zum Beispiel absolut DAO-fähig und bezieht sich auf ein simples Datenbankkennwort. Ist hoffentlich ausbaufähig, hier nur unausgereifter Denkansatz! Gleichzeitig hättest Du herrlichen Zugriff auf z.B. RecordSet-Objekte in allen Formularmodulen.

Gruß aus Finnland
Stephan

Option Compare Database
Option Explicit
Public OpenServerDB As DAO.Database

Function OpenDB()
Dim dbName As String
Dim pwd As String

On Error GoTo NoServerFound

'untenstehende Variante geht auch: Rechnername-Freigabename
'dbName = „\workstation4711odersoähnlich\DeineAnzusprechendeDatenbank.mdb“

'Oder Konkret
dbName = „J:\DeineAnzusprechendeDatenbank.mdb“ 'Beispielpfad, indiv. ersetzen bitte
pwd = „;pwd=LassMichDeinPWerraten“ 'Nochmal Beispiel

'Set OpenServerDB = OpenDatabase(„J:\DeineAnzusprechendeDatenbank.mdb“)
Set OpenServerDB = DBEngine.Workspaces(0).OpenDatabase(dbName, False, False, pwd)
DoCmd.OpenForm („Login“) ‚z.B., Passwortübergabe erfolgreich, mach‘ jetzt was

BadStart:
Exit Function

NoServerFound: DoCmd.OpenForm („frm_StartError“) 'Passwortübergabe geht schief, mach was.
Resume BadStart

End Function

Also jedenfalls geht’s bei mir so.