一个过程,用做登录界面,运行是无法通过,请问哪里错了,首先比较用户名,然后是密码,密码文件放在testdb.mdb中Function uservalidate(input_user As String, input_password As String) As Integer
Dim rs As New ADODB.Recordset
Dim sql As String
Dim tmp_password As String
Dim conn As New ADODB.Connectionconn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\testdb.mdb;Persist security info=false"conn.Openrs.ActiveConnection = conn
sql = "select user_account,user_password from users where user_account= "&input_user&""Call rs.Open(sql, conn)If (rs.EOF) Then
uservalidate = 1
rs.Close
conn.Close
Exit Function
End Iftmp_password = rs("user_password")rs.Close
conn.CloseIf StrComp(tmp_password, input_password) Then
uservalidate = 2
Exit Function
End If
uservalidate = 0
End Function
改成:
sql = "select user_account,user_password from [users] where user_account= '"& input_user &"'"
改成
rs.Open sql, conn
真可惜来晚了啊
呵呵[users]
不是这么写吧?sql = "select user_account,user_password from users where user_account= '"& input_user &"'"
改成
conn.ConnectionString = "driver={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\testdb.mdb"
找不到可安装的ISAM.
RAIN哥的方法会Run-time error '-2147217904(80040e10)':
[Microsoft][odbc Microsoft Access Driver]参数不足,期待是1.
什么原因啊?
改成
rs.Open sql, conn,1,1
同意该版本:sql = "select user_account,user_password from users where user_account= '"& input_user &"'"
Private Sub cmdCancel_Click()
End
End Sub
Private Sub cmdOK_Click()
If (txtPWD = "" Or txtUser = "") Then
MsgBox "用户名/密码 不能为空!"
End If
result = uservalidate(txtUser, txtPWD)
If (result = 0) Then
user_account = txtUser
user_password = txtPWD
Unload Me
Else
Select Case result
Case 1:
MsgBox "用户" & frmLogin.txtUser & "不存在"
Case 2:
MsgBox "用户" & frmLogin.txtUser & "密码错误"
Case Else
MsgBox "未知错误"
End Select
End If
End Sub
Function uservalidate(input_user As String, input_password As String) As Integer
Dim rs As New ADODB.Recordset
Dim sql As String
Dim tmp_password As String
Dim conn As New ADODB.Connectionconn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\testdb.mdb;Presist security info=false"conn.Openrs.ActiveConnection = conn
sql = "select user_account,user_password from users where user_account= &input_user& "
Call rs.Open(sql, conn)If (rs.EOF) Then
uservalidate = 1
rs.Close
conn.Close
Exit Function
End Iftmp_password = rs("user_password")rs.Close
conn.CloseIf StrComp(tmp_password, input_password) Then
uservalidate = 2
Exit Function
End If
uservalidate = 0
End Function
Private Sub Form_Load()
result = -1End SubPrivate Sub Form_Unload(Cancel As Integer)
If (Not result) Then
form1.Show
End If
End Sub
试试下面的代码dim AdoRs as New ADODB.Recordset
Dim gadoConnAs New ADODB.ConnectiongadoConn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\testdb.mdb;Presist security info=false"gadoConn.OpenAdoRs.ActiveConnection = gadoConn
If AdoRs.State = 1 Then
AdoRs.Close
End IfAdoRs.Open strSQl, gadoConn, adOpenStatic, adLockReadOnly
if not AdoRs.EOF and not AdoRs.BOF then
‘验证通过
end if