2015-06-23 51 views
1

我想迭代一个表中的数据库名称,打开数据库,检查是否存在查询,如果它删除它,然后从数据库导入一个查询这段代码正在执行。我不断收到Set badqueryname = "qry_InformationMailer"行的编译时错误,并且我正在尝试使用该错误设置要删除的查询的名称。这是该行抛出迭代数据库和删除查询

object required 

完整的语法错误:

​​

回答

1

当值赋给一个简单的变量类型,不要使用Set

'Set badqueryname = "qry_InformationMailer" 
badqueryname = "qry_InformationMailer" 

或者,如果你愿意,你可以使用Let代替Set

Let badqueryname = "qry_InformationMailer" 

但我没有看到Let经常使用。

实际上,在您的代码中,值badqueryname在您分配其值后再也不会更改。换句话说,它像一个常量一样使用,所以你可以使它成为一个常量。

Const badqueryname As String = "qry_InformationMailer" 

一个的这些变化应该消除对象所需错误。但是,那么你会遇到一个错误,在该行的未申报QRY ...

If qry.LoopName = badqueryname Then 

添加Option Explicit到您的模块的声明部分,然后运行调试 - >从VB编辑器的主菜单编译。

编译器还应该抱怨这里是因为是不宣...

For l = LBound(myArray) To UBound(myArray) 

解决任何编译器抱怨,然后运行调试 - >再编译。重复直到没有更多的编译错误。

+0

不错,赶上qry.LoopName应该读取qryLoop.Name。 –