|
1.用户注册:注册(并将信息导入表“用户密码表”);用户名限制为字母和数字(6-12),若超出限制提示“用户名非法,请重新输入!”;检验“确认密码”是否与“输入密码”相同,相同提示“密码确认”,不同提示“密码不相同,请重新输入”(提示就像我做的那个检验用户名样的)
答案:
(1)设置Me.Text1.InputMask = "aaaaaaaaaaaa"后,不可能超出限制,既然不可能超出限制,提示也就毫无意义。
(2)在Text7右侧添加一名为“密码校验”的标签,然后再Text7的更新后事件中写如下代码:
Private Sub Text7_AfterUpdate()
If Nz(Me.Text4.Value, "") <> "" And Me.Text7.Value = Me.Text4.Value Then
Me.密码校验.Caption = "输入正确!"
Else
Me.密码校验.Caption = "密码不同!"
End If
End Sub
(3)注册按钮的单击事件中写如下代码:
Private Sub 注册_Click()
Dim strsql As String
DoCmd.SetWarnings False
If Me.校验.Caption = "用户名可以使用" And Me.密码校验.Caption = "输入正确!" Then
strsql = "INSERT INTO 用户密码表 ( 用户名, 密码, 姓名, 性别, [E-mail], 类别 ) "
strsql = strsql & " VALUES ('" & Me.Text1.Value & "','" & Me.Text7.Value & "','" & Me.Text12.Value & "','" & Me.Combo22.Value & "','" & Me.Text16.Value & "','用户')"
DoCmd.RunSQL strsql
Else
MsgBox "用户名或密码错误!"
End If
End Sub
2.报表:显示用户及其登录时间、离开时间
答案:
(1)在模块a的最上端写如下代码:
Option Compare Database
Option Explicit
Public str用户名 As String
Public str类别 As String
(2)在登录窗体的确定按钮的单击事件中加如下代码:
Dim strsql As String
DoCmd.SetWarnings False
strsql = "INSERT INTO 浏览登记 ( 用户名, 类别, 登陆时间 ) "
strsql = strsql & "VALUES ('" & Me.Combo用户名.Value & "','"
strsql = strsql & DLookup("类别", "用户密码表", "用户名='" & Me.Combo用户名.Value & "'") & "',#" & Now() & "#)"
DoCmd.RunSQL strsql
(3)在退出系统的某个按钮中加如下代码:
Dim strsql As String
If Nz(str用户名, "") <> "" Then
DoCmd.SetWarnings False
strsql = "UPDATE 浏览登记 SET 浏览登记.离开时间 = #" & Now() & "#"
strsql = strsql & " WHERE ID=" & DMax("ID", "浏览登记", "用户名='" & str用户名 & "'")
DoCmd.RunSQL strsql
End If
3.权限:管理员拥有添加、保存、删除、修改的权限,用户没有;主要针对查询后的信息
答案:
(1)在登录窗体的确定按钮的单击事件中加如下代码:
str用户名 = Me.Combo用户名.Value
str类别 = DLookup("类别", "用户密码表", "用户名='" & Me.Combo用户名.Value & "'")
(2)在人物和忍术的窗体加载事件中,分别写如下代码:
Private Sub Form_Load()
If str类别 = "管理员" Then
Me.Form.AllowAdditions = True
Me.Form.AllowDeletions = True
Me.Form.AllowEdits = True
Else
Me.Form.AllowAdditions = False
Me.Form.AllowDeletions = False
Me.Form.AllowEdits = False
End If
End Sub |
|