原数据库为access97,转换成2000后,将provider修改为jet4.0,出现一些错误,不知原代码有没有问题,请各位帮我看一下好吗?谢谢了On Error GoTo errHandle
.... With AdoPwd
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.CommandType = adCmdText 'adCmdUnknown
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" & _
"Data Source=" & App.Path & "\database\PHONErepair.MDB;" & "Jet OLEDB:Database Password=admin"
.RecordSource = "select * from user where user_ID='" & userId & "' and user_pwd='" & userOldPwd & "'"
.Refresh
End With If Not (AdoPwd.Recordset.EOF And AdoPwd.Recordset.BOF) Then '执行到这一句时就跳到errhandle去了?单步执行出现AdoPwd.Recordset.EOF =<对象变量或with块变量未设置>
userPwd = Trim$(Me.txtNewPwd.Text)
userVerifyPwd = Trim$(Me.txtVerifyPwd.Text)
.........errHandle:
AddErrLog Now(), 122
MsgBox "密码更新错误!", vbCritical
.... With AdoPwd
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.CommandType = adCmdText 'adCmdUnknown
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" & _
"Data Source=" & App.Path & "\database\PHONErepair.MDB;" & "Jet OLEDB:Database Password=admin"
.RecordSource = "select * from user where user_ID='" & userId & "' and user_pwd='" & userOldPwd & "'"
.Refresh
End With If Not (AdoPwd.Recordset.EOF And AdoPwd.Recordset.BOF) Then '执行到这一句时就跳到errhandle去了?单步执行出现AdoPwd.Recordset.EOF =<对象变量或with块变量未设置>
userPwd = Trim$(Me.txtNewPwd.Text)
userVerifyPwd = Trim$(Me.txtVerifyPwd.Text)
.........errHandle:
AddErrLog Now(), 122
MsgBox "密码更新错误!", vbCritical
解决方案 »
- 各位,我用VB做海康的HC4004监控卡,遇到个原始图象数据回调问题,大家帮我看看~
- 求救VB如何判断文件夹的访问权限?
- 大家能提供一个学习VB+数据库的好去处吗?
- 将ActiveX DLL组件的代码重新编译为将ActiveX EXE组件,不能调用?
- 如何控制Mshflexgrid的滚动框的值
- 如何用代码建立一个ODBC数据源
- 关于 vb 里ADO和 access 的问题
- winsock编程,如何解决控件数组的问题?请教,谢!!!
- 用dbgrid作为数据编辑窗口时,当某个字段的值为空时会出错
- 关注Power Builder 的命运:有人说“它快完了”,有谁不相信?
- ***求助:VB中怎样提取和保存access数据库中的图片***
- 有没有人做过刷卡读记录的?近来看看。
Dim rsTemp As New ADODB.Recordset
Dim szPath As String szPath = App.Path + "\aaa.mdb"
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & szPath
rsTemp.CursorLocation = adUseClient
rsTemp.Open "select * from table", strCnn ,adOpenDynamic,adLockPessimistic
to 左手:安装MDAC_TYP.EXE没有用
那样做是不对的,应该这样:dim iRe as adodb.recordset '要定义一个recordset类型变量,这个变量才能存储返回的记录集With AdoPwd
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.CommandType = adCmdText 'adCmdUnknown
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" & _
"Data Source=" & App.Path & "\database\PHONErepair.MDB;" & "Jet OLEDB:Database Password=admin"
.RecordSource = "select * from user where user_ID='" & userId & "' and user_pwd='" & userOldPwd & "'"
set iRe=.Execute 'Execute方法才是执行的.
End WithIf Not (iRe.EOF And iRe.BOF) Then '执行到这一句时就跳到errhandle去了?单步执行出现AdoPwd.Recordset.EOF =<对象变量或with块变量未设置>
userPwd = Trim$(Me.txtNewPwd.Text)
userVerifyPwd = Trim$(Me.txtVerifyPwd.Text)
.........errHandle:
AddErrLog Now(), 122
MsgBox "密码更新错误!", vbCritical
On Error GoTo errHandle
.... dim adopwd as new adodb.recordset
With AdoPwd
.CursorLocation = adUseClient
.open "select * from user where user_ID='" & userId & "' and user_pwd='" & userOldPwd & "'","Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" & _
"Data Source=" & App.Path & "\database\PHONErepair.MDB;" & "Jet OLEDB:Database Password=admin",adOpenDynamic,adLockOptimistic
End With If Not (AdoPwd.EOF And AdoPwd.BOF) Then '执行到这一句时就跳到errhandle去了?单步执行出现AdoPwd.Recordset.EOF =<对象变量或with块变量未设置>
userPwd = Trim$(Me.txtNewPwd.Text)
userVerifyPwd = Trim$(Me.txtVerifyPwd.Text)
.........errHandle:
AddErrLog Now(), 122
MsgBox "密码更新错误!", vbCritical
set adopwd=new adodb.connection
如果我不用控件,直接定义,dim rs as adodb.recordset ....
rs.open "select * from user where user_ID='" & userId & "' and user_pwd='" & userOldPwd & "'","...",adOpenDynamic,adLockOptimistic
...
同样出错,而如果直接打开user表不加条件判断就可以
rs.open "[user]","...",adOpenDynamic,adLockOptimistic是记录集没有打开符合这个条件的记录???不知道是什么原因??
to zjcxc(邹建) :用了你的方法,但执行到这一句时set iRe=.Execute 出现错误,说未找到方法或数据成员
改成:
dim rs as new adodb.recordset