我正在运行创建每周计划的代码,并且根据时间/日期进行大量的即时格式化以便将事物放在正确的位置,并根据在此期间安排的约会数量调整宽度给定的时间段。我定期得到运行时错误2100:控件或子窗体控件对于代码的特定行上的这个位置来说太大了,我不能为我的生活找出原因。当我查看基础数据时,我无法看到在该时间范围内发生的更多约会会导致它超出其限制或任何范围。也就是说,我对这些格式化功能并没有太多的了解,也没有深入了解它。它大约有95%的时间都有效,但我需要达到100%。
If DateValue(!Schedule_Date) = dtCurrent And TimeValue(!StartTime) >= tmStart And TimeValue(!StartTime) < tmEnd And intLabel > 1 Then 'Conflicting appointments, reset width of previous control and adjust width & start accordingly
Me.Controls("lbl" & (intLabel - 2)).Width = (lngWidth / 2) 'Half the width
ctl.Width = lngWidth / 2
lngLeft = 1260 + (DateDiff("d", dtWeekOf, !Schedule_Date) * 1980) + 980 '1260 buffer + 1.375" depending on the day
Else
ctl.Width = lngWidth
lngLeft = 1260 + (DateDiff("d", dtWeekOf, !Schedule_Date) * 1980)
End If
lngTop = 720 + (DateDiff("n", #8:00:00 AM#, IIf(TimeValue(!StartTime) < #8:00:00 AM#, #8:00:00 AM#, TimeValue(!StartTime))) * lngMinute) '.5" header + #minutes down the timeline
lngheight = (DateDiff("n", TimeValue(!StartTime), TimeValue(!EndTime)) * lngMinute)
ctl.Top = lngTop
ctl.Left = lngLeft
If lngheight < 0 Then ''Typically an AM/PM Discrepancy on the appointment
MsgBox !ClientName & " has an appointment on " & DateValue(!Schedule_Date) & " from " & TimeValue(!StartTime) & " to " & _
TimeValue(!EndTime) & " (" & !Schedule_Desc & ") that cannot print correctly. Please edit the appointment " & _
"time as needed before printing the schedule.", vbOKOnly
ctl.Height = 450 'Set it for 50 minutes in the meantime
Else
ctl.Height = lngheight
End If
生成错误的行是
ctl.Left = lngLeft
我尝试过降低这个值,但最终却搞砸了其他所有内容的格式。任何帮助都会非常感激,这让我疯狂!