MS ACCESS VBA作为用户保存为路径

时间:2016-10-11 14:35:04

标签: vba ms-access

默认情况下,以下代码将导出的文件发送到我的文档

Public Sub cmdExport_Click()

    Application.ExportXML ObjectType:=acExportQuery, _
        DataSource:="export1", DataTarget:="whatever.xml"

End Sub

是否可以向用户询问文件路径或将其动态设置为他/她的桌面?

2 个答案:

答案 0 :(得分:2)

您可以使用FilDialog对象让用户随时随地选择文件路径/文件名。使用此方法需要引用Microsoft Office XX.0 Object Library(我认为只有在Office.MsoFileDialogType}

使用msoFileDialogSaveAs = 2常量时才需要它。
Dim oDialog As FileDialog
Set oDialog = FileDialog(msoFileDialogSaveAs)
oDialog.InitialFileName = "whatever.xml"
oDialog.Show
If oDialog.SelectedItems.Count > 0 Then
    Dim savePath As String
    savePath = oDialog.SelectedItems(1)
    Application.ExportXML ObjectType:=acExportQuery, DataSource:="export1", DataTarget:=savePath 
End If

答案 1 :(得分:0)

Public Sub cmdExport_Click()

    Application.ExportXML ObjectType:=acExportQuery, DataSource:="export1", DataTarget:=currentproject.path & "whatever.xml"

End Sub

这可能会将其保存到当前项目的文件中。 关于桌面,您可以这样做:

Public Sub cmdExport_Click()

    Application.ExportXML ObjectType:=acExportQuery, DataSource:="export1", DataTarget:="C:\Users\" & environ("Username") & "\Desktop\"&"whatever.xml"

End Sub

但它并不总能奏效。例如,如果主驱动器不是C:,或者以其他方式安装了窗口。