현재 프로젝트에서 작업 중 하나는 사용자의 Windows 로그인을 사용하여 MS Access의 로그인으로 사용하는 것입니다. 체계. 나는 전에 이것을 해본 적이 없지만 Access에서 테이블의 데이터를 가져 오는 로그인 화면을 설정했습니다. 나는 성공적으로 사용자의 Windows 로그인을 가져 오는 코드가 있지만 이후에 문제가 있습니다. 테이블 이름은 tblUser이고 사용자는 일반 사용자, HR 및 Admin입니다. 현재 테이블에서 나는 = 3역할 기반 액세스 제어는 MS 액세스에서 사용
The Login Screen:
Log On
General User
HR
Admin
Code that pulls the user information:
Private Sub Form_Load()
Stop
Debug.Print Environ("UserName")
Debug.Print Environ$("ComputerName")
Dim strVar As String
Dim i As Long
For i = 1 To 255
strVar = Environ$(i)
If LenB(strVar) = 0& Then Exit For
Debug.Print strVar
Next
End Sub
관리 아래는 내가 과거에 내 로그인 화면을 위해 만들어진 코드입니다, 일반 사용자 = 1, HR = 2로 번호를 부여 역할을합니다. 모든 것을 그려내는 것만 큼 똑같은 과정 인 것처럼 보이지만 확실하지는 않습니다. 아래 코드에서 할 수있는 일이 있습니까?
Private Sub btnLogin_Click()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("tblUser", dbOpenSnapshot, dbReadOnly)
rs.FindFirst "UserName='" & Me.txtUserName & "'"
If rs.NoMatch = True Then
Me.lblWrongUser.Visible = True
Me.txtUserName.SetFocus
Exit Sub
End If
Me.lblWrongUser.Visible = False
If rs!Password <> Nz(Me.txtPassword, "") Then
Me.lblWrongPass.Visible = True
Me.txtPassword.SetFocus
Exit Sub
End If
Me.lblWrongPass.Visible = False
If rs!EmployeeType_ID = 3 Then
Dim prop As Property
On Error GoTo SetProperty
Set prop = CurrentDb.CreateProperty("AllowBypassKey", dbBoolean, False)
CurrentDb.Properties.Append prop
SetProperty:
If MsgBox("Would you like to turn on the bypass key?", vbYesNo, "Allow Bypass") = vbYes Then
CurrentDb.Properties("AllowBypassKey") = True
Else
CurrentDb.Properties("AllowBypassKey") = False
End If
End If
DoCmd.OpenForm "frmPersonal_Information"
DoCmd.Close acForm, Me.Name
End Sub
나는 이것이 내가 성취하려는 것을위한 충분한 정보가되기를 바랍니다. 더 이상 필요한 정보가 있으면 알려주십시오. 고맙습니다.
분할되지 않은 액세스의 로그인 화면은 농담입니다. 어쨌든, 모든 회원/역할 모델처럼 사용자 테이블, 역할 테이블, user_vs_roles 테이블이 있어야합니다. 마지막으로 로그인, 로그 아웃, 역할 할당, 로그인 한 사용자에 대한 사용자 역할 읽기/확인 방법 –