Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何向transferText命令添加“浏览文件”对话框?_Vba_File_Ms Access_Dialog - Fatal编程技术网

Vba 如何向transferText命令添加“浏览文件”对话框?

Vba 如何向transferText命令添加“浏览文件”对话框?,vba,file,ms-access,dialog,Vba,File,Ms Access,Dialog,我正在MS Access中创建一个宏,用于将CSV文件导入到表中。我正在使用TransferText操作导入CSV字符串,我希望允许用户浏览包含CSV字符串的文件。 如何显示“浏览”对话框以允许用户选择文件 见。但是,这需要VBA代码。请参阅。但是,这需要VBA代码。答案可以在找到。答案可以在找到。我想说的是@Tony Toews和@draice推荐的API调用的第二选择是使用Application.FileDialog对象。只要VBA在Access中,它就一直是Office automatio

我正在MS Access中创建一个宏,用于将CSV文件导入到表中。我正在使用TransferText操作导入CSV字符串,我希望允许用户浏览包含CSV字符串的文件。
如何显示“浏览”对话框以允许用户选择文件

见。但是,这需要VBA代码。

请参阅。但是,这需要VBA代码。

答案可以在找到。

答案可以在找到。

我想说的是@Tony Toews和@draice推荐的API调用的第二选择是使用Application.FileDialog对象。只要VBA在Access中,它就一直是Office automation库的一部分,但在从A2002或A2003开始的Access的最新版本中,我不知道是哪个版本,顶级Access应用程序为该对象提供了包装。但是,请注意,如果没有对Office automation库的引用,则在Intellisense中显示的枚举值在没有引用的情况下无法使用。一条有用的错误消息会通知您这一点,并提供创建引用的机会。简而言之,如果您使用它,最好像使用任何具有后期绑定的自动化对象一样使用它,但不必使用Application.CreateObject初始化顶级对象,因为它已经在那里供您使用

编辑:

@德拉伊斯问:

我不明白下面的内容 你写的声明:这个 顶级访问应用程序 提供了此对象的包装器 最好像你一样使用它 具有后期绑定的自动化对象

Tony的API代码可以在每个版本的Windows中使用,而且因为微软相信向后兼容,所以在未来的Windows版本中,他们永远不会破坏这个API调用

除非将引用添加到Office Automation库中,否则FileDialog对象在VBA中不易使用。最好尽量减少Access数据库中的引用数量,因为各种各样的事情都可能使它们混乱,并导致应用程序中断任何缺少的引用,从而阻止所有VBA代码运行。为了避免缺少引用的问题,我们使用后期绑定,这样您编写的代码就不依赖于外部库

Microsoft可能会从Access的未来版本中删除此对象。FileSearch对象是一种类似的情况,它是在A95/97中作为Office Automation库的一部分引入的,然后在2000年创建了一个围绕它的包装器,但Microsoft在2007年将其删除,没有提供任何替代方案。MS可以选择在Access的未来版本中删除FileDialog对象,然后代码就会中断。但是API调用永远不会中断


我想说的另一种选择是@Tony Toews和@draice推荐的API调用的第二选择,即使用Application.FileDialog对象。只要VBA在Access中,它就一直是Office automation库的一部分,但在从A2002或A2003开始的Access的最新版本中,我不知道是哪个版本,顶级Access应用程序为该对象提供了包装。但是,请注意,如果没有对Office automation库的引用,则在Intellisense中显示的枚举值在没有引用的情况下无法使用。一条有用的错误消息会通知您这一点,并提供创建引用的机会。简而言之,如果您使用它,最好像使用任何具有后期绑定的自动化对象一样使用它,但不必使用Application.CreateObject初始化顶级对象,因为它已经在那里供您使用

编辑:

@德拉伊斯问:

我不明白下面的内容 你写的声明:这个 顶级访问应用程序 提供了此对象的包装器 最好像你一样使用它 具有后期绑定的自动化对象

Tony的API代码可以在每个版本的Windows中使用,而且因为微软相信向后兼容,所以在未来的Windows版本中,他们永远不会破坏这个API调用

除非将引用添加到Office Automation库中,否则FileDialog对象在VBA中不易使用。最好尽量减少Access数据库中的引用数量,因为各种各样的事情都可能使它们混乱,并导致应用程序中断任何缺少的引用,从而阻止所有VBA代码运行。为了避免缺少引用的问题,我们使用后期绑定,这样您编写的代码就不依赖于外部库

Microsoft可能会从Access的未来版本中删除此对象。FileSearch对象是一种类似的情况,它是在A95/97中作为Office Automation库的一部分引入的,然后在2000年创建了一个围绕它的包装器,但Microsoft在2007年将其删除,没有提供任何替代方案。MS可以选择在Access的未来版本中删除FileDialog对象,然后删除您的代码 会破裂。但是API调用永远不会中断


这几乎是我在工作中使用Access 2002 XP的翻版,我做的第一件事就是购买Access 2002开发者手册。有些人认为它是访问编程的圣经。它包括大量的示例代码。事实上,Tony Toews指出的链接来自该书的一位作者,但这本书更好地解释了如何使用它。这几乎是我在工作中使用Access 2002 XP的翻版,我做的第一件事就是购买Access 2002开发者手册。有些人认为它是访问编程的圣经。它包括大量的示例代码。事实上,Tony Toews指向的链接来自该书的作者之一,但该书更好地解释了如何使用它。感谢您的回答!然而,我是一名编程新手和MS Access新手,所以我发现你的部分答案相当令人困惑。为什么它是API调用的第二选择?从初学者的角度来看,Application.FileDialog似乎简单得多。另外,我不理解您编写的以下语句:顶级访问应用程序为该对象提供了一个包装器最好像使用任何具有后期绑定的自动化对象一样使用它谢谢您的回答!然而,我是一名编程新手和MS Access新手,所以我发现你的部分答案相当令人困惑。为什么它是API调用的第二选择?从初学者的角度来看,Application.FileDialog似乎简单得多。另外,我不理解您编写的以下语句:顶级访问应用程序为这个对象提供了一个包装器,最好像使用任何具有后期绑定的自动化对象一样使用它