Visual Basic und Access Datenbank

22/04/2008 - 12:49 von Chris | Report spam
Hallo.
Ich habe eine Problem mit Visua Basic.Net 2008 und Access 2003.
Ich möchte bei meinem Programm ein LogIn-Fenster machen. Nach Eingabe des
Benutzername und des Passwortes sollen diese beiden nun mit der Access
Datenbank verglichen werden. In der access Datenbank sind mehrere Benutzer
mit (EmployeeId) mit natütlich jeder einem eigenen Passwort (SystemPwd).
Stimmen die Angaben mit denen der Datenbank überein, soll es weitergehen,
ansonsten soll eine Error-Meldung erscheinen. Die Datenbank, die ich benutze,
ist lokal und wird als o(hoffe ich zumindest*g*) über OLE geöffnet.
Mein Problem ist jetzt, wie ich diese Verbindung zusammenbringe und die
Daten vergleiche (einlesen is die Textbox hab ich bereits geschafft, nur ist
das leider unzureichend).
Ich hoffe mir kann jemand weiterhelfen.
 

Lesen sie die antworten

#1 Peter Götz
22/04/2008 - 16:06 | Warnen spam
Hallo Chris,

Ich habe eine Problem mit Visua Basic.Net 2008
und Access 2003.
Ich möchte bei meinem Programm ein LogIn-Fenster
machen. Nach Eingabe des Benutzername und des
Passwortes sollen diese beiden nun mit der Access
Datenbank verglichen werden.



Wg. "Benutzername" und "Passwort" rate ich jetzt mal,
dass Deine *.mdb auf Benutzerebene via System.mdw-
Datei geschützt ist.

Da kann nichts verglichen werden.
Du musst einfach versuchen Deine Connection zu
öffnen und dann gibt es zwei Möglichkeiten:

a) UserID und Passwort waren ok,
die Connection wird geöffnet

b) UserID und/oder Passwort sind fehlerhaft,
die Connection wird nicht geöffnet.
Connection.Open löst eine Exception aus.


In der access Datenbank sind mehrere Benutzer
mit (EmployeeId) mit natütlich jeder einem eigenen
Passwort (SystemPwd).



Die sind nicht in der Datenbank (*.mdb) sondern in
der SystemDB (*.mdw).

Stimmen die Angaben mit denen der Datenbank überein,
soll es weitergehen, ansonsten soll eine Error-Meldung
erscheinen. Die Datenbank, die ich benutze, ist lokal und
wird als o(hoffe ich zumindest*g*) über OLE geöffnet.



Was heisst "Du hoffst, dass die DB über Ole geöffnet wird?

Wer sonst soll denn wissen, wie Du die *.mdb geöffnet hast,
bzw. öffnen willst.

Mein Problem ist jetzt, wie ich diese Verbindung
zusammenbringe und die Daten vergleiche (einlesen
is die Textbox hab ich bereits geschafft, nur ist
das leider unzureichend).
Ich hoffe mir kann jemand weiterhelfen.



So öffnest Du eine OleDB.OleDbConnection zu einer *.mdb:

Private mCNN As OleDbConnection

Private Sub AnySub()
Dim DBName As String = "C:\Verzeichnis\DB.mdb"
Dim SysDBName As String = "C:\Verzeichnis\DeineSystem.mdw"
Dim Pwd As String = "Benutzername"
Dim UserID As String = "BenutzerPasswort"

Dim CSB As New OleDbConnectionStringBuilder
With CSB
.Provider = "Microsoft.Jet.OLEDB.4.0"
.DataSource = DBName
.OleDbServices = -1
.Add("Jet OLEDB:System DataBase", SysDBName)
.Add("Jet OLEDB:Database Locking Mode", 1)
.Add("Mode", "Share Deny None")
.Add("Password", Pwd)
.Add("User ID", UserID)
End With

mCNN = New OleDbConnection(CSB.ConnectionString)
Console.WriteLine(CSB.ConnectionString)

Try
mCNN.Open()
MsgBox("Connection geöffnet!", MsgBoxStyle.Information)
Catch EXO As OleDbException
If EXO.Errors(0).SQLState = "3029" Then
MsgBox("UserID oder Passwort ungültig",
MsgBoxStyle.Exclamation)
Else
MsgBox(EXO.Message)
End If
Catch Ex As Exception
MsgBox(Ex.Message, MsgBoxStyle.Exclamation)
End Try

mCNN.Close()

End Sub

Vorstehender Code gilt für eine per System.mdw,
also auf Benutzerebene geschützte *.mdb.
Wenn Du dagegen eine durch ein internes Datenbank-
Kennwort geschützte *.mdb öffnen willst, dann schau Dir
mal das Beispiel unter

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

an.

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

Ähnliche fragen