Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

为什么判断语名不能判断,我用户表中没有录入的用户名,如何写语名,现在的情况是登录输入“用户名”,表中没有的提示象错误

岚风  发表于:2021-05-11 11:43:31  
复制

Option Compare Database


Private Sub 登录_Click()
    Set conn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
   rs.Open "select * from 职工信息 where 用户名='" & Text1 & "'", conn
   
     Dim username As Variant
     Dim userpass As Variant


    Text1.SetFocus
    username = Text1.Text
    Text3.SetFocus
    userpass = Text3.Text
If IsNull(Text1) Or IsNull(Text3) Then  '判断用户名和密码是否为空
   MsgBox "用户名或密码不能为空,请重新输入!", vbOKOnly + vblnformation, "错误信息"
Else
   If username <> rs!用户名 Or userpass <> rs!密码 Then     '判断用户名和密码是否正确
    MsgBox "用户名或密码不正确,请重新输入", vbOKOnly + vbInformation, "错误信息 "
Text1.SetFocus
Text1.Text = ""
Text3.SetFocus
Text3.Value = ""
Text1.SetFocus
Else
'将登录时间计入数据库
 rs.Close
rs.Open "用户登录记录表", conn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs!用户名 = username
rs.AddNew
rs!登录时间 = Now()
rs!退出时间 = CDate(0)
rs.Update
rs.Close
DoCmd.Close
DoCmd.OpenForm "日志录入"
End If
End If
End Sub




Private Sub form_load()
 Text1.SetFocus '初始化窗体内容
 Text1.Text = ""
Text3.SetFocus
Text3 = ""
End Sub





 

Top
大洋 发表于:2021-05-15 13:48:45
因为你的rs记录集里面没有找到这个用户名,当ADO记录集里为空时,使用它会跳错;先了解一下BOF和EOF的用法,然后在使用记录集前加入一个判断语句,如果BOF 和 EOF同时为真,说明没有找到记录,否则再判断用户名和密码的值。

西出阳关无故人 发表于:2021-05-16 10:19:11
Private Sub 登录_Click()
    On Error GoTo er
    Dim conn As ADODB.Connection, rs As ADODB.Recordset
    Set conn = CurrentProject.Connection
    Set rs = New ADODB.Recordset


    Dim userName As Variant
    Dim userPass As Variant
    userName = Trim(Nz(Text1, ""))
    userPass = Trim(Nz(Text3, ""))
    If userName = "" Or userPass = "" Then    '判断用户名和密码是否为空
        MsgBox "用户名和密码不能为空,请重新输入!", vbOKOnly + vblnformation, "错误信息"
        GoTo noTrue
    Else
        rs.Open "select * from 职工信息 where 用户名='" & Text1 & "'", conn
        If rs.RecordCount < 1 Then
            MsgBox "用户不存在,请重新输入", vbOKOnly + vbInformation, "错误信息 "
            GoTo noTrue
        Else
            If userPass <> rs!密码 Then      '判断密码是否正确
                MsgBox "密码不正确,请重新输入", vbOKOnly + vbInformation, "错误信息 "
                GoTo noTrue
            Else
                '将登录时间计入数据库
                CurrentDb.Execute "insert into 用户登录记录表(用户名,登录时间) values('" & userName & "',#" & Now() & "#,)"
                DoCmd.Close
                DoCmd.OpenForm "日志录入"
            End If
        End If
        rs.Close
    End If
    Exit Sub
noTrue:
    Text1 = ""
    Text3 = ""
    Text1.SetFocus
    Exit Sub
er:
    MsgBox "发生错误:" & Err.Number & "," & Err.Number
End Sub



总记录:2篇  页次:1/1 9 1 :