Problem mit Dataset-Objekt und Access-Datenbank

16/11/2008 - 15:41 von Manfred Zirk | Report spam
Hallo Leute,

ich habe folgendes Problem beim Zugriff auf eine gesicherte Access-Datenbank:
(Diverse Benutzer angelegt mit verschiedenen Rechten)

Im Dataset-Objekt habe ich zwar die System-Datenbank eingetragen, jedoch
erhalte ich die Fehlermeldung:

Die Anwendung kann nicht gestartet werden.
Die Informationsdatei für die Arbeitsgruppe fehlt oder ist exklusiv von
einem andern Benutzer geöffnet.

Einen anderen Benutzer kann ich ausschließen.
Ich nehme an, das mit der Informationsdatei die System.mdw von Access
gemeint ist.

EIne Verbindung zu einer ungesicherten Datenbank funktioniert.

Was mache ich falsch?

Ich wàre für einen Tip dankbar.

Grüße

Manfred
 

Lesen sie die antworten

#1 Peter Götz
16/11/2008 - 16:23 | Warnen spam
Hallo Manfred,

ich habe folgendes Problem beim Zugriff auf eine
gesicherte Access-Datenbank:
(Diverse Benutzer angelegt mit verschiedenen Rechten)

Im Dataset-Objekt habe ich zwar die System-Datenbank
eingetragen,



Im DataSet?
Wo bzw. wie genau hast Du da was eingetragen?

Den Pfad zur System.mdw musst Du beim Connection-
Objekt angeben.

jedoch erhalte ich die Fehlermeldung:

Die Anwendung kann nicht gestartet werden.
Die Informationsdatei für die Arbeitsgruppe fehlt
oder ist exklusiv von einem andern Benutzer geöffnet.



Diese Fehlermeldung wird überlicherweise ausgegeben,
wenn kein oder ein falscher Pfad zur System.mdw
übergeben worden ist.

Einen anderen Benutzer kann ich ausschließen.
Ich nehme an, das mit der Informationsdatei die
System.mdw von Access gemeint ist.



Ja, die ist gemeint.

EIne Verbindung zu einer ungesicherten Datenbank
funktioniert.

Was mache ich falsch?



Schwer zu sagen, wenn man nicht weiss, was Du
überhaupt machst.

So etwa sollte das Erstellen und Öffnen einer Connection
zu einer Jet-Datenbank (*.mdb), die via System.mdw
geschützt ist aussehen:

Private Function ConnectSecuredJetDB _
(ByVal DBFile As String, _
ByVal UserID As String, _
ByVal PassWord As String _
) As OleDbConnection

' ConnectionString mit Hilfe des
' ConnectionStringBuilders erstellen
Dim CSB As New OleDbConnectionStringBuilder
With CSB
.Provider = "Microsoft.Jet.OLEDB.4.0"
.DataSource = DBFile

' Connectionpooling ausschalten
.OleDbServices = -4

.Add("Password", PassWord)
.Add("User ID", UserID)

' DB im geteilten Modus öffnen
.Add("Mode", "Share Deny None")

' Pagelocking ab Access-Version 2000
.Add("Jet OLEDB:Database Locking Mode", 1)
End With

' Neue Instanz einer OleDbConnection erstellen
Dim Cnn As New OleDbConnection(CSB.ConnectionString)

' Connection öffnen
Try
Cnn.Open()
Return Cnn
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
Return Nothing
End Try
End Function


Mehr dazu findest Du unter

www.gssg.de -> Visual Basic -> VB.net
-> OLEDB1 (Access.mdb)

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen