晚上好! 我在几台Windows 7计算机上的MS Access 2010中收到以下错误,已完全更新。此代码在按下按钮时以连续的形式运行。错误会间歇性地弹出,但特别是如果表单在不到5分钟左右的时间内关闭。
错误2448:“您无法为该对象分配值。”
抛出此错误的代码是:
If me.temQC = 'RCS' then
me.temQCchecked = TRUE
End if
docmd.close acForm, "FRM_TEM1", acSaveYes
temQC是varchar(20)数据类型,temQCchecked是位类型,默认值为0。 **编辑从bool切换到temQCchecked类型到bit以正确反映实际的SQL Server类型**
表格的记录来源是:
SELECT TBL_Samples.*, TBL_Observations.* FROM TBL_Samples INNER JOIN
TBL_Observations ON TBL_Samples.SampleID = TBL_Observations.SampleID ORDER BY
TBL_Observations.GridID, TBL_Observations.GridLetter;
典型的设置大小约为50条记录,因此没有太大的意义。我将查询设置为动态集(Inconsistent Updates)。
我对于为什么会发生这种情况感到非常困惑。 temQCchecked没有以任何方式编入索引。我非常感谢有人能提供的任何帮助。谢谢你的时间!
***新信息:
代码运行在基本上关闭表单的按钮的On_Click()事件上。我可以使用查询以及其他按钮更新值。我应该补充一点,后端是SQL Server 2012 Express,没有关于TBL_Observations的附加索引。其他类似表上的布尔值似乎与非常相似的代码一起正常工作。我也相信我已经解决了锁定错误,因为它只在一个用户打开时发生,而我的表维护发生在凌晨3点。谢谢!
答案 0 :(得分:0)
我猜这个问题是尝试用封闭形式做某事的结果。关闭一个表格并打开另一个表格时,我遇到了这个问题。关闭第一张表格后,在打开新表格之前我暂停了..
Dim PauseTime, Start,
PauseTime = 3 ' Set duration.
Start = Timer ' Set start time.
Do While Timer < Start + PauseTime
'Do Nothing
Loop