【问题标题】:DoCmd.TransferSpreadsheet Export: Let user choose save destination?DoCmd.TransferSpreadsheet Export:让用户选择保存目的地?
【发布时间】:2014-01-08 22:36:06
【问题描述】:

我成功运行 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 时,我必须怎么做才能允许用户选择保存目标?

【问题讨论】:

    标签: ms-access export vba


    【解决方案1】:

    还应该包含其他代码。在这里检查:

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

    我还发现这可能对遇到相同错误的其他人有所帮助:

    “你是否也得到了注释中提到的附加代码

    注意:此代码仍需要 Ken 提供的 GetOpenFileName 例程 盖茨。确保复制本文中的函数。

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

    【讨论】:

    • 这是一段如此大的代码,我只是没有意识到它是必要的前体。而且我不得不花 30 分钟调试最有可能由遗留格式引起的问题(即将 Global Const 更改为 Private Const)以及摆弄其他一些控件。尽管如此,它已经启动并运行
    猜你喜欢
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    相关资源
    最近更新 更多