Ms access 在文本框中编辑数据库中的数据,这些数据取自子窗体

Ms access 在文本框中编辑数据库中的数据,这些数据取自子窗体,ms-access,vba,Ms Access,Vba,在我的表单中有一个子表单,其中显示a、B、C。 然后信息C显示在文本框中。用户应该有可能修改此数据,以便修改数据库中的数据 我能够基于此子窗体在文本框中显示信息C。但是它是不可编辑的,它写为:“控件无法编辑;它绑定到表达式” 在我看来,编辑数据是不可能的,因为它不是直接从数据库中获取的,而是从子表单中获取的,所以我进行了特殊的查询,直接从数据库中获取数据,但是我丢失了一个基于从子表单中选择适当记录的事件(只有onEnter和onExit事件) 是否有可能进行这样的操作?如果使用记录集填充或修改任

在我的表单中有一个子表单,其中显示a、B、C。 然后信息C显示在文本框中。用户应该有可能修改此数据,以便修改数据库中的数据

我能够基于此子窗体在文本框中显示信息C。但是它是不可编辑的,它写为:“控件无法编辑;它绑定到表达式”

在我看来,编辑数据是不可能的,因为它不是直接从数据库中获取的,而是从子表单中获取的,所以我进行了特殊的查询,直接从数据库中获取数据,但是我丢失了一个基于从子表单中选择适当记录的事件(只有onEnter和onExit事件)


是否有可能进行这样的操作?

如果使用记录集填充或修改任何内容,请确保使用
.Edit
.Update
修改行中的现有单元格

Dim myR as Recordset

Set myR = CurrentDb.OpenRecordset("Table_Name_Here", dbOpenDynaset)

'use a .FindFirst method to find the row you want to modify
'or modify the Recordset to pull a SELECT statement instead of the whole table

myR.Edit
myR![Field_to_edit] = Forms![main form name]![subform control name].Form![control name]
myR.Update

Set myR = Nothing

如果使用记录集填充或修改任何内容,请确保使用
.Edit
.Update
修改行中的现有单元格

Dim myR as Recordset

Set myR = CurrentDb.OpenRecordset("Table_Name_Here", dbOpenDynaset)

'use a .FindFirst method to find the row you want to modify
'or modify the Recordset to pull a SELECT statement instead of the whole table

myR.Edit
myR![Field_to_edit] = Forms![main form name]![subform control name].Form![control name]
myR.Update

Set myR = Nothing

您可以添加第二个子表单以包含
C
文本框。使用基础表的主键将第二个子窗体链接到第一个子窗体


这是我能想到的使文本框可编辑的最简单的替代方法。

您可以添加第二个子表单来包含
C
文本框。使用基础表的主键将第二个子窗体链接到第一个子窗体


这是我能想到的使文本框可编辑的最简单的替代方法。

好的,我的问题有一个解决方案:


谢谢你的建议

好的,我的问题有一个解决方案:


谢谢你的建议

数据表是否存在于MS Access中,是链接表,还是来自查询?子窗体是根据MS Access表中的现有数据通过查询生成的。如果以下答案不能解决您的问题,请查看记录集不可更新的其他原因:数据表是否存在于MS Access中,是链接表,或者数据来自查询?子窗体是根据MS Access表中现有的查询生成的。如果下面的答案不能解决您的问题,请查看记录集不可更新的其他原因:在文本框中显示子窗体的数据后,我无法在其中写入任何内容。好像锁上了。文本框中的数据由ControlSource=[subForm]写入![column]我收到消息“控件无法编辑;它绑定到表达式“[subFrom]”![column]”来自“C”的数据显示在子窗体的C文本字段中,也显示在文本字段的主窗体中?抱歉,我以为您只需要子窗体中的信息来编辑表中的数据。实际上,子窗体中的C文本是隐藏的。它仅用于在文本框中显示它。这是一个很长的文本,而且为了看起来更雅致,我更喜欢使用文本框。在文本框中显示子窗体的数据后,我不能在其中写入任何内容。好像锁上了。文本框中的数据由ControlSource=[subForm]写入![column]我收到消息“控件无法编辑;它绑定到表达式“[subFrom]”![column]”来自“C”的数据显示在子窗体的C文本字段中,也显示在文本字段的主窗体中?抱歉,我以为您只需要子窗体中的信息来编辑表中的数据。实际上,子窗体中的C文本是隐藏的。它仅用于在文本框中显示它。这是一个很长的文本,而且为了看起来更受尊敬,我更喜欢使用文本框谢谢,现在我最接近你的解决方案,但是我更喜欢带文本框的选项,因为信息C很长。谢谢,现在我最接近你的解决方案,但是我更喜欢带文本框的选项,因为信息C很长。