MS Access 2003 - 消息框:如何通过代码自动回答“ok”
-
21-09-2019 - |
题
所以有几个愚蠢的问题:
如果我将其包含在某些事件中:
MsgBox " ", vbOkOnly, "This little message box"
然后我可以用更多代码转过来并“单击确定”按钮吗?那么基本上消息框会自动弹出,然后自动消失吗?
我知道这很愚蠢,因为你想知道,为什么你想要消息框......
好吧a)我只是想知道你是否可以做到这一点,以及命令是什么
b)我有一些基本形状(形状对象),当消息框出现时它们变得可见。但是,如果没有消息框,则在等待单击按钮时不会暂时中断代码,因此那些可见的漂亮图像对象确实会在表单上生效。
所以我真的不需要消息框,只需要显示对象的临时中断。
谢谢!
解决方案
A MsgBox
是莫代尔。只有两个 Modality 相关设置
- 应用模式
- 系统模态
因此,如果您当前的应用程序弹出消息框,则在您单击消息框上的按钮之前不会运行任何代码。
解决这个问题的方法是使用表单设计您自己的消息框。您可以弹出它并保持打开状态,然后您可以“单击”它上面的任何按钮。
如果你想要延迟,可以使用Win API来休眠
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub ApiSleep(SleepMilliseconds as Long)
Sleep SleepMilliseconds
End Sub
其他提示
我知道这是问前一段时间,但我使用的解决方案是这样的:
CreateObject("WScript.Shell").PopUp "Save Successful!", 1, "Save"
这是如何工作的一个消息框显示只是作为一个正常的人会但是它有它自己的系统定时器,这意味着你可以自动关闭消息框,甚至没有做任何事情。
在数字1,则意味着你要多少秒它显示为自动关闭之前。
我用这个程序保存为它的东西救了,但不要求用户实际点击“确定”一个有用的通知。
反正这是我的两个便士的价值的答案。希望这可以帮助别人呢!
Sendkeys "~",false
应该驳回MSGBOX(假设它具有焦点)
我认为你正在寻找的漆事件,或强制形式刷新虽然实现你真正想做的事!
编辑:该死啊,是啊,因为它是模态代码暂停...... D'哦!至于建议,无论是写自己,或者你不得不扔东西在另一个线程来做到这一点,我不知道该怎么做的多线程在MS Access!
第二个编辑:你看Application.Echo False
暂停和Application.Echo True
继续画布局?