所有功能完成后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关闭访问的主要内容,如果未能解决你的问题,请参考以下文章

访问 VBA 防止在关闭时输入表单记录

访问中的 Vba 代码循环遍历文件夹中的所有 excel 文件,打开、保存和关闭它们

在访问 vba 的 excel 文件中未启用显示警报

苹果手机克隆访问权限设置完成后还提示设置权限

win10电脑应该如何关闭“快速访问”功能?

访问 2007 VBA DoCmd.Close 不起作用