如何在 VBA 代码中的 ms-access 中执行查询?

Posted

技术标签:

【中文标题】如何在 VBA 代码中的 ms-access 中执行查询?【英文标题】:How to execute a query in ms-access in VBA code? 【发布时间】:2010-12-31 01:08:29 【问题描述】:

如何使用 VBA 代码执行查询以返回 ms-access 数据库中的记录?

【问题讨论】:

是的,它将返回本地存储在 db 中的图片的路径和每个图片的 id 您希望它们返回哪里以及如何返回? 【参考方案1】:

这样的事情怎么样...

Dim rs As RecordSet
Set rs = Currentdb.OpenRecordSet("SELECT PictureLocation, ID FROM MyAccessTable;")

Do While Not rs.EOF
   Debug.Print rs("PictureLocation") & " - " & rs("ID")
   rs.MoveNext
Loop

【讨论】:

【参考方案2】:

查看本教程,了解如何在 VBA 中使用 SQL:

http://www.ehow.com/how_7148832_access-vba-query-results.html

对于不会返回结果的查询,请使用 (reference here):

DoCmd.RunSQL

如果愿意,请使用 (reference here):

Dim dBase As Database
dBase.OpenRecordset

【讨论】:

@Remou 请提供有关 DoCmd.RunQuery 的更多信息,我不想使用 SQL,我已经在 ms-access 中完成了查询 哎呀 Openquery:msdn.microsoft.com/en-us/library/bb238028(v=office.12).aspx。使用打开查询,您会收到警告消息,但如果它们成为问题,可以将其关闭并重新打开。 @Remou 谢谢,我在 ms-access 中有一个表,其中包含本地图片的路径并想打印它,请帮我检查此链接***.com/questions/4567204/… 关闭 SetWarnings 绝不是一个好主意。一方面,您将不知道是否出了问题。也就是说,DoCmd.SetWarnings False 不仅关闭了确认提示,还关闭了任何错误的报告。而在 DoCmd.RunSQL 的情况下,您无法知道整个更新是否成功,因为 SQL 将被执行并且尽可能多的 UPDATE/INSERT 完成。我不知道 DoCmd.OpenQuery 是否有同样的缺陷,但它可能有。对于实现@Remou 的第一个建议的替代品,请在 SO 中搜索我的 SQLRun() 函数。

以上是关于如何在 VBA 代码中的 ms-access 中执行查询?的主要内容,如果未能解决你的问题,请参考以下文章

我希望从 ms-access 2013 数据库中的所有表单、报告和模块中导出 vba 源代码

如何在ms-access vba中单击命令按钮单击以更改代码以更改控件属性

如何在 ms-access 2007 VBA 中计算 mod 97

如何在 ms-access VBA 中检索表的 odbc 数据库名称

编辑器中的 ms-access VBA 长 sql 查询字符串行拆分(内联双引号)

有没有办法用 vba 在 MS-Access 中截屏?