【发布时间】:2021-09-09 17:58:41
【问题描述】:
我想在 Excel VBA 中编写一个小代码来检查查询是否已经存在。那里已经有一堆自定义功能,但似乎没有任何效果。这一切似乎都归结为一件事:
"db = CurrentDb" 返回一个错误,我不知道为什么。
代码如下:
Sub Test()
Dim qdf As DAO.QueryDef
Dim db As DAO.Database
Set db = CurrentDb 'This line returns the error (object required)
For Each qdf In db.QueryDefs
If qdf.Name = "QueryName1" Then
msgbox ("query already exists")
Exit For
End If
Next
End Sub
编辑:猜猜这与我使用 ADO 的事实有关吗?加载 DAO 库只会返回一个 DLL 错误,所以我只是坚持使用 ADO..
有人知道如何在 ADO 中执行此操作吗?
【问题讨论】:
-
我刚刚在 MS Access 中运行了您的代码,它按预期工作。
CurrentDb是一个 Access 应用程序方法。如果您尝试在 Excel 中使用它,那么您需要澄清您的问题。 -
感谢您的回答。是的,我正在尝试在 Excel 中使用它。您的回答已经有所帮助,我不知道 CurrentDb 是一个未在 Excel 中定义的特定于 Access 的全局变量。那么我该如何解决这个问题?就像我说的,由于某种原因我无法打开 DAO 3.6 数据库。它只是返回:“加载 DLL 时出错”。我也不能使用 Set Db = OpenDatabase("C:\Users\Tim\Databases\blabla.mdb") 因为我想在具有不同路径的多台笔记本电脑上使用代码。最后我想做的就是检查一个查询是否已经存在..
-
Access 是一个数据库。 Excel 不是。
CurrentDb在 Excel 中毫无意义。你的查询定义在哪里?你的表定义?没有。这就像尝试在 excel 中使用 MS Word 目录对象一样。这没有道理。你想做什么? -
我明白你现在要做什么了。通过这个例子,你应该能够使用
ActiveWorkbook.Queriesstackoverflow.com/questions/61767220/…来检查一个excel查询是否存在
标签: vba