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运行后,用户名和密码都能与表中的对应,可还是现实的是“密码错误”,我该怎么办呢?
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运行后,用户名和密码都能与表中的对应,可还是现实的是“密码错误”,我该怎么办呢?
if trim(text2.text)<>rs.fields("U_Password") then
否则第一次回报错还有下面这句少个end if
if text2.text<>rs!U_Password then
msgbox "密码错误"
else
MsgBox "登陆成功"
Form2.Show
Unload Me
end if
这句改成
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
中的rs!U_Password是什么东东??
改成
If rs.recordcount>0 Then
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 SubPublic 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
'连接字符串
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)
应该 “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
将下面这段
if text2.text<>rs!U_Password then
msgbox "密码错误"
else改成。if UCASE$(TRIM$(text2.text))<>UCASE$("" & rs!U_Password) then
msgbox "密码错误"
else还有,保存密码和用户名的字段最好是:varchar(),不要用VARCHAR()
其中的区别想必你已知道。