所有功能完成后VBA关闭访问
Posted
技术标签:
【中文标题】所有功能完成后VBA关闭访问【英文标题】:VBA close access after all functions finished 【发布时间】:2013-07-17 14:06:03 【问题描述】:我有 vba,我正在从一个启动宏以执行它们的批处理中运行它,我试图在所有功能完成后关闭访问,但是创建一个新功能并放置“Application.Quit”正在关闭在函数完成之前申请。
有人有什么想法吗?
谢谢, 西蒙
编辑:
Public Function finish()
Application.Quit
End Function
【问题讨论】:
你能显示代码吗?Quit
在功能完成之前关闭应用程序是什么意思?
已用代码编辑
【参考方案1】:
在您的代码中放置一个计时器循环,让数据库进入睡眠状态,并给它时间让函数运行。
首先,将其放在任何 MODULE 中的 Option Compare 或 Option Explicit 行下方(注意:它必须位于适当的模块中,而不是表单的模块中):
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
那么你的函数应该是这样的:
Public Function finish()
Dim X as Integer
For X = 1 To 10
Sleep 1000
DoEvents
Next X
Application.Quit
End Function
【讨论】:
当把它放在上面时,它会说“未找到变量”并突出显示“for x”行,有什么想法吗? 您需要先将 X 调暗为 Integer。【参考方案2】:老实说,我不明白你到底在做什么,所以你的应用程序在在所有功能完成之前关闭。
如果你想执行一些功能然后关闭应用程序,有两种方法可以做到:
将多个RunCode
操作放入宏中,每个操作执行一个函数,最后一个执行Application.Quit
。
编写一个“runner”函数,执行所有其他函数然后退出:
Public Function F1()
'do stuff
End Function
Public Function F2()
'do stuff
End Function
Public Function Finish()
Application.Quit
End Function
'execute this function from the macro:
Public Function Runner()
F1
F2
Finish 'or directly call "Application.Quit" here instead
End Function
无论您选择哪种方式,Access 都会按照指定的顺序执行功能,一个接一个...并且在一切完成之前它不应该关闭!
如果是这样,我想你正在做一些不同的事情。 正如 shahkalpesh 在他的评论中所建议的那样 - 然后向我们展示更多代码。
【讨论】:
以上是关于所有功能完成后VBA关闭访问的主要内容,如果未能解决你的问题,请参考以下文章