안녕하세요
이것 저것 따라하면서 로그인까지는 잘 실행이 됩니다
로그인 후 어드민권한이 로그인 할때와 유저권한 사용자가 로그인할때 다르게하고 싶어요.
우선 pjtdetailDB라는 이름의 데이터시트가 있습니다
해당 pjtdetailDB 데이터시트 중에는 user 라는 항목이 있습니다.
또한 Pjtlist라는 이름의 폼이 있는데 이 폼은 prjdetailDB를 가지고 만들었습니다
ㅡ어드민 권한을 가진 사용자가 로그인시 pjtlist폼 실행
ㅡ유저 권한을 가진 사용자가 로그인시 pjtlist폼 실행 후 사용자 이름과 User 가 같은 항목만 보여주기.
If UserLevel = 1 Then ' for admin
DoCmd.OpenForm "pjtlist"
Else
DoCmd.OpenForm "Pjtlist"
End If 그리고 어떻게 써야 하나요?
Option Compare Database
Private Sub Command1_Click()
Dim User As String
Dim UserLevel As Integer
Dim TempPass As String
Dim ID As Integer
Dim UserName As String
Dim TempID As String
If IsNull(Me.txtUserName) Then
MsgBox "Please enter UserName", vbInformation, "Username required"
Me.txtUserName.SetFocus
ElseIf IsNull(Me.txtPassword) Then
MsgBox "Please enter Password", vbInformation, "Password required"
Me.txtPassword.SetFocus
Else
If (IsNull(DLookup("UserLogin", "tblUser", "UserLogin = '" & Me.txtUserName.Value & "' And UserPassword = '" & Me.txtPassword.Value & "'"))) Then
MsgBox "Invalid Username or Password!"
Else
TempID = Me.txtUserName.Value
UserName = DLookup("[UserName]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
UserLevel = DLookup("[UserType]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
TempPass = DLookup("[UserPassword]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
UserLogin = DLookup("[UserLogin]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
DoCmd.Close
If (TempPass = "password") Then
MsgBox "Please change Password", vbInformation, "New password required"
DoCmd.OpenForm "frmUserinfo", , , "[UserLogin] = " & UserLogin
Else
'open different form according to user level
If UserLevel = 1 Then ' for admin
DoCmd.OpenForm "pjtlist"
Else
DoCmd.OpenForm "pjtlist"
End If
End If
End If
End If
End Sub
Private Sub Form_Load()
Me.txtUserName.SetFocus
End Sub
용어가 조금 헷갈립니다만..
'pjtdetailDB' <-- 이것이 '데이터시트'라고 하셨는데요.. 이것이 테이블입니까? 폼 입니까?
테이블로 이해하고 답변 달겠습니다.
Pjtlist Form의 Open 이벤트에, 다음과 같은 코드를 달면 됩니다.
즉, Pjtlist 라는 이름의 폼이 열릴 때, 관리자가 아니라면 폼에 표시되는 데이터 원본이 자기 자신의 레코드만 표시되도록 제어하는 것 입니다.
항상 드리는 말씀입니다만, 파일을 첨부하시면 보다 나을 것 같습니다. ^^