PDA

Vollständige Version anzeigen : anmeldefunktion über ein formular


dmsman
27.06.2001, 08:55
hi,
hab mal eine allg. frage:
wie sollte ich am besten meine user verwalten ich hab ein projekt dokumentenmanagement und will dass sich alle user über ein anmeldeformular anmelden mit name & passwort.
wie soll ich am besten vorgehen die user in einer eigenen tabelle speichern oder gibts schon vorgegebene formulare mit code hinterlegt ?

Ohnesorg
27.06.2001, 09:11
Hallo dmsman,

soll eine eigene Benutzerverwaltung für die Datenbank verwendet werden - anstelle der standardmäßigen Funktion mit Gruppenkonto etc - muss eine Extratabelle mit allen Userangaben, die Du benötigst, eingerichtet werden.
Ein beliebiges Formular kann auf diese Tabelle anschließend zugreifen und den Usernamen mit dessen Passworteingabe vergleichen und weitere Aktionen ausführen.

Ein Standardmäßiges Formular über einen Assistenten o. ä. ist mir nicht bekannt.
Evtl. Hat sich irgendwer schon einmal hingesetzt und ein Add-In dafür programmiert.

dmsman
27.06.2001, 09:22
Hi Ohnesorg :)
Ja es soll eine eigene Benutzerverwaltung verwendet werden ! ich hab schon eine tabelle mit der userid, name und passwort ! ein anmeldeformular so wie bei nt gibts auch!doch wie kann ich jetzt überprüfen wenn der user seinen namen und kennwort in das entspr. feld eingibt und dann mit ok zum hauptformular gelangen will? danke

realneo
27.06.2001, 09:30
ich hätte eine möglichkeiot für dich:

Lege eine Tabelle an:

Username | Paßwort | Formularname

Hir werden dann alle User eingetragen. Dann creirst du einen Startbildschirm, in
dem der Username und das Paßwort eingegeben werden. Mit diesen Daten suchst Du
in Deiner Tabelle und öffnest das eingetragene Formular.

Dim DB as Database
Dim R as Recordset
Dim Name as string
Dim Passwort as string
Dim UserFormular as string

