首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FileDialog选择文件,然后复制、粘贴、重命名、删除

使用FileDialog选择文件,然后复制、粘贴、重命名、删除
EN

Stack Overflow用户
提问于 2020-10-10 02:23:47
回答 1查看 231关注 0票数 1

在Access (2016)中,我试图从我们工作中使用的供应商那里导入各种Excel文件。它们的格式都不同,所以我需要在Access中为每个文件设置一个特定的已保存导入。然后,我希望用户能够单击导入按钮,并将excel文件导入到数据库中。

我最初使用的是Runsavedimportexport命令,但该命令有一个静态文件路径,并且我不能完全理解transferspreadsheet,因此无法使用它。

我的问题是,如何使用FileDialog打开文件选择器,让我的用户选择一个文件(可能是从桌面),然后将其保存为运行CopyFile的变量。在CopyFile运行并粘贴副本后,重命名为特定名称,运行runsavedimportexport,然后删除该文件。

我已经找到了每个代码的所有不同参数,但我正在努力将它们联系在一起。

到目前为止我所能做的就是

代码语言:javascript
复制
    Dim f    As Object
    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = False
    f.Show
EN

回答 1

Stack Overflow用户

发布于 2020-10-11 18:49:06

‘假设您已经添加了对Microsoft脚本库的引用,用于文件系统操作

‘假设您已经为文件对话框添加了对Microsoft Office Object 16库的引用

‘假设您已经使用外部数据选项卡保存了一些来自名为c:\yourdirectory\importme.xlsx的隐藏文件的导入

‘假设您还将这些导入的名称存储在名为QueryNames的access表中

然后创建一个包含列表框和按钮的窗体。将列表框的行源设置为QueryNames表,并将listbox.multiselect设置为none。

代码如下:

代码语言:javascript
复制
Private Sub cmdImportData_Click()
Dim fso As FileSystemObject
Dim filedialog As Office.filedialog
Dim filepath As String
dim targetpath as string: targetpath = c:\yourdirectory\importme.xlsx
Set fso = New FileSystemObject
Set filedialog = Application.filedialog(msoFileDialogFilePicker)
filedialog.AllowMultiSelect = False
If filedialog.Show = True Then
    filepath = filedialog.SelectedItems(1)
    fso.CopyFile filepath, targetpath, True
    Dim FirstQueryID As Integer: FirstQueryID = 1 ''crude way to select between 2 stored queries
    Dim SecondQueryID As Integer: SecondQueryID = 2
    If listboxofQueryNames = FirstQueryID Then
       DoCmd.RunSavedImportExport ("MyFirstSavedQuery")
       fso.DeleteFile targetpath
    End If
Else
    DoCmd.RunSavedImportExport ("MySecondSavedQuery")
    fso.DeleteFile targetpath
End If

End Sub

https://docs.microsoft.com/en-us/office/vba/api/access.application.filedialog Copy and paste a file through access vba的帮助链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64285407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档