在afterupdate中无法使用代码编辑访问有界表单

时间:2013-09-04 05:40:13

标签: forms ms-access ms-access-2013

我有一个表格(表格A),它与一个表格有关,另一个表格是我的主表格(主表格),包含所有信息。在表单A中,我在字段ID的更新后放置了一个代码,此代码使用在表单上输入的ID查询主表,并填充表单上的其他字段,如名称,性别等。当我这样做时更新表单上的ID以输入记录,查询的值将填充在表单中,但随后在所有其他字段上显示错误消息,其中显示“控件无法编辑,它绑定到未知字段”。我不明白我做错了什么。有人可以帮我解决这个问题吗?

Private Sub ID_AfterUpdate()
    Me.RecordSource = "SELECT PERS_LNAME, PERS_FNAME, JOB_DETL_COLL_NAME, & _
        JOB_DETL_DEPT_NAME   FROM [main table] where ID = [Forms]![form A]![ID]"
    With Me
        .[Last Name].ControlSource = "PERS_LNAME"
        .[First Name].ControlSource = "PERS_FNAME"
        .[College].ControlSource = "JOB_DETL_COLL_NAME"
        .[Dept Name].ControlSource = "JOB_DETL_DEPT_NAME"
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

如果您要执行的操作是根据输入的记录ID更新显示的信息,而不是更改控制源,因为它已经设置。尝试运行Me.Requery

我可以在您的记录源声明中看到的一个问题是,您已将where条件包含在引号内而不是外部。这意味着您的查询将查找ID = [Forms]![form A]![ID]的值,而不是从该文本框返回的值。

Me.RecordSource = "SELECT PERS_LNAME, PERS_FNAME, JOB_DETL_COLL_NAME, " & _
     "JOB_DETL_DEPT_NAME   FROM [main table] where ID = " & [Forms]![form A]![ID]