这个判断怎么会是这样的?帮忙解决一下。谢谢各位了!!!!!

dtysam 2004-01-16 11:29:54
Private Sub Command1_Click()

If Text1.Text = "" Then
MsgBox "请输入用户名"
Exit Sub
ElseIf Text2.Text = "" Then
MsgBox "请输入密码"
Exit Sub
End If
rs.Close
rs.Open "select * from STU_INFO where U_Name='" & Text1.Text & "'", conn, adOpenDynamic, adLockBatchOptimistic
If Not (rs.EOF And rs.BOF) Then
if text2.text<>rs!U_Password then
msgbox "密码错误"
else
MsgBox "登陆成功"
Form2.Show
Unload Me
Else
MsgBox "没有该用户"
End If
End Sub

运行后,用户名和密码都能与表中的对应,可还是现实的是“密码错误”,我该怎么办呢?
...全文
67 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
华芸智森 2004-01-20
  • 打赏
  • 举报
回复

将下面这段
if text2.text<>rs!U_Password then
msgbox "密码错误"
else

改成。

if UCASE$(TRIM$(text2.text))<>UCASE$("" & rs!U_Password) then
msgbox "密码错误"
else

还有,保存密码和用户名的字段最好是:varchar(),不要用VARCHAR()
其中的区别想必你已知道。
chinaren502 2004-01-19
  • 打赏
  • 举报
回复
同意楼上
vbman2003 2004-01-19
  • 打赏
  • 举报
回复
我也认为你这句写反了“text2.text<>rs!U_Password”
应该 “rs!U_Password<>text2.text”吧
我改了一下你代码的顺序,你试试:
rs.Open "select * from STU_INFO where U_Name='" & Text1.Text & "'", conn, adOpenDynamic, adLockBatchOptimistic
If rs.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!"
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
Else
If rs!U_Password = Trim(Text2.Text) Then
MsgBox "登陆成功"
Form2.Show
Unload Me
Else
MsgBox "你输入的密码不正确,请重新输入!"
Text2.SetFocus
Text2.Text = ""
End If
......
End If
qingming81 2004-01-18
  • 打赏
  • 举报
回复
连接字 符串是错误的
'连接字符串
ConString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=library;Data Source=."

“Data Source=”后面应该指明连接的数据库路径。

判断语句改为

If (SQLview.BOF and SQLview.EOF) Then
MsgBox "用户名与密码不符,请重新输入!", vbOKOnly + vbExclamation, "警告"
Text_pass = ""
Text_pass.SetFocus
Else
Me.Hide
frm_main.Show
End If


'admintype = SQLview.Fields(2) 如果登录成功这里也会报错,我是在模块中定 义的全局变量.定义语句为 Public admintype As String
请用msgbox SQLview.fields(0)、msgbox SQLview.fields(1)、msgbox SQLview.fields(2)逐个看看,可能根本不存在SQLview.fields(2)
dtysam 2004-01-18
  • 打赏
  • 举报
回复
不行都不行,还是一样的结果.是不是数据库出错了哦?
yaya8168 2004-01-18
  • 打赏
  • 举报
回复
各位高手帮我也看看我遇到的问题与他有些相似,无论我输入什么密码都会登录下面是源码
Private Sub CmdEnter_Click()
Dim UserName As String
Dim UserPass As String
Dim SQLview As New Recordset
Dim SQL As String
Dim msgstring As String
If (Com_user_name.Text = " " Or Com_user_name.Text = "(请选择)") Then
MsgBox "请选择用户名!", vbOKOnly + vbExclamation, "警告"
Com_user_name.SetFocus
Else
If Text_pass = " " Then
MsgBox "请输入密码!", vbOKOnly + vbExclamation, "警告"
Text_pass.SetFocus
End If

End If
UserName = Trim(Com_user_name.Text)
UserPass = Trim(Text_pass.Text)
SQL = "select * from admininfo where admin_id= '& username &' and admin_password='& userpass &'"
Set SQLview = ExecuteSql(SQL, msgstring)
If (SQLview.EOF = False) Then
MsgBox "用户名与密码不符,请重新输入!", vbOKOnly + vbExclamation, "警告"
Text_pass = ""
Text_pass.SetFocus
Else
'admintype = SQLview.Fields(2) 如果登录成功这里也会报错,我是在模块中定 义的全局变量.定义语句为 Public admintype As String
Me.Hide
frm_main.Show
End If
End Sub

Public Function ExecuteSql(ByVal StrSql As String, msgstring As String) As Recordset
'声明一个连接
Dim ConnectStr As New ADODB.Connection
'声明一个记录集对象
Dim RecordStr As New ADODB.Recordset
Dim ConString As String
'连接字符串
ConString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=library;Data Source=."
ConnectStr.ConnectionTimeout = 10
ConnectStr.CursorLocation = adUseClient
'打开一个连接
ConnectStr.Open ConString
'执行查询语句
ConnectStr.Execute StrSql
RecordStr.Open Trim$(StrSql), ConnectStr, adOpenKeyset, adLockBatchOptimistic
'返回记录集对象
Set ExecuteSql = RecordStr
msgstring = "查询到" & RecordStr.RecordCount & "条记录"
executesql_exit:
Set RecordStr = Nothing
Set ConnectStr = Nothing
End Function

online 2004-01-17
  • 打赏
  • 举报
回复
把rs.Close放在最后
否则第一次回报错

还有下面这句少个end if
if text2.text<>rs!U_Password then
msgbox "密码错误"
else
MsgBox "登陆成功"
Form2.Show
Unload Me
end if
online 2004-01-17
  • 打赏
  • 举报
回复
加trim试试
if trim(text2.text)<>rs.fields("U_Password") then
liufeng7600 2004-01-17
  • 打赏
  • 举报
回复
If Not (rs.EOF And rs.BOF) Then
这句改成
If Not rs.EOF Then


text2.text<>rs!U_Password
改成
trim(text2.text)<>rs!U_Password
在试试


即:
If Not rs.EOF Then
if trim(text2.text)<>rs!U_Password then
msgbox "密码错误"
else
MsgBox "登陆成功"
Form2.Show
Unload Me
Endif
Else
MsgBox "没有该用户"
End If
liaorui 2004-01-17
  • 打赏
  • 举报
回复
设置断点一调试不就知道了吗。。
kmzs 2004-01-17
  • 打赏
  • 举报
回复
生成exe试试看
nicolas1999king 2004-01-17
  • 打赏
  • 举报
回复
直接把密码拷过来试试?
davidlv 2004-01-17
  • 打赏
  • 举报
回复
大小写呢
hhjjhjhj 2004-01-17
  • 打赏
  • 举报
回复
If Not (rs.EOF And rs.BOF) Then
改成
If rs.recordcount>0 Then
jone999 2004-01-17
  • 打赏
  • 举报
回复
设置断点看看这句if text2.text<>rs!U_Password then
中的rs!U_Password是什么东东??

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