Database 窗体VBA的MS访问时间延迟

Database 窗体VBA的MS访问时间延迟,database,vba,ms-access,Database,Vba,Ms Access,我已经创建了一个类似于提醒的消息框,当我的交换机在我的数据库上打开时会弹出 消息框告诉我有多少客户在25天内没有为他们的订单付款。我已经把密码输入了总机的有载部分 但是,当我点击我的总机时,代码会立即运行,这是预期的,并且消息框会显示,有x笔未完成的付款在25天内没有支付,您是否希望现在查看这些付款,并且有“是”或“否”按钮 但是,当这个框加载并单击“是”时,我的交换机和查询同时打开,它会自动将我指向交换机,而不是我希望在屏幕上看到的查询。我的目标是打开主菜单,将代码延迟一定时间,如果选择“是”

我已经创建了一个类似于提醒的消息框,当我的交换机在我的数据库上打开时会弹出

消息框告诉我有多少客户在25天内没有为他们的订单付款。我已经把密码输入了总机的有载部分

但是,当我点击我的总机时,代码会立即运行,这是预期的,并且消息框会显示,有x笔未完成的付款在25天内没有支付,您是否希望现在查看这些付款,并且有“是”或“否”按钮

但是,当这个框加载并单击“是”时,我的交换机和查询同时打开,它会自动将我指向交换机,而不是我希望在屏幕上看到的查询。我的目标是打开主菜单,将代码延迟一定时间,如果选择“是”,则打开查询

这是我编写的代码

Public Sub Form_Load()

Dim time1, time2

time1 = Now
time2 = Now + TimeValue("0:00:05")
    Do Until time1 >= time2
        time1 = Now()
    Loop





Dim OS As Integer
OS = DCount("[Paid]", "[OutstandingPayments]", "DateDiff('d', DateOrder, 
Now()) > 25")




If OS = 0 Then

        Exit Sub
            Else


                If MsgBox("There are " & OS & " uncompleted Payments that have not been paid in 25 days" & _
                vbCrLf & vbCrLf & "Would you like to see these now?", _
                vbYesNo, "You Have Uncomplete Payments...") = vbYes Then
                DoCmd.Minimize
                DoCmd.OpenQuery "OutstandingPayments", acNormal

            Else
        Exit Sub
    End If
End If
End Sub
基本上,这个代码只是延迟代码的产生,但我认为交换机可以打开屏幕,然后代码就会运行,然后显示我的消息框

是否有一种方法可以在加载时打开交换机,然后将其加载,以便我的代码运行以显示我的消息框

附加Gif以说明问题


谢谢。

您可以使用Form.Timer属性设置计时器,并在该计时器之后执行代码

Private Sub Form_Load()
    Me.TimerInterval = 5000 '5000 milliseconds
    'Do other stuff
End Sub

Private Sub Form_Timer()
    Me.TimerInterval = 0 'Disable timer from running again
    'Do stuff
End Sub

另外,如果要延迟使用while循环,请使用DoEvents+一个类似睡眠的函数来填充它,以防止它锁定您的程序。

我在中输入了它,它显示编译错误、方法或数据成员未找到啊,对不起,修正了它现在不能在这里发布代码,因为它太长了,但是我已经添加了这个,但是时间间隔似乎没有执行,代码立即执行,没有等待5秒。你添加了它在form_timer部分,而不是form_load?我已经弄明白了,我需要将Me.TimerInterval=5000放在Me.TimerInterval=0的开头,格式为_Timer,以及msgbox的其余代码。谢谢你的帮助!