Access交流中心

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

为什么只能用户表中第一条记当的用户能成登录的,

岚风  发表于:2021-05-10 14:02:28  
复制

Option Compare Database


Private Sub 登录_Click()
    Set conn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    rs.Open "职工信息", 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-10 14:26:16
西出阳关无故人 发表于:2021-05-10 16:29:26

是因为  rs.Open "职工信息", conn 这一句,打开了所有记录,默认第一个职工信息为录入的第一个,所以,只要你输入的用户名和密码不是第一个的,

 If username <> rs!用户名 Or userpass <> rs!密码 Then 这一句就判断就永远为true.

除非循环rs的记录,或打开职工信息时,添加条件:

rs.Open "select * from 职工信息 where 用户名='" & Text1 & "'", conn



岚风 发表于:2021-05-11 10:58:38


岚风 发表于:2021-05-11 11:00:14
现在还有个问题 ,如果我输入用户名中,我表中没有的,会弹出这样的提示

西出阳关无故人 发表于:2021-05-12 11:25:30

就在   rs.Open "select * from 职工信息 where 用户名='" & Text1 & "'", conn 之后添加判断:

if rs.recordcount<=0 then

msgbox "不存在你输入的用户!"

exit sub

end if



西出阳关无故人 发表于:2021-05-12 11:29:44

另外 rs.open ...应该在判断text1不为空之后,否则还会出错.




岚风 发表于:2021-05-13 16:47:08
还是不行的

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