设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2555|回复: 7
打印 上一主题 下一主题

[模块/函数] 急,在线等待,请高手看看我的VB代码错在哪里??

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-13 17:01:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码实现的功能很简单,就是登陆系统的时候输入用户名和密码,然后和数据库里的登录表的用户名和密码匹配,如果合格则可以登陆系统,如果不合格,则提示输入错误。
但运行的时候系统提示错误(绿色的语句)

Private Sub denglu_Click()
If IsNull(Me.用户名) = False Then
MsgBox "您输入的用户名为空,请重新输入", vbQuestion
Exit Sub
End If

If IsNull(Me.密码) = False Then
MsgBox "您输入的用密码为空,请重新输入", vbQuestion
Exit Sub
End If

If adlogin = True Then
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "查询窗体"
Else
MsgBox "您输入的账号或密码错误,请重新输入", vbCritical
Exit Sub
End If
End Sub

Public Function adlogin() As Boolean
Dim str As Database
Dim rs
Set rs = CurrentDb
Set rs = str.OpenRecordset("select 用户名,密码 from 登录表 where 用户名='" & Me.用户名 & "'and 密码 = '" & Me.密码 & "'")
If rs.EOF Then
   If rs.Fields("密码") = Me.密码 Then
   End If
adlogin = True
End If
End Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2009-11-13 17:34:06 | 只看该作者
。。这么多高手帮下忙,我从来没有用过ACCESS,因为公司要用,只有慢慢来弄了。
3#
发表于 2009-11-13 17:43:37 | 只看该作者
问题应该出在,定义变量和赋值。
4#
 楼主| 发表于 2009-11-13 18:00:58 | 只看该作者
怎么解决?
5#
发表于 2009-11-13 18:33:21 | 只看该作者

  1. Public Function Adlogin() As Boolean
  2. Dim Db As Database
  3. Dim rs As DAO.Recordset
  4. Set Db = CurrentDb
  5. Set rs = Db.OpenRecordset("select 用户名,密码 from 登录表 where 用户名='" & Me.用户名 & "'and 密码 = '" & Me.密码 & "'")
  6. If rs.RecordCount > 0 Then
  7. Adlogin = True
  8. Else
  9. Adlogin = False
  10. End If
  11. End Function
复制代码
6#
发表于 2009-11-13 20:48:43 | 只看该作者
本帖最后由 xryacc2 于 2009-11-14 00:27 编辑

换个思维:(更正,把原"[用户名]"后边的双引号去掉了),你可以粘帖此原码直接用。
if isnull(me.用户名.value) or isnull(me.密码.value) then
   msgbox "用户名或密码都不能为空"
   exit sub
end if
dim mima  '假设你的登录表中有这样的字段:用户名,密码
'有误,多了双引号,mima=dlookup("[密码]","[登录表]","[用户名]"='"& me.用户名.value &"'") '注意最好表中密码值不能空
mima=dlookup("[密码]","[登录表]","[用户名]='"& me.用户名.value &"'")
if mima=me.密码.value then
    docmd.close
    docmd.openform "查询窗体"
  else
    msgbox "密码输入错误"
    exit sub
end if
7#
发表于 2009-11-13 20:49:30 | 只看该作者
Set rs = str.OpenRecordset("select 用户名,密码 from 登录表 where 用户名='" & Me.用户名 & "' and 密码 = '" & Me.密码 & "'")
and 前面加一个空格看看。
8#
发表于 2009-11-14 08:53:14 | 只看该作者
这种判断有漏洞
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-17 18:43 , Processed in 0.087239 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表