假如本人的H:\下有一数据库student(用Access2000做的),其中有一个表user。它有两个字段,一为username,另一个为userpassword。现本人用VB做了个登陆窗口,它有两个文本框(txtusername,txtuserpass),一个确定按钮(cmdok)。现如何编程才能验证在txtusername中输入的名字就是表USER中username字段的一个名字,并且txtuserpass就是它所对应的userpassword? 本人已经引用了micosoft activeX data Object 2.1 library
以下是程序部分: Option Explicit
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sqlstr As StringPrivate Sub cmdok_Click()
cn.Open "PROVIDER = Microsoft.Jet.OlEDB.4.0;" & "Data Source= h:\student.mdb;"
sqlstr = "select * from user where username ='" & txtusername & "'"
Set rs = cn.Execu (sqlstr)''''''''''''''''每次运行时,这儿都发生错误
If rs.EOF And rs.BOF Then 说是from子句发生错误!
MsgBox "无此用户", , "提示"
Else
If rs.Fields("userpassword") = txtuserpassword Then
'进入主程序
Else
MsgBox "密码不对"
End If
End If
rs.Close
cn.Close有谁能帮我看看,说说里面哪儿写得不对?
以下是程序部分: Option Explicit
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sqlstr As StringPrivate Sub cmdok_Click()
cn.Open "PROVIDER = Microsoft.Jet.OlEDB.4.0;" & "Data Source= h:\student.mdb;"
sqlstr = "select * from user where username ='" & txtusername & "'"
Set rs = cn.Execu (sqlstr)''''''''''''''''每次运行时,这儿都发生错误
If rs.EOF And rs.BOF Then 说是from子句发生错误!
MsgBox "无此用户", , "提示"
Else
If rs.Fields("userpassword") = txtuserpassword Then
'进入主程序
Else
MsgBox "密码不对"
End If
End If
rs.Close
cn.Close有谁能帮我看看,说说里面哪儿写得不对?
rs.open sqlstr,cn,adopenkeyset
Set rs = cn.Execu (sqlstr)'''''''''''''''' 这句改为
rs.open sqlstr,cn,adopenkeyset
我刚调试过,2000 vb6.0通过
就是说把这句连接数据库:cn.Open "PROVIDER = Microsoft.Jet.OlEDB.4.0;" & "Data Source= h:\student.mdb;"改为cn.open"student"---------student为数据源
这时就可以执行了,cn.execu也没有说错,请问这又是怎么一回事?
cn.Open "PROVIDER = Microsoft.Jet.OlEDB.4.0;" & "Data Source= h:\student.mdb;"
sqlstr = "select * from user where username ='" & txtusername & "'"
rs.Open sql,cn,1,3
If rs.EOF And rs.BOF Then
MsgBox "无此用户", , "提示"
Else
If rs.Fields("userpassword") = txtuserpassword Then
'进入主程序
Else
MsgBox "密码不对"
End If
End If
rs.Close
cn.Close