修改已加入查询中的源记录

时间:2015-04-26 10:11:38

标签: access-vba ms-access-2010

我无法在简单的SQL选择查询(包含链接到组合框值的2个连接表)中更新其表单上的记录。我确保每个字段的所有属性和表单本身都设置为编辑,但不幸的是,当我进入字段时,虽然它允许我输入,但我无法进行任何更改。是否可能是这种情况,因为记录来自查询?

以下是查询数据并将记录源映射到更新后触发的表单的例程。用于过滤记录的组合框上的事件。我要更新的数据表是' tblValueChain02'并从string SQL_GET2中提取并输入frmStaticDataDepartments06形式。

Private Sub cboTeams_AfterUpdate()

    Dim SQL_GET As String
    Dim SQL_GET2 As String

    SQL_GET = "SELECT * from tblValueChain01 where tblValueChain01.MacroProcess = '" & cboTeams & "'"
    SQL_GET2 = "SELECT tblValueChain01.MacroProcess, tblValueChain02.AutoNumbering, tblValueChain02.MicroProcesso02, tblValueChain02.Notes, tblValueChain02.Remarks FROM tblValueChain02 INNER JOIN tblValueChain01 ON tblValueChain02.IDMacroProcesso01 = tblValueChain01.IDMacroProcesso WHERE (tblValueChain01.MacroProcess = '" & [cboTeams] & "')"


    frmStaticDataDepartments04.Visible = True
    frmStaticDataDepartments04.Requery
    frmStaticDataDepartments05.Visible = True
    frmStaticDataDepartments06.Visible = True

    lblProduct.Visible = True
    lblDepartment.Visible = True
    lblTeam.Visible = True

    Me.frmStaticDataDepartments05.Form.RecordSource = SQL_GET
    Me.frmStaticDataDepartments06.Form.RecordSource = SQL_GET2
    Me.frmStaticDataDepartments06.Requery

End Sub

1 个答案:

答案 0 :(得分:1)

问题出在您的第二个查询中,您正在使用所谓的Cross join,并且这些查询不可更新。如果可能,您需要使用标准INNER JOIN重新设计查询。

如果您发布更多信息,例如您的应用的屏幕截图以及这两个表的示例数据,那将有助于了解下一步该做什么。