| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1144 人关注过本帖
标题:请高手帮忙看一下,纠错!
只看楼主 加入收藏
qgyun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-13
收藏
 问题点数:0 回复次数:10 
请高手帮忙看一下,纠错!
登录窗体,利用adodc控件从access数据库的“用户管理”表检查用户名称和登录密码,两个文本名是txtUserName和txtPassword运行过程有问题,请大家纠错,谢谢!
Option Explicit
Public LoginSucceeded As Boolean

Private Sub cmdCancel_Click()
    '设置全局变量为 false
    '不提示失败的登录
    LoginSucceeded = False
    Me.Hide
End Sub

Private Sub cmdOK_Click()
      If Trim(txtUserName.Text) = "" Then
        MsgBox "用户名不能为空", vbExclamation + vbOKOnly, "提醒"
        txtUserName.SetFocus
        Exit Sub
    End If
 
    If Trim(txtPassword.Text) = "" Then
        MsgBox "用户密码不能为空", vbOKOnly, "提醒"
        txtPassword.SetFocus
        Exit Sub
    End If
   
    If Not IsNumeric(txtPassword.Text) Then
        MsgBox "密码必须为数字", vbExclamation + vbOKOnly, "提醒"
        txtPassword.SelStart = 0
        txtPassword.SelLength = Len(txtPassword)
        txtPassword.SetFocus
        Exit Sub
     End If
     
     Adodc1.RecordSource = "select * from 用户管理   where 用户名称= '" & txtUserName.Text & "'"
     Adodc1.Refresh
     With Adodc1.Recordset
        If txtUserName.Text <> Adodc1.Recordset.Fields("用户名称").Value Then
                MsgBox "用户名错误,请重新输入"
                txtUserName.SetFocus
                Exit Sub
        ElseIf txtPassword.Text <> Adodc1.Recordset.Fields("登录密码").Value Then
                MsgBox "密码错误,请重新输入"
                txtPassword.SetFocus
                Exit Sub
       Else
            MDIForm1.Show
       End If
      
  End With
    Exit Sub

End Sub
搜索更多相关主题的帖子: 纠错 
2008-05-14 23:29
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
收藏
得分:0 
既然使用了with Adodc1.Recordset,那么中间有Adodc1.Recordset就可以不用写了.
2008-05-15 09:30
qgyun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-13
收藏
得分:0 
回楼上,不是该问题
补充:执行时弹出“adodc1”的对话框,提示from子句语法错误。点确定,又出现“实时错误.......对象 'refresh'的方法'iadodc'失败”
2008-05-15 11:01
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
"select * from 用户管理   where 用户名称= '" & txtUserName.Text & "'"
是不是这句话有问题...我没怎么看vb,所以不一定对..字符串连接+就可以了吧.

学习需要安静。。海盗要重新来过。。
2008-05-15 11:08
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 
你这里用 with Adodc1.Recordset 根本就没一点用处  
 我看你干脆用ADODC控件绑定你的那数据库表。。更加简单!
2008-05-15 11:16
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 
Adodc1.RecordSource = "select * from 用户管理   where 用户名称= '" & txtUserName.Text & "'"
     Adodc1.Refresh
     With Adodc1.Recordset
        If txtUserName.Text <> Adodc1.Recordset.Fields("用户名称").Value Then
                MsgBox "用户名错误,请重新输入"
                txtUserName.SetFocus
                Exit Sub
        ElseIf txtPassword.Text <> Adodc1.Recordset.Fields("登录密码").Value Then
                MsgBox "密码错误,请重新输入"
                txtPassword.SetFocus
                Exit Sub
       Else
            MDIForm1.Show
       End If
      
  End With
这段代码 逻辑相当混乱!
正常的思路:
1.首先查数据库里是否存有数据
2.其次查找用户名,
  其中有两中方法:
   1.从数据中,从第一条查到起
   2.直接查,看返回值是否为空
3.再查与之匹配的密码
按照,这样下去就不会出错啦!
2008-05-15 11:38
qgyun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-13
收藏
得分:0 
那这组呢,也有错误
Private Sub Command1_Click()
Adodc1.RecordSource = "select *from 用户表 where 用户名称='" & Text1.Text & "'"
Do While Not Adodc1.Recordset.EOF
 If Text1.Text = Adodc1.Recordset.Fields("用户名称") Then
 Me.Hide
 Form2.Show
 Else
  MsgBox "输入错误!"
 End If
Adodc1.Recordset.MoveNext
Loop
End Sub
2008-05-15 23:25
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 
那我问你,有没设置adodc1.datasource?
2008-05-16 10:56
qgyun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-13
收藏
得分:0 
回楼上
没有,不知道再哪设?设adodc1的吗?
2008-05-16 13:28
xlin1033xl
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:160
专家分:129
注 册:2007-6-24
收藏
得分:0 
喜欢用ado,不喜欢用控件

-------------程序*酒*人生
2008-05-18 04:22
快速回复:请高手帮忙看一下,纠错!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014507 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved