【问题标题】:MS Access Time Delay for Form VBA表单 VBA 的 MS 访问时间延迟
【发布时间】:2018-07-18 07:14:04
【问题描述】:

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

消息框告诉我有多少客户在 25 天内没有为他们的订单付款。我已将代码放入交换机的 On Load 部分。

但是,当我点击我的总机时,代码会立即运行,这是预期的,并且会出现消息框,上面写着“有 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 来说明问题 https://gyazo.com/94f7e56cbe9220673d10a810e5282dda

谢谢。

【问题讨论】:

    标签: database vba ms-access


    【解决方案1】:

    您可以使用 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 + 睡眠函数(如 this one)填充它,以防止它锁定您的程序。

    【讨论】:

    • 我输入了它,它显示“未找到编译错误、方法或数据成员”
    • 啊,抱歉,现在修好了
    • gyazo.com/954b87cfc5c17267077bb512ccb0484f 无法在此处发布代码,因为它太长了,但我已经添加了它,但 TimeInterval 似乎没有执行,代码立即执行而无需等待 5 秒
    • 你是在form_timer部分添加的,而不是form_load吗?
    • 我已经想通了,我需要在 Form_Timer() 的 Me.TimerInterval=0 的开头加上 Me.TimerInterval =5000 以及我的 msgbox 的其余代码。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 2020-08-13
    相关资源
    最近更新 更多