在 Microsoft Access 中使用 VBA 编辑直通 SQL 查询

问题描述

在 Access 中,我有一个 SQL passthrough 查询,它只返回按名字过滤的整个表,如下例所示。

SELECT * FROM dbo.Original_Data
WHERE first_name = 'Mike';

我正在尝试编写一些 VBA,单击按钮即可获取直通查询,并将“Mike”替换为我输入的任何名称(稍后将由组合框完成,但这是另一个步骤),因此它只会返回结果以我输入的名称为准。

目前我有这个,其中 TempPT 是直通查询的名称。

Private Sub Command12_Click()

TempPT = Replace(TempPT,"Mike","Sam")    
DoCmd.OpenQuery "TempPT"

End Sub

你可能会说这行不通...

有没有一种方法可以实现我在这里想要实现的目标,以便我在放置“Sam”的位置输入的任何内容都是直通查询的过滤依据?

我对 VBA 毫无用处,您能提供的任何帮助将不胜感激。我正在使用直通,因为我处理的数据库很大并且阻塞了访问。

谢谢

解决方法

您需要编辑查询的 SQL 属性。大概是这样的:

With CurrentDb().QueryDefs("TempPT")
    .SQL = Replace(.SQL,"Mike","Sam") 
End With

DoCmd.OpenQuery "TempPT"

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...