vb实时错误‘91’对象变量或WITH 块变量未设置问题

2025-03-01 04:48:20
推荐回答(4个)
回答1:

对象变量或 With
块变量没有设置(错误 91)

创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用 Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用With 语句进入点来执行初始化。此错误有以下的原因和解决方法:
试图使用的对象变量,还没有用一个正确对象的引用来赋值。
给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略Set
语句的话,那么引用 MyObject 将会产生错误:Dim MyObject As Object ' 创建对象变量。
Set MyObject = Sheets(1) ' 创建一个正确的对象引用。
MyCount = MyObject.Count ' 计数值赋给 MyCount。
试图用的对象变量已经被设为 Nothing。 Set MyObject = Nothing ' 释放此对象。
MyCount = MyObject.Count ' 引用了已释放的对象。
再指定引用给对象变量。例如,使用新的Set
语句给对象设置新的引用。
此对象是正确的对象,但没有被设置,因为在对象库中,在
“引用” 对话框中没有被选取。
在 “添加引用” 对话框选择对象库。
在With 块内GoTo 语句的去向。不要跳进With 块。确保块使用 With 语句进入点以执行初始化。
当选了 “设置下一条语句” 命令时,在With 块内指定了一行。With 块必须用With 语句执行初始化。

回答2:

对象变量或 With 块变量没有设置(错误 91)

创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用
Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用
With 语句进入点来执行初始化。此错误有以下的原因和解决方法:

1.试图使用的对象变量,还没有用一个正确对象的引用来赋值。

给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略 Set
语句的话,那么引用 MyObject 将会产生错误:

Dim MyObject As Object    ' 创建对象变量。
Set MyObject = Sheets(1)    ' 创建一个正确的对象引用。
MyCount = MyObject.Count    ' 计数值赋给 MyCount。

2.试图用的对象变量已经被设为 Nothing。

Set MyObject = Nothing    ' 释放此对象。
MyCount = MyObject.Count    ' 引用了已释放的对象。

再指定引用给对象变量。例如,使用新的 Set
语句给对象设置新的引用。

3.此对象是正确的对象,但没有被设置,因为在对象库中,在
“引用” 对话框中没有被选取。

在 “添加引用” 对话框选择对象库。

4.在 With 块内GoTo 语句的去向。

不要跳进 With 块。确保块使用 With
语句进入点以执行初始化。

5.当选了 “设置下一条语句” 命令时,在 With 块内指定了一行。

With 块必须用 With
语句执行初始化。

回答3:

这一句有问题,需要检查一下:Set mrc = ExecuteSQL(txtSQL, MsgText)
记录集未打开或已关闭或者没能正确传递出来

回答4:

Dim mrc As ADODB.Recordset
这句只是声明了这样的一个对象,没有为这个变量生成实体,没有分配内存空间
可以使用隐式声明
dim mrc as new adodb.recordset
或者显示声明
Dim mrc As ADODB.Record
Set mrc = New ADODB.Recordset