五个access管理系统实用范例整合 下载本文

2.3.1 辅导员登陆窗体的制作

因为四个窗体功能上有相似之处,因此我们以辅导员登陆窗体的制作为例详细介绍,其他三个窗体的制作类似。

把控件都拉入窗体的主题中以后我们来一起看一看窗体中各个控件的设置。

旁边的文本框属性如下

旁边的文本框属性如下:

一、对于

的单击事件属性我们设定如下的宏

我们现在来讨论一下单击

后可能出现的情况:

1. 输入的密码或者用户名为空 2. 输入的用户名或者密码错 3. 输入的用户名以及密码正确 第一种情况:

我们希望弹出一个对话框提示用户因此有了以下设定,不用我说大家也知道两个操作的属性如何设定。

这里唯一的难点就是大家要注意提示框弹出的条件如何设定

IsNull([Forms]![辅导员登录]![辅导员编号]) Or IsNull([Forms]![辅导员登录]![辅导员密码])

我们使用ISNULL这个函数判断窗体中辅导员编号和密码是否为空。

第三步操作OPENFORM 我们先不管它,但是它对于窗体中的第二、三种

61

情况至关重要。

这样第一种可能情况就被我们成功解决了!

第二种情况:

我们也希望弹出一个对话框提示出错,关键的问题也是如何判断输入的用户名或者密码错。

既然是判断,那么总要有个比较对象,也就是说要把现在输入的用户名或者密码与正确的用户名、密码进行比较!在这里又要分为两种情况 1. 用户名的判断 2. 密码的判断

先来看看用户名的判断怎么判断呢?

当你输入了用户名以后要和正确的用户名进行比较 因此给出一个函数 DCOUNT

在条件栏中输入

DCount(\辅导员编号]\辅导员]\辅导员编号]=[Forms]![辅导员登录]![辅导员编号]\

这段程序是什么意思呢?我用直白的语言给大家解释! 在辅导员表中对辅导员编号列进行计数

进行计数的条件是什么呢?当辅导员编号列中的记录与辅导员登陆窗体中的辅导员编号文本框记录相同的时候

如果函数返回的数是0说明你输入的记录在辅导员表的辅导员编号列中找不到,也就是说输入用户名出错!!

再来看看密码的判断

密码判断的情况就比较复杂了:

有的同学会问,能不能用DCOUNT函数?答案是不可以 使用DCOUNT函数并不能保证用户名与密码的匹配,也就不能保证安全性。 举个例子:现在有两个正确的密码 用户名 密码 A 111 B 222

若使用DCOUNT函数 当你使用用户名A,密码222同样可以登陆进系统。这种情况是不被允许的。 因此我们必须想别的方法:

在此建立一个新的窗体命名为辅导员正确密码:

62

我们希望这个窗体中的数据也就是正确的用户名以及密码我们能够拿来和用户在辅导员登陆窗体中的用户名密码相比较。 图如上

在这里你会问辅导员正确密码窗体的数据源是哪个呢? 能不能直接选用中的编号以及密码呢? 答案是不可以

因为这样在你即使没有输入有效用户名的时候,用户名、密码就存在于辅导员正确密码窗体中,只要打开辅导员正确密码窗体不用输入任何信息就能看到有效的用户名密码!!!

为了防止这种情况的发生我们希望具有某个用户名的用户通过辅导员正确密码窗体只能看到自己的密码而不能看到别人的用户名以及密码! 这样我们设计了一个参数查询命名为辅导员正确密码

63

条件中[Forms]![辅导员登录]![辅导员编号]指的是只有在辅导员登陆窗体中输入正确的辅导员编号才能查到相应辅导员的密码。然后将辅导员正确密码窗体的数据源设定为这个辅导员正确密码参数查询。 最终在第四行条件中输入的条件为:

DCount(\辅导员编号]\辅导员]\辅导员编号]=[Forms]![辅导员登录]![辅导员编号]\Or [Forms]![辅导员正确密码]![辅导员正确密码]<>[Forms]![辅导员登录]![辅导员密码]

好啦,我们可以回过头来讨论第三行操作的参数了,肯定是 [辅导员正确密码]窗体

64