私は現在、プロジェクトに取り組んでいます.Windowsのログイン情報をMS Accessのログイン情報として使用して、そこにアクセスして、システム。私は以前これをやったことはありませんが、テーブルからデータを引き出すAccessのログイン画面を設定しました。私は正常にユーザーのWindowsログインを取得するコードがありますが、後に問題があります。テーブル名はtblUserで、ユーザーは一般ユーザー、人事管理、管理者です。現在、テーブルでは、私は= 3MS Accessで使用されている役割ベースのアクセス制御
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テーブル、rolesテーブル、user_vs_rolesテーブルを持つ必要があります。最後に、ログイン、ログアウト、役割の割り当て、ログインしているユーザーに対するユーザーの役割の読み取り/検証の方法 –