【问题标题】:"Save as..." dialog box in MSAccess vba: how?MS Access vba中的“另存为...”对话框:如何?
【发布时间】:2012-07-29 09:40:50
【问题描述】:

在 MSAccess 中,我有一个带有按钮的掩码。当用户点击按钮时,表格中的数据会导出到 .txt 文件中:

Private Sub Command_Click()
Dim Rst As DAO.Recordset
Dim AField As DAO.Field
Dim TempStr As String
Dim FileNumber
FileNumber = FreeFile
Open "c:\table.txt" For Output As #FileNumber
Set Rst = CurrentDb.OpenRecordset("Tabella1", dbOpenForwardOnly)
Do While Not Rst.EOF
    For Each AField In Rst.Fields
        If (AField.Name <> "ID") Then
            TempStr = TempStr & AField.value & "    "
        End If
    Next
    Print #FileNumber, Left(TempStr, Len(TempStr) - 1)
    TempStr = ""
    Rst.MoveNext
Loop
Rst.Close
Set Rst = Nothing
Close #FileNumber
End Sub

它可以工作,但我会通过允许用户选择导出数据的文件来显示“另存为...”对话框。

有可能吗?

【问题讨论】:

    标签: vba ms-access dialog export ms-access-2007


    【解决方案1】:

    您可以设置对 Microsoft Office x.x 对象库的引用并使用 FileDialog。

    FileDialog Properties

    Sub ShowFileDialog()
        Dim dlgOpen As FileDialog
        Set dlgOpen = Application.FileDialog(msoFileDialogSaveAs)
        With dlgOpen
            .InitialFileName = "Z:\docs\"
            .Show
        End With
    End Sub
    

    还有:How do I get a single file name out of a File Dialog object in VBA (for MS Access 2007)?

    【讨论】:

    • 有不同的方法(不使用对象库)?
    • 您可以向他们展示一个表单(最好的)或 InputBox,然后自行检查是否已经存在具有该名称的文件以及该名称是否合法且合适。跨度>
    • msoFileDialogSaveAs 在 Access 中不受支持。过滤器属性,即不起作用 - 这对于 SaveAs Dialog 来说非常重要。
    【解决方案2】:

    有关 API 解决方案,请参见此处: http://access.mvps.org/access/api/api0001.htm

    对我来说效果很好。 只需复制并粘贴到新模块中即可。

    【讨论】:

    • 顺便说一句,链接中的代码不适用于 64 位 MS Access。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多