Ms access Access:根据查询将字段导出到excel

Ms access Access:根据查询将字段导出到excel,ms-access,Ms Access,我希望在查询表格的基础上,将一些文件从MS Access导出到Excel中 就像这样,查询将是 select * from table where field = 0 我想循环查询,直到字段为9,我想保存每个字段 产生一个不同的名称,如field1、field2 这需要如何修改 strqry = "select * from table where field = 1" DoCmd.TransferSpreadsheet acExport, _

我希望在查询表格的基础上,将一些文件从MS Access导出到Excel中

就像这样,查询将是

select * from table where field = 0    
我想循环查询,直到字段为9,我想保存每个字段 产生一个不同的名称,如field1、field2

这需要如何修改

strqry = "select * from table where field = 1"
DoCmd.TransferSpreadsheet acExport, _
                            acSpreadsheetTypeExcel9, _
                            "strqry", _
                            "C:\Reports\Data_Analysis1.xls", _
                            True

另外,如何将第一张工作表命名为field1,在下一个循环中命名为field2,在TransferSpreadsheet命令的范围字段中指定工作表名称

DoCmd.TransferSpreadsheet acExport, _
                            acSpreadsheetTypeExcel9, _
                            "tablename", _
                            "filename.xls", _
                            True, _
                            "sheetname"

在TransferSpreadsheet命令的范围字段中指定图纸名称

DoCmd.TransferSpreadsheet acExport, _
                            acSpreadsheetTypeExcel9, _
                            "tablename", _
                            "filename.xls", _
                            True, _
                            "sheetname"

所以你真正想要的是这样的东西

dim i as integer

for i = 1 to 9 
    strqry = "select * from table where field = "  & i
    DoCmd.TransferSpreadsheet acExport, _
                              acSpreadsheetTypeExcel9, _
                              strqry, _
                              "filename.xls", _
                              True, _
                              "sheetname_" & i
next i

所以你真正想要的是这样的东西

dim i as integer

for i = 1 to 9 
    strqry = "select * from table where field = "  & i
    DoCmd.TransferSpreadsheet acExport, _
                              acSpreadsheetTypeExcel9, _
                              strqry, _
                              "filename.xls", _
                              True, _
                              "sheetname_" & i
next i

我终于这样做了

For i = 1 To 9
    CurrentDb.QueryDefs("MyQuery").SQL = "Select * from table Where field = " & i
    DoCmd.TransferSpreadsheet acExport, _
                                acSpreadsheetTypeExcel9, _
                                "MyQuery", _
                                "C:\Reports\Data_Analysis.xls", _
                                True, _
                                "Field_" & i
Next i

我终于这样做了

For i = 1 To 9
    CurrentDb.QueryDefs("MyQuery").SQL = "Select * from table Where field = " & i
    DoCmd.TransferSpreadsheet acExport, _
                                acSpreadsheetTypeExcel9, _
                                "MyQuery", _
                                "C:\Reports\Data_Analysis.xls", _
                                True, _
                                "Field_" & i
Next i

:D您复制了我的转帐单行;但是有了这个查询结果就不会被导出了,对吗?我的意思是docmd中给出的表名将被导出。但是查询在哪里执行呢。如果我不见了,我很抱歉something@Jason-是的。把它想象成拥抱和延伸。@tksy,你是对的,它应该是strqry,而不是tablename。我现在已经更正了。:D您复制了我的转帐单行;但是有了这个查询结果就不会被导出了,对吗?我的意思是docmd中给出的表名将被导出。但是查询在哪里执行呢。如果我不见了,我很抱歉something@Jason-是的。把它想象成拥抱和延伸。@tksy,你是对的,它应该是strqry,而不是tablename。我现在已经改正了。我很高兴你发现了一些有用的东西。这样做的负面影响是,最终会动态更新查询对象。如果它只在一个地方使用就可以了,但是如果它在其他地方使用,这对以后的开发人员来说是非常混乱的,特别是如果他们在设计器中更新查询,然后发现它又恢复到了原始状态。我很高兴你找到了一些有用的东西。这样做的负面影响是,最终会动态更新查询对象。如果它只在一个地方使用就可以了,但是如果它在其他地方使用,这对以后的开发人员来说是非常混乱的,特别是如果他们在设计器中更新查询,然后发现它又恢复到了原始状态。我去过那里,做过那件事。