对象变量或 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 语句执行初始化。
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\数据库名.mdb;Persist Security Info=False" '连接数据库语句不能缺少
Adodc2.RecordSource = "Select * From 数据表" '连接数据表的语句
Adodc2.Refresh '必须更新Adodc2控件,否则记录集将不存在
'上面的几个语句是不能缺少的!
Adodc2.Recordset.MoveFirst '然后才能操作数据表
在提示错误的代码行位置,采用如下格式,以免返回的记录为0
Adodc2.Refresh
If Not Adodc2.Recordset.EOF Then
Adodc2.Recordset.MoveFirst
......
End If