该属性是只读的,不能设置

Posted

技术标签:

【中文标题】该属性是只读的,不能设置【英文标题】:This property is read-only and can't be set 【发布时间】:2017-12-04 16:42:30 【问题描述】:

我正在使用 Access 2010,但我生锈了……所以我创建了一个主窗体和一个未绑定的子窗体。未绑定到主窗体,我应该说,但绑定到记录源。一切正常。

在子表单中,我有一个名为 cboGIReqNbr 的下拉列表,其中包含 ID。我还有一个名为 txtGIReqNbr 的文本框。应该发生的是,当您从下拉列表中选择一个 cboGIReqNbr 时,txtGIReqNbr 应该填充描述。

我在 cboGIReqNbr 的 AfterUpdate 事件中得到了这个:

Dim db As Database
Dim rec As Recordset
Dim sSql As String

Set db = CurrentDb

sSql = "Select GI_Request_Name from tblGIRequest where GI_Request_Nbr = '" & Me.cboGIReqNbr.Text & "'"

Set rec = db.OpenRecordset(sSql)

Me!txtGIReqNbr.SetFocus

Me!txtGIReqNbr.Text = rec(0)  <-- PROBLEM

Me.txtLanID = Forms!frmHoursAssigned.cboEmployee.Value

rec(0) 实际上填充了正确的文本。

我在问题行遇到的错误是; “此属性是只读的,无法设置”。我的所有对象都不应该是只读的,我可以在网上找到的所有示例都指向使用保留字的人(即使用“名称”作为字段名称)。

有人知道怎么解决吗?

【问题讨论】:

【参考方案1】:

您应该使用.Value 属性将值分配给文本框。 .Text 改变可见值,只能在字段有焦点时使用。 .Value存储实际值,随时可以使用。

Me!txtGIReqNbr.Value = rec(0)

另见:Distinction between using .text and .value in VBA Access

【讨论】:

然后我得到一个“你不能给这个对象赋值”错误。是不是因为子表单链接到了表格,而文本框绑定到了表格中的某个字段? 如果表是可写的,并且文本框的控制源是一个字段,而不是一个表达式,那应该没关系。您可以手动更改文本框的内容(只需单击它并输入内容)?如果该字段绑定到不可更新的内容,则说明它,您可以取消绑定。 呃。是的,这有效(必须解除绑定),但我的表格是连续表格,现在每个 txtGIReqNbr 中的值都是相同的。哦,那是一个不同的问题。感谢您的帮助!

以上是关于该属性是只读的,不能设置的主要内容,如果未能解决你的问题,请参考以下文章

javascript 设置input框只读属性 获取disabled后的值并传给后台

input用了jquery的时间控件时无法设置为只读属性,不能输入其他的内容

公司共享文件夹如何设置某个文件夹只读属性,不可更改复制删除等操作?

win7 文件夹为啥只读属性不能更改

问题记录

从目录中删除只读属性