Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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
Ms access VBA代码导入-MS Access_Ms Access_Vba_Import - Fatal编程技术网

Ms access VBA代码导入-MS Access

Ms access VBA代码导入-MS Access,ms-access,vba,import,Ms Access,Vba,Import,我在一个访问表单后面有几个用VBA编码的按钮。我将有一些表格,这些表格的页脚将有这些按钮(新的,下一个,上一个,重复等)。这些按钮不是标准的宏,但非常简单,可以在我的所有表单中使用相同的代码 我该如何对这些按钮进行编码(它们在所有表单中都有相同的名称..有点像模板),这样我就不必在所有表单中复制粘贴代码了?有没有办法在模块中写入这些按钮,并让表单导入该模块的文本(类似于大多数其他语言) 只是好奇。使代码更清晰/更容易,因为编程的重点是我自己,但其他人将对表单代码进行小的编辑。最简单的方法是在标准

我在一个访问表单后面有几个用VBA编码的按钮。我将有一些表格,这些表格的页脚将有这些按钮(新的,下一个,上一个,重复等)。这些按钮不是标准的宏,但非常简单,可以在我的所有表单中使用相同的代码

我该如何对这些按钮进行编码(它们在所有表单中都有相同的名称..有点像模板),这样我就不必在所有表单中复制粘贴代码了?有没有办法在模块中写入这些按钮,并让表单导入该模块的文本(类似于大多数其他语言)


只是好奇。使代码更清晰/更容易,因为编程的重点是我自己,但其他人将对表单代码进行小的编辑。

最简单的方法是在标准代码模块中为每个按钮的功能创建一个
函数。然后将每个按钮的Click属性从
[Event Procedure]
更改为与该按钮对应的函数名(例如,
=MyPrevFunction([Form])

请注意,为了使其正常工作,您必须专门使用
功能
,而不是
子功能
。VBA中不要求函数返回任何内容,因此只需将
function
一词替换为
Sub
即可进行更改


一张图片胜过千言万语。

正如@mwolfe02所建议的那样,您可以在子表单中设置按钮,这意味着只需要编辑一组按钮,或者更好的是,设置您自己的自定义菜单。这些菜单可以按表单调用,也可以作为应用程序的“标准”菜单调用。您甚至可以拥有自己的右键单击菜单。

我曾想过这一点,但按钮大量使用“我”关键字,因此我必须始终将表单传递给函数。不难。我想如果有某种方法可以“导入”一组代码(比如PHP可以),我就可以有一个“主脚本”和一个导入。从这些答案来看,VBA并没有我想的那么灵活。谢谢这其实并不难。只需像这样调用函数:
=MyPrevFunction([Form])
,表单对象将传递给函数。我已经相应地更新了我的答案。一点也不难(我用
MyButtonFunction(Me)
来调用它),但我仍然需要为20多个表单和10多个按钮编写
Private Sub myButton\u Click()MyButtonFunction(Me)End Sub
。不礼貌和我懒惰,但仍然是正确的解决办法。现在,在参考设置之后,主要的代码更改根本不需要时间。不,不,不……你没有抓住要点。难怪你不喜欢这个解决方案。不要从每个表单的代码模块内部调用
MyButtonFunction(Me)
。您可以从表单设计视图的属性页调用它。如果进入“窗体设计”视图,选择一个按钮,然后按[F4]将打开属性页。转到“事件”选项卡。“点击……”这一行很可能包含以下文字:
[事件过程]
。这是告诉Access在表单的代码模块中查找,以了解单击按钮时要执行的操作。通过将
[Event Procedure]
更改为
=MyButtonFunction(Form)
,您可以完全绕过它。不需要代码。我会在有更多时间的时候研究这个问题;也许是一个简单的更新。谢谢