DoCmd.OutputTo与SQL命令结合的VBA应用

3

大家好,我在网上做了一些研究,但是没有找到解决方案,希望这里有人能帮助。我的目标是将 SQL 语句放置到 DoCmd.OutputTo 中。

例如:

      Set tempSql= CurrentDb.OpenRecordset("SELECT * FROM SpecialEvent WHERE [HG_ID] = " & HG_ID & ";")

      DoCmd.OutputTo acOutputQuery, "tempSql", acFormatXLS, strDir + "try.xls", 0

如果有人能指导我如何构建这种方法,将不胜感激。

1个回答

5
您可以将查询的SQL设置为输出SQL,并在DoCmd.OutputTo中使用查询名称。
tempSql= "SELECT * FROM SpecialEvent WHERE [HG_ID] = " & HG_ID

If IsNull(DLookup("name", "msysobjects", "name='query1'")) Then
    CurrentDb.CreateQueryDef "Query1", tempSql 
Else
    CurrentDB.QueryDefs("Query1").SQL = TempSQL
End If


DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, strDir & "try.xls", 0

请注意,在VBA中连接符是&,而不是+。
加号可以用于连接,但需要非常小心,因为它在处理空值时的方式不同。

3
谢谢,这个方法很有效。对于其他看到这条信息的用户,如果你需要删除结尾处的查询,就像我一样,只需添加DoCmd.DeleteObject acQuery, "Query1"即可。 - KSM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接