Office中国论坛/Access中国论坛

标题: 菜鸟ishi2100再次求助,希望像todaynew的好心人来帮忙 [打印本页]

作者: ishi2100    时间: 2010-1-7 15:54
标题: 菜鸟ishi2100再次求助,希望像todaynew的好心人来帮忙
本帖最后由 ishi2100 于 2010-1-7 16:32 编辑

首先万分感谢todaynew的帮助,帮我解决了不少问题,但因为个人才疏学浅,很多都无法真正用起来,所以再次提问,希望等到再次帮助。

1.用户注册:注册(并将信息导入表“用户密码表
2.报表:显示用户及其登录时间、离开时间
3.权限:管理员拥有添加、保存、删除、修改的权限,用户没有;主要针对查询后的信息

关于登录时间和离开时间已按todaynew说的做了,但是提示错误,在库里面,望检查一下,看是怎么错了

本人初学请具体解答,自己也会边等边找资料做的,在线等啊
先感谢各位了!
作者: 咱家是猫    时间: 2010-1-7 16:01
我这里只给出解决思路:
1 在创建用户时用循环检查每一个用户名字符,有一个不是数字或字母就退出循环,提示用户名非法.
2 在用户登录和退出时记录用户登录/退出时间,保存到表里,可以专门创建一个表保存此类数据.
3 创建用户权限表,为每一个用户指定相应权限,在进行相应操作时到权限表里校验有无此权限.这是一个不小的工程,用文字难以解决你的问题,可以在论坛上搜索前辈们的权限例子,自己研究/借鉴下.
作者: ishi2100    时间: 2010-1-7 16:10
感谢你啊,不过我菜到不行啊,你这样说了也没用啊,我不会
作者: todaynew    时间: 2010-1-7 16:12
好像这几个问题都给你解决了呀
作者: todaynew    时间: 2010-1-7 17:23
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
作者: ishi2100    时间: 2010-1-7 18:20
不好意思,能加我QQ吗
作者: ishi2100    时间: 2010-1-7 18:31
337868997
作者: ishi2100    时间: 2010-1-7 18:33
离开时间有了,但登陆时间没有,而且只是在一条上更新,不是累计的那种,就上一次,有一条信息
作者: ishi2100    时间: 2010-1-7 18:38
另外,用户注册中我做了一个若不输入内容跳到下条时,会显示“请填写XXX”,不过输入东西以后,怎么能没有了
作者: ishi2100    时间: 2010-1-7 18:43
电子邮件地址格式怎么修改成“XXX@XXX.com/.com.cn/.cn"




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3