PDA

Vollständige Version anzeigen : Die verschiedenen Logins! Bringen nur Kopfzerbrechen.


Angel
02.11.2000, 07:35
Ich habe eine Datenbank. Nun versuche ich diese möglichts Anwenderfreundlich zu gestalten. Ich versuche anhand des NT Logins die Security von ACCESS zu setzen. Kennt sich da jemand aus?
Ich habe bereits ein Modul, welches den Login bestimmt. Was ich noch brauche währe erstens mal ein Event der vor dem laden der Datenbank auslöst. Als zweites eine Variable wo mann den Benutzer editieren kann.
Oder kennt jemand einen ganz anderen Lösungsansatz ?

Bin über jeden Beitrag erfreut
Angel

MarkusR
02.11.2000, 11:28
Verpacke den Login in eine seperate start-Datenbank ohne zugriffsberechtigung und starte die Applikation dann mit dem "shell" Shell-Befehl z.B.

Kleiner Auszug aus einer ähnlichen lösung (Access Benutzer muss gleich heisen wie NT Benutzer):

Option Compare Database
Option Explicit

Const mMdwFile_str As String = "mdwDatei.mdw"
Const mAppFile_str As String = "App.mdb"
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Function currentWinUser() As String
Dim str As String
Dim str_len As Long
Dim retVal As Long
str_len = 255

str = Space(str_len) + Chr(0)
retVal = GetUserName(str, str_len)
str = Left(str, str_len - 1)
currentWinUser = str
End Function

Function start()
Dim usr_str As String
usr_str = currentWinUser()
Dim new_wsp As Workspace
Dim new_dbe As PrivDBEngine
Dim start_str As String
Dim curPath_Str As String
Dim mdwPath_Str As String
Dim appPath_str As String
Dim ret

On Error Resume Next

curPath_Str = "C:\programme\myApp\" 'currentDBPath
mdwPath_Str = curPath_Str + mMdwFile_str
appPath_str = curPath_Str + mAppFile_str

Set new_dbe = New PrivDBEngine
new_dbe.SystemDB = mdwPath_Str

Set new_wsp = new_dbe.CreateWorkspace("abc", usr_str, "standardKennwort")
If Err = 0 Then
start_str = SysCmd(acSysCmdAccessDir) + "MSACCESS.exe "
start_str = start_str + """" + appPath_str + """" + " /wrkgrp """ + _
mdwPath_Str + """ /user " + usr_str + " /pwd " + "standardKennwort"
Debug.Print start_str
ret = Shell(start_str, vbMaximizedFocus)
Quit
Else
MsgBox "Sie sind nicht berechtigt das Programm zu starten!", vbInformation, "Anmeldung"
Quit
End If
End Function


Die Funktion start kann z.B. via autoexec-Makro aufgerufen werden

Man kann das ganze natürlich so umbauen, dass man eine Anmeldemaske mit vorbesetztem Benutzernamen hat.