DoCmd.OutputTo+;使用SQL命令+;VBA
大家好,我在网上做了一些研究,但我找不到解决办法,希望这里有人能帮上忙。我的目标是将sql语句放入DoCmd.OutputToDoCmd.OutputTo+;使用SQL命令+;VBA,sql,vba,ms-access,Sql,Vba,Ms Access,大家好,我在网上做了一些研究,但我找不到解决办法,希望这里有人能帮上忙。我的目标是将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
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
比如说
Set tempSql= CurrentDb.OpenRecordset("SELECT * FROM SpecialEvent WHERE [HG_ID] = " & HG_ID & ";")
DoCmd.OutputTo acOutputQuery, "tempSql", acFormatXLS, strDir + "try.xls", 0
如果有人能指导我建立这种方法,我将不胜感激 您可以将查询的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中是&而不是+
加号可以用来连接,但它需要特别小心,因为它处理空值的方式。谢谢你,如果你需要删除查询,那么对于其他用户来说,这非常有效,就像我刚才添加DoCmd.DeleteObject acQuery,“Query1”一样