是否存在Access 2010 64bit的"打开文件"对话框?

Gre*_*zer 4 ms-access vba openfiledialog access-vba ms-access-2010

如何获取Access 2010 64bit的"打开文件"对话框?通常我会使用通用对话框控件,但它是32位,不能与Access 2010 64位一起使用.

Alb*_*lal 7

您可以使用内置文件对话框.访问2003以来一直在那里.

Dim f    As FileDialog 
Set f = Application.FileDialog(msoFileDialogFilePicker) 
f.Show 
MsgBox "file choose was " & f.SelectedItems(1) 
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以晚绑定:

以上需求:Microsoft Office 14.0对象库

如果删除对14.0对象库的引用,则以下代码将在没有任何引用的情况下工作:

Dim f    As Object 
Set f = Application.FileDialog(3) 
f.AllowMultiSelect = True 
f.Show 

MsgBox "file choosen = " & f.SelectedItems.Count 
Run Code Online (Sandbox Code Playgroud)

因此,上述工作在2003年以后的运行时或常规版本中工作,也适用于32或64位版本的Access 2010.

  • FileSearch不相信运行时附带了它,因此不能总是假定。自Access 2003以来,FileDialog就一直存在,始终与运行时一起使用,并且无需设置任何引用(后期绑定)即可工作。该对话框是所有Office的一部分,并以64位版本运行(如您所述)。我确实同意可以将其删除,但从历史上看,从2003年至今,此选择本来会比api麻烦的多,并且包括新的64位版本。我相当采纳了这一点,如果我吃乌鸦,我会在公共场合这样做,但是我认为这是目前的最佳选择。YMMV。 (2认同)

Ton*_*ews 6

我从来没有在打开的文件对话框中使用控件,因为它只是API调用的包装器. 调用标准的Windows文件打开/保存对话框 此外,控件可能存在分发和版本控制问题,因此我会尽力避免它们.


Gre*_*zer 2

这个人有一个工具,可以生成与 64 位兼容的打开文件的代码。它是免费软件。

http://www.avenius.de/en/index.php?产品:IDBE_Tools

这是唯一有效的方法。