将查询导出为共享工作簿

时间:2011-03-14 12:06:31

标签: ms-access access-vba ms-access-2003

我有代码可以遍历我选择的查询并将它们导出为标准的.xls文件。

我的问题是,如何将这些导出为共享工作簿?

一个正在工作的团队使用大约20个工作簿,他们手动将它们设置为共享,这样他们就可以同时访问它们。

目前,要输出,我运行命令:

DoCmd.OutputTo acQuery, Query, acFormatXLS, output_folder & DirectoryFriendlyQuery & ".xls", False, "", 0

2 个答案:

答案 0 :(得分:0)

这似乎不是您的选择之一。我不知道怎么做。希望您可以在系统级别解决此问题(换句话说,将它们全部放在Access上)。

答案 1 :(得分:0)

您需要使用办公自动化。从VBA IDE(alt + F11)>>设置对Microsoft Excel对象库的引用。工具>>引用。

Dim xlApp As Excel.Application, wb As Excel.Workbook`

Set xlApp = CreateObject("Excel.Application")
Set wb = xlApp.Workbooks.Open(FileName:=myfile)
wb.SaveAs accessmode:=xlShared, FileName:=myfile
wb.Close savechanges:=false
Set sb = Nothing
xlApp.Quit`

通过不必保存文件两次(一个在访问中并再次在excel中)来使这个更快一点,你可以在内存中创建工作表。

Dim xlApp As Excel.Application, wb As Excel.Workbook, sh as excel.worksheet

Set xlApp = CreateObject("Excel.Application")
Set wb = xlApp.Workbooks.Open(FileName:=myfile)
set sh = wb.worksheets.add()
sh.cells(1,1).copyfromrecordset Data:=currentdb.openrecordset(name:="myquery")
wb.SaveAs accessmode:=xlShared, FileName:=myfile
wb.Close savechanges:=false
Set sb = Nothing
xlApp.Quit`