我有一个vba,我从一个启动宏来执行它们的批处理中运行,我试图在所有函数完成后关闭访问但是创建一个新函数并放置“Application.Quit”正在关闭功能完成前的应用程序。
有人有什么想法吗?
谢谢, 西蒙
编辑:
Public Function finish()
Application.Quit
End Function
答案 0 :(得分: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
答案 1 :(得分:0)
老实说,我不明白你到底在做什么,以便你的应用程序在所有功能完成之前关闭。
如果您想执行某些功能然后关闭应用程序,有两种方法可以执行此操作:
在宏中放置几个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在他的评论中所建议的那样 - 向我们展示更多代码。