该属性是只读的,不能设置
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的时间控件时无法设置为只读属性,不能输入其他的内容