RECORDSET问题

xieshy 2003-10-16 12:07:53
执行
Rs.Open "SELECT * FROM Currency", AdoConnectString, adOpenKeyset, adLockOptimistic
总提示:
--------------------------------------------------------
Error Open Recordset : SELECT * FROM Currency
91 Object variable or With block variable not set
--------------------------------------------------------
(后台数据库为MySQL)
为什么?如何解决?
...全文
112 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieshy 2003-10-16
  • 打赏
  • 举报
回复
Public Function SQLOpenTable(ByRef Rs As AdoDb.Recordset, AdoDAT As AdoDb.Connection, SqlOrTable, Optional ForwardOnly, Optional ReadOnly)
Dim FileOpen As String
Dim retry As Integer
On Error GoTo ErrOpen
retry = 0
SQLOpenTable = False
'adopenstatic
If AdoDAT.State = 0 Then
'Reconnect
AdoDAT.Open
End If

Set Rs.ActiveConnection = AdoDAT
Rs.CursorLocation = adUseServer

If Not IsMissing(ReadOnly) Then
Rs.Open SqlOrTable, AdoDAT, adOpenStatic, adLockOptimistic, adLockReadOnly
ElseIf Not IsMissing(ForwardOnly) Then
Rs.Open SqlOrTable, AdoDAT, adOpenForwardOnly, adLockOptimistic
Else
'Rs.Open SqlOrTable, AdoDAT, adOpenDynamic, adLockOptimistic, adAsyncFetch
Rs.Open SqlOrTable, AdoDAT, adOpenKeyset, adLockOptimistic

End If
SQLOpenTable = True
Exit Function
ErrOpen:
retry = retry + 1
DoEvents
If retry <= 5 Then
Resume
End If
E_No = Err.Number
E_Desc = Err.Description
E_Desc = SqlOrTable & vbCrLf & E_Desc
MsgBox "Error Open Recordset : " & SqlOrTable & vbCrLf & Err.Number & " " & Err.Description
SysErrLog E_No & " " & E_Desc
Err.Clear
Exit Function
Exitme:
End Function
sword281 2003-10-16
  • 打赏
  • 举报
回复
adoconnectsting应该为一adodb.connection对象,不是string类型,最好将你的数据库连接代码写出来看一下
sword281 2003-10-16
  • 打赏
  • 举报
回复
首先你的函数的传回值应为boolean要加上,
adodat.open 后差constr
在Set Rs.ActiveConnection = AdoDAT前加一句
set rs=new adodb.recordset
yoki 2003-10-16
  • 打赏
  • 举报
回复
或则
Public Function SQLOpenTable(ByRef Rs As AdoDb.Recordset, AdoDAT As AdoDb.Connection, SqlOrTable, Optional ForwardOnly, Optional ReadOnly)
改成:
Public Function SQLOpenTable(Rs As New AdoDb.Recordset, AdoDAT As AdoDb.Connection, SqlOrTable, Optional ForwardOnly, Optional ReadOnly)
yoki 2003-10-16
  • 打赏
  • 举报
回复

Dim FileOpen As String
Dim retry As Integer
后面加一句:
set rs=new adodb.recordset

你只是声明了,但是没有申请空间

1,216

社区成员

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

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