【发布时间】:2017-01-13 04:29:00
【问题描述】:
我正在尝试通过使用一些动画打开子表单来为我的 Access 数据库添加一些亮点。我希望它从主窗体的左上角打开并以小增量扩展其大小,直到它达到主窗体的宽度和高度。当我单步执行它时,我的代码似乎按预期工作,但是实际上它在循环的整个持续时间内暂停,并且似乎仅以全尺寸显示表单而没有任何动画外观。似乎它批量运行循环,然后对子表单对象执行调整。关于如何实现这一点的任何建议?
Option Compare Database
Option Explicit
Declare Sub Sleep Lib "kernel32" _
(ByVal dwMilliseconds As Long)
Public Sub AnimateOpenForm(SubForm As String, maxWidth As Long, maxHeight As Long)
Dim sbf As SubForm
Dim parentForm As String
Dim incrementX As Double
Dim incrementY As Double
parentForm = "frmHome"
Set sbf = Forms(parentForm).Controls("sbfPopUp")
sbf.SourceObject = SubForm
sbf.Width = 0
sbf.Height = 0
sbf.Visible = True
incrementX = maxWidth / 1000
incrementY = maxHeight / 1000
Do While sbf.Width < maxWidth And sbf.Height < maxHeight
sbf.Width = sbf.Width + incrementX
sbf.Height = sbf.Height + incrementY
Sleep 10
Loop
End Sub
【问题讨论】:
-
啊哈!我在循环中添加了 sbf.requery ,现在它工作得很好。总是错过这件小事……