急~~!!怎样在ACCESS中做一个带有用户名、密码的登陆窗体?

这是数据库留的作业,完全自学ACCESS,纯粹菜鸟一个
求各位大神详细指点!!!

这是我自己做的,但现在不输入用户名和密码,点击进入系统就可以登陆到我要的那个窗体,我不知道怎么能改成只能输入完用户名和密码后才能点击登陆,这个用户名和密码我做了一个表,一个是文本字段,一个是密码,都用的有效性规则,用户名只能输入管理员,密码为123456(其实我不懂怎么做,是自己做着试试的,请大神指正啊!!!),然后在窗体里把这两个放进去了,控件连接的是我要打开的窗体,但现在的问题就是,我输入密码不正确,进不了系统,但我输入正确了,或者根本不输入密码和用户名,直接点击也能进去,怎么改呢?!

这是这个窗体目前的代码,貌似没有将用户名、密码和进入系统的控件联系起来。。我没学过啊!!!完全不懂,也不知道怎么改。。。

PS, 如果那个登陆界面能做成Msgbox那样的小窗口就更好了。。下面这种效果的就最好,图片什么的可以不用考虑

用VBA,先建立一个用户表,在窗体上拉两个文本框输入用户名和密码用,再拖一个按钮,在VBA工程模块中找到按钮名称,并在他的Click事件中加入下面的代码:

Private Sub Command1_Click() '//假设你的按钮名叫Command1
'//连接数据库去查找用户 
Dim cnn As ADODB.Connection   '//连接对象
Dim rs As ADODB.Recordset   '//数据集合
Set cnn = CurrentProject.Connection   '//连接对象就是本身,临时连接就好了
Set rs = New ADODB.Recordset    '//实例化数据集合
rs.Open "Select * from 用户表 where 用户名='" + Trim(Me.Text1) + "' and 密码='"+Trim(Text2)+"'", cnn     '//注意不要画蛇添足写个Text1.Text,ACCESS不一样,写属性会让你不停去找焦点的,这里是打开数据集合
If rs.EOF Then        '//如果没找到记录,就说明验证错误了嘛
   MsgBox "对不起!用户名或密码错误,请重新输入!",vbOkOnly,"系统消息"
   Me.Text1=""
   Me.Text2=""    '//如果验证失败,两个文本框空值
   Me.Text1.SetFucos   '//让光标焦点跳到Text1用户名输入框上去
Else       '//如果查到了用户数据,那就登陆成功了
   MsgBox "登陆成功","系统消息"
   你需要打开的窗体名称.Show
   Me.Hide     '//隐藏自己,打开你要打开的窗体界面
End If     '//结束IF循环
End Sub     '//结束按钮事件


这只是个简单例子,希望对你有帮助,写完代码要把窗体设置成启动模式,只启动登陆窗体就好了,人家看到你用户表做登陆事件也是没意义的。ACCESS本身就可以设置密码安全,他其实不是开发环境,本身就是个软件,你做好了验证别人拿着往别的表一导入,一样的可以用。

ACCESS打开的时候把文件取消打开,然后在文件菜单下面找到打开,找到你的文件

右下脚有个按钮,选择以独占形式打开,进入ACCESS后在安全里就可以设置密码了,

这个密码比上面的策略安全,别人很难破解

不知道楼主能不能看懂

 

参考文献:

http://www.51zxw.net/list.aspx?cid=335 自学网

http://www.duote.com/tech/access/       2345软件教程

http://www.51vba.com/                          51VBA教程

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16

看你的样子,是不是把登录窗体做成绑定窗体了??

不要绑定窗体,窗体中的和登录密码两个文本框不要和表字段绑定,不需要神马有效性规则...只需要:

1.建好用户表,表中设好用户名和密码;

2.登录窗体中【进入系统】按钮的单击事件代码:

if isnull(me.用户名) or isnull(me.登录密码) then 

   msgbox "请输入正确的用户名和密码!"

elseif isnull(DLookup("密码","用户表","用户名='" & me.用户名 & "'")) then

    msgbox "用户名不存在!"

elseif DLookup("密码","用户表","用户名='" & me.用户名 & "'")=me.登录密码 then

   docmd.openform 窗体名称

else

   msgbox "密码错误!"

end if

'祝你成功!

追问

太感谢了!!!窗口的问题解决了!!!现在还有两个问题哦。。在登陆成功以后,这个登陆界面依然存在,而且每输入一次用户名和密码,用户表中的用户名和密码都会自动增加一条,能不能在登陆以后就自动关闭呢,有没有方法能不让数据自动添加记录呢?

追答

1.登陆成功后,关闭这个登录界面即可,
在"docmd.openform 窗体名称"下面再加一句代码,
Docmd.close acform,me.name

2.不应该自动增加的,除非你的用户名和密码文本框是绑定表字段的...
上面已经说过了,不要绑定!
在窗体设计中,选中整个窗体-->属性-->数据来源,不要设置任何内容;
选中用户名文本框,属性-->控制项数据来源,不要设置任何内容,密码文本框同样。

另外,你说的"如果那个登陆界面能做成Msgbox那样的小窗口就更好了",完全可以的,窗体大小自己可以调整,不要窗体最大化,自己多摸索一下。

祝你成功!

追问

太好了,都搞定了呢!!给你加分哈!!!最后弱弱的再问一个问题哦~~~我现在要制定季度零件订货计划,我现在有零件库存(零件号、零件名、库存量、最低库存、订货量)和零件用量(零件号、使用数量)两个表,应该怎么制定呢?

追答

这个问题你讲的有些模糊,我只能大概猜测说一下我的想法:
1.零件库存表中,零件号应该是唯一的吧,订货量是否为已订未入库的数量?
2.零件用量表中,零件号我不确定是否唯一,如果唯一(也就是每个零件号只有一行记录)则简单,如果不唯一就需要先统计每个零件号总的使用数量。

做一个查询即可得到你需要的结果,查询的sql语句如下:
1.零件用量表中零件号唯一的情况:

select 零件号,零件名,最低库存+使用数量-库存量-订货量 as 计划订货数量 from 
零件库存表 left join 零件用量表 on 零件库存表.零件号=零件用量表.零件号

2.零件用量表中零件号不唯一的情况:

select 零件号,零件名,最低库存+使用数量-库存量-订货量 as 计划订货数量 from
零件库存表 left join (select 零件号,sum(使用数量) as 使用数量 from 零件用量表 group by 零件号) t on 零件库存表.零件号=t.零件号

以上结果,如果 计划订货数量是正值则就是你需要的计划订货数量,如果是负值则表示多余的库存或订货量,当然你也可以在查询时设置条件只查正值......

另外,既然是季度订货计划,都没看到日期,或许零件用量表中应该有个日期字段,记录使用数量的发生时间...

祝你成功!

本回答被提问者采纳
第2个回答  2020-12-09

Access 中的窗体是一种数据库对象,可用于创建数据库应用程序的用户界面。“绑定”窗体直接连接到表或查询之类的数据源,可用于输入、编辑或显示来自该数据源的数据。或者也可以创建“未绑定”窗体。

第3个回答  2013-09-16
jm/lk就iojiojmkojioj8by

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网