【问题标题】:MS Access Strange Error 2448 'You can't assign a value to this object."MS Access 奇怪的错误 2448 '你不能给这个对象赋值。
【发布时间】:2014-11-19 15:49:00
【问题描述】:

晚上好! 我在几台 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。 ** 将切换的 temQCchecked 类型从 bool 编辑为 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 条记录,所以没什么大不了的。我将查询设置为 Dynaset(Inconsistent Updates)。

我对为什么会发生这种情况感到非常困惑。 temQCchecked 不以任何方式编入索引。我将非常感谢有人可以提供的任何帮助。感谢您的宝贵时间!

***新信息:

代码在一个按钮的 On_Click() 事件上运行,该按钮基本上关闭了表单。我可以使用查询以及其他按钮来更新值。我应该补充一点,后端是 SQL Server 2012 Express,在 TBL_Observations 上没有额外的索引。其他类似表上的布尔值似乎可以在非常相似的代码中正常工作。我还相信我已经消除了锁定错误,因为它发生在只有一个用户打开时,并且我的表维护发生在凌晨 3:00。谢谢!

【问题讨论】:

  • 该代码在哪里?如果在 LOAD 与 Current 与某些按钮单击中,它会有所不同。如果您手动运行该查询,您可以将值更改为 True 吗?
  • 请注意 SQL Server 没有boolean type。您需要使用 smallint 并分配值 1 和 0。

标签: sql ms-access vba ms-access-2010 recordset


【解决方案1】:

我猜这个问题是试图用封闭形式做某事的结果。我在关闭一个表单并打开另一个表单时遇到了这个问题。在关闭第一个表单之后,在打开新表单之前,我暂停了..

Dim PauseTime, Start, 
PauseTime = 3    ' Set duration.
Start = Timer    ' Set start time.
Do While Timer < Start + PauseTime
    'Do Nothing
Loop

【讨论】:

  • 非常感谢!我会试试看!我猜你是绝对正确的,因为错误更经常发生在速度较慢的计算机上。非常感谢 Dana、Wayne 和 Parfait 的帮助!
  • 解决方案:所以这很尴尬,但事实证明 MS-Access 文件不应该存储在 RAM 驱动器上。我开始从实际硬盘启动文件,现在已经有几周没有出现错误了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
相关资源
最近更新 更多