目的
APPROACH
问题
DoCmd.TransferSpreadsheet
)来导出一个交叉的?为什么这么难让我感到惊讶,为天真的道歉
答案 0 :(得分:0)
我只是在MS Access中创建我想要的查询。
然后在excel中我有一个我编写的宏来运行查询并输出到工作表。见下面的例子。
Dim cnString As String
Dim rs As New ADODB.Recordset
'Change connection string to an MS Access one
cnString = "Provider=xx;Server=xx,49168;Database=xx;"
rs.Open queryName, cnString, adOpenStatic, adLockOptimistic
'Output Headings
For i = 1 To rs.Fields.Count
Sheets(PasteSheet).Range(pasteCell).Offset(0, i - 1) = rs.Fields(i - 1).Name
Next i
'Output data
Sheets(PasteSheet).Range(pasteCell).Offset(1, 0).CopyFromRecordset rs
rs.close
如果你想在MS Access中完成所有这些操作,那么修改它不需要太多。您只需要创建一个新工作簿,然后对上面的代码执行非常类似的操作。
答案 1 :(得分:0)
从我原来的帖子中跟进。
您似乎可以使用DoCmd.TransferSpreadsheet
导出交叉稳定。
我已经定义了下面的工作代码:
outputQuery = [your cross table query]
outputPath = [save-to file location]
outputFileName = [save-to file name]
DoCmd.TransferSpreadsheet acExport, SpreadsheetType:=acSpreadsheetTypeExcel12Xml, TableName:=outputQuery, FileName:=outputPath & outputfilename