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