【发布时间】:2014-01-14 07:41:34
【问题描述】:
我不确定是什么导致了这个错误,希望得到一些帮助,了解我犯了什么错误导致了这个错误,以及如何纠正这个问题的帮助或建议 下面是我收到错误的一段代码。 调试标记在第 7 行“Feb = (Me.BillRate * DayNum) * Me.Util_”
Set dayRs = db.OpenRecordset("SELECT WrkDays FROM WrkDays ORDER BY WrkMonth;")
dayRs.MoveFirst
Set DayNum = dayRs.Fields("WrkDays")
While Not dayRs.EOF
Jan = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Feb = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Mar = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Apr = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
May = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Jun = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Jul = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Aug = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Sep = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Oct = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Nov = (Me.BillRate * DayNum) * Me.Util_
dayRs.MoveNext
Dec = (Me.BillRate * DayNum) * Me.Util_
Wend
我猜测根据我如何构建此代码,我很可能会在“Feb”行之后的代码行中遇到类似的错误。所以我想更清楚地理解这个错误,以便我可以更正未来发生的错误。
更新 在与 Hans 合作后,他指出我使用了 recordset.getrows 方法,该方法完成了与我试图减少头痛的相同过程。非常感谢汉斯
【问题讨论】:
-
我恳请您重命名
Me.Util_。使用下划线肯定会产生问题,可能包括您正在处理的问题。 -
我认为
Set DayNum = dayRs.Fields("WrkDays")行需要进入While循环内。 -
不幸的是 Me.Util_ 基于一个我无法控制重命名的字段。你能解释为什么 Set DayNum = dayRs.Fields("WrkDays") 线应该在循环内吗?
-
因为
dayRs.Fields("WrkDays")大概会随着每条新记录而变化,所以你必须让它保持新鲜。
标签: ms-access automation ms-access-2007 vba