2008-12-17 62 views
1

我正在寻找基于查询表将一些文件从MS Access导出到Excel中。访问:基于查询将字段导出为ex​​cel

是这样的查询将是

select * from table where field = 0  

我想循环查询,直到场是9,我想每个 结果保存为不同的名称,如字段1,字段2

如何这将不得不被修改?

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

而且我怎么命名的第一张为FIELD1并在下一循环场2

回答

2

我终于得到它做这样

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 
1

Speicify在TransferSpreadsheet的命令的“范围”字段的表名称。

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

所以你真正想要的是像这样

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 
+0

:D你抄我的TransferSpredsheet线。 ;) – LeppyR64 2008-12-17 19:39:56

+0

但与此查询的结果将不会被正确导出?我的意思是在docmd中给出的表名将被导出。但是查询在哪里执行。 对不起,如果我缺少东西 – tksy 2008-12-18 08:01:50