Name = StartFormular.txtUser
Passwort = StartFormular.txtPasswort
set DB = CurrentDB
set R = DB.OpenRecordset("SELECT * FROM UserTabelle WHERE USERNAME = """ &
Name & """ AND Paßwort = """ & Passwoer & """")

if not r.eof then
docmd.openform R!Formularname
else
msgbox "Falscher Username bzw. falsches
Paßwort!"
end if

gruß marcus

realneo
27.06.2001, 09:36
sorry war ein kleiner fehler drin ...:

Dim DB as Database
Dim R as Recordset
Dim Name as string
Dim Passwort as string
Dim UserFormular as string

Name = StartFormular.txtUser
Passwort = StartFormular.txtPasswort
set DB = CurrentDB
set R = DB.OpenRecordset("SELECT * FROM UserTabelle WHERE USERNAME = """ &
Name & """ AND Paßwort = """ & Passwort & """")

if not r.eof then
docmd.openform R!Formularname
else
msgbox "Falscher Username bzw. falsches Paßwort!"
end if

gruß marcus

dmsman
27.06.2001, 09:50
Hi realneo

:Lege eine Tabelle an:
hab ich angelegt name ist: tblBenutzer !

aber ohne den Formularnamen !
Username | Paßwort | Formularname

und ein startformular wo der user seinen Namen und Passwort eintragen kann und mit dem ok-button bestätigt.
also nochmal tabelle: tblBenutzer
anmeldeformular: frmAnmelden
und wie verfolständige ich jetzt deinen code?

Dim DB as Database
Dim R as Recordset
Dim Name as string
Dim Passwort as string
Dim UserFormular as string

Name = StartFormular.txtUser 'meinst du hier das startformular? er erkennt aber frmAnmelden nicht !

Passwort = StartFormular.txtPasswort
set DB = CurrentDB
set R = DB.OpenRecordset("SELECT * FROM UserTabelle WHERE USERNAME = """ &
Name & """ AND Paßwort = """ & Passwoer & """")

if not r.eof then
docmd.openform R!Formularname 'welcher formularname ?
else
msgbox "Falscher Username bzw. falsches
Paßwort!"
end if

und danke für deine hilfe ich glaub du kannst mir viel weiterhelfen :)

ps:hab übrigens den vbcode auf den ok-button gelegt !

realneo
27.06.2001, 10:11
Dim DB as Database
Dim R as Recordset
Dim Name as string
Dim Passwort as string
Dim UserFormular as string

Name = frmanmelden.txtUser
Passwort = frmanmelden.txtPasswort
set DB = CurrentDB
set R = DB.OpenRecordset("SELECT * FROM UserTabelle WHERE USERNAME = """ &
Name & """ AND Paßwort = """ & Passwort & """")

if not r.eof then
docmd.openform R!Formularname
else
msgbox "Falscher Username bzw. falsches Paßwort!"
end if

so, also mein code war so gedacht, das du zb. dem username 'admin' das formular 'frmadmin' zuweist un dem 'user1' das formular 'frmuser' zuweist, falls du das nicht brauchst, schreib halt autom. bei jedem username das selbe formular hin, ich finde diese funktion aber durchaus praktich da du ja dann auch jedem benutzer ein zugeschnittenes formluar erstellen kannst ...... (Rechte)

gruß marcus

realneo
27.06.2001, 10:15
Dim DB as Database
Dim R as Recordset
Dim Name as string
Dim Passwort as string
Dim UserFormular as string

Name = frmanmelden.txtUser
Passwort = frmanmelden.txtPasswort
set DB = CurrentDB
set R = DB.OpenRecordset("SELECT * FROM tblBenutzer WHERE USERNAME = """ &
Name & """ AND Paßwort = """ & Passwort & """")

if not r.eof then
docmd.openform R!Formularname
else
msgbox "Falscher Username bzw. falsches Paßwort!"
end if

hab jetzt auch die Tabelle eingebaut, was du jetzt blos noch beachten musst ist, das auf dem formular frmanmelden, die felder : 'txtUser' & 'txtPasswort' heißen müsssen

gruß marcus

dmsman
27.06.2001, 10:39
hi,
also ich hab jetzt folgenden code eingefügt:

Private Sub Befehl4_Click() ' OK Button im Anmeldeformular
Dim DB As Database
Dim R As Recordset
Dim Name As String
Dim Passwort As String
Dim UserFormular As String
Dim frmHauptformular As Form_frmHauptformular
Dim frmAnmelden As Form_frmAnmelden


Name = frmAnmelden.lblname 'hier sagt er "Objektvariable oder With-Block nicht definiert
'mein textfeld wo der user seine kennung eingibt heisst aber lblname im anmeldeformular!
Passwort = frmAnmelden.lblkennwort

Set DB = CurrentDb
Set R = DB.OpenRecordset("SELECT * FROM tblBenutzer WHERE NAME = """ & Name & """ AND KENNWORT = """ & Passwort & """")

If Not R.EOF Then
DoCmd.OpenForm frmHauptformular
' Das soll er laden bei Übereinstimmung oder muss ich das Formular wie du angeben mit R!frmHauptformular ?

Else
MsgBox "Falscher Username bzw. falsches Passwort"

End If
End Sub

sagt dir der oben genannte fehler was?

dmsman
27.06.2001, 12:27
Hey realneo,
ich hab leider noch nicht das problem lößen können bin aber kurz davor kannst du mir vielleicht nochmal helfen ? oder einer von euch ? bitte :)
cua

kama
27.06.2001, 12:55
Ich habe dir mal ein kleines Bespiel gemailt

dmsman
27.06.2001, 13:45
also allen vielen dank für die hilfe ich bin jetzt gleich nach absprache mit meinem chef auf die standard-access-benutzerverwaltung umgestiegen ist viel einfach nach dem motto never change a runnign system :)
trotzdem danke für eure hilfe
aber ich hab noch eine menge fragen auf lager zwecks meiner facharbeit :))
cua