所有功能完成后VBA关闭访问

时间:2013-07-17 14:06:03

标签: vba ms-access access-vba

我有一个vba,我从一个启动宏来执行它们的批处理中运行,我试图在所有函数完成后关闭访问但是创建一个新函数并放置“Application.Quit”正在关闭功能完成前的应用程序。

有人有什么想法吗?

谢谢, 西蒙

编辑:

Public Function finish()

    Application.Quit

End Function

2 个答案:

答案 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)

老实说,我不明白你到底在做什么,以便你的应用程序在所有功能完成之前关闭

如果您想执行某些功能然后关闭应用程序,有两种方法可以执行此操作:

  1. 在宏中放置几个​​RunCode个动作,每个动作执行一个函数,最后一个执行Application.Quit

  2. 编写一个“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
    
  3. 无论您选择哪种方式,Access都会按照指定的顺序逐个执行这些功能......并且在所有内容完成之前不应该关闭它!

    如果确实如此,我想你正在做些不同的事情 正如shahkalpesh在他的评论中所建议的那样 - 向我们展示更多代码。