如何在MS Access中以编程方式更改querydef sql

use*_*291 0 ms-access

我已经做好了

Dim qd as querydef
set qd = Querydefs("MyQuery")
qd.sql = "..."
Run Code Online (Sandbox Code Playgroud)

在调试qd.sql已更新但物理MyQuery仍包含旧的SQL.

如何更新此物理查询?

微软给出的源代码 http://msdn.microsoft.com/en-us/library/bb177500.aspx

也不起作用.

Fio*_*ala 5

除了对象之外,不应使用SET.你需要QueryDefs的一个对象,所以:

Dim qd As QueryDef
Set qd = CurrentDb.QueryDefs("MyQuery")
qd.SQL = "SELECT Category FROM Categories"
Run Code Online (Sandbox Code Playgroud)

确保SQL有效,否则会出错.

  • 您确定*SQL是否使用RunSQL执行更正?如果您关闭了SetWarnings,您永远不会知道是否有错误.唯一的检查方法是将SQL粘贴到QBE中的新QueryDef中,并尝试在QBE中运行它. (2认同)