DoCmd.TransferSpreadsheet导出:让用户选择保存目的地?

时间:2014-01-08 22:36:07

标签: ms-access export access-vba

我成功运行TransferSpreadsheet,将Access查询导出到指定位置的Excel文件:

Private Sub cmdExportQuery_Click()
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "trndOTQry", _ 
"\\company.com\root\share\public\D2S\D2S\D2S_Scorecard\Trend OT.xls"
End Sub

鉴于这是一个共享文件,我希望打开一个对话框,允许用户选择他选择的任何保存目的地。我发现this link有一个引用this article的好解决方案。当我将此代码插入我的窗口时:

Private Sub cmdExportQuery_Click()
Dim strSaveAsFilter As String
Dim strSaveAsFileName As String
strFilter = ahtAddFilterItem(strSaveAsFilter, "Excel Files (*.xls)", "*.xls")
strSaveAsFileName = ahtCommonFileOpenSave( _
OpenFile:=False, _
Filter:=strSaveAsFilter, _
Flags:=ahtOFN_OVERWRITEPROMPT Or ahtOFN_READONLY)

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "trndOTQry", _
strSaveAsFileName, , "-1", True
End Sub

我收到错误Compile Error: Sub or Function not defined,它以蓝色突出显示ahtAddFilterItem,并用黄色箭头突出显示黄色的Private Sub cmdExportQuery_Click()。我尝试制作一个Public Sub,但是当我点击按钮时没有任何反应。在将此查询导出到Excel时,我该怎么做才能让用户选择保存目标?

1 个答案:

答案 0 :(得分:1)

还应包含其他代码。点击这里:

http://access.mvps.org/access/api/api0001.htm

我也发现这可能对其他有同样错误的人有所帮助:

“您是否也获得了注释

中提到的其他代码

注意:此代码仍需要Ken提供的GetOpenFileName例程 盖茨。请务必复制本文中的功能。

将您发送给 http://www.mvps.org/access/api/api0001.htm