Office中国论坛/Access中国论坛

标题: 急,在线等待,请高手看看我的VB代码错在哪里?? [打印本页]

作者: varren    时间: 2009-11-13 17:01
标题: 急,在线等待,请高手看看我的VB代码错在哪里??
代码实现的功能很简单,就是登陆系统的时候输入用户名和密码,然后和数据库里的登录表的用户名和密码匹配,如果合格则可以登陆系统,如果不合格,则提示输入错误。
但运行的时候系统提示错误(绿色的语句)

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
作者: varren    时间: 2009-11-13 17:34
。。这么多高手帮下忙,我从来没有用过ACCESS,因为公司要用,只有慢慢来弄了。
作者: Henry D. Sy    时间: 2009-11-13 17:43
问题应该出在,定义变量和赋值。
作者: varren    时间: 2009-11-13 18:00
怎么解决?
作者: andymark    时间: 2009-11-13 18:33

  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
复制代码

作者: xryacc2    时间: 2009-11-13 20:48
本帖最后由 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
作者: chaojianan    时间: 2009-11-13 20:49
Set rs = str.OpenRecordset("select 用户名,密码 from 登录表 where 用户名='" & Me.用户名 & "' and 密码 = '" & Me.密码 & "'")
and 前面加一个空格看看。
作者: tz-chf    时间: 2009-11-14 08:53
这种判断有漏洞




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