使用group by访问查询可更新字段

时间:2014-04-22 20:52:16

标签: sql ms-access group-by

我想基于查询创建拆分表单,其中字段全部分组。拆分表单不允许我更新记录,因为它们是分组的。例如,假设10条记录在名为“公司名称”的字段中都具有相同的数据。是否有任何方法可以使查询更新,以便当我更改分组条目中“公司名称”的数据时,它将针对所有分组的记录进行更改?

由于

1 个答案:

答案 0 :(得分:2)

最终无法更新分组查询。 原因是,分组查询不能包含密钥(如果包含密钥,则不再有分组,因为密钥是唯一的...)
因此Access没有线索,分组的内容和应更新的记录

你要做的是:

  • 根据查询
  • 创建表单
  • 将“双击”事件添加到您要更改的字段
  • 编写一个对话框以询问新值
  • 触发sql进行更新

这里是步骤2-4的样本

Private Sub DOK_DokumentNr_DblClick(Cancel As Integer)

    Dim newvalue As Variant
    Dim sSQL As String

    newvalue = InputBox("enter new value", "DOC-Number", Me!DOK_DokumentNr.OldValue)
    If newvalue <> Me!DOK_DokumentNr.OldValue Then
        sSQL = "UPDATE T_Dokument SET DOK_DokumentNr = '" & newvalue & "' "
        sSQL = sSQL & "WHERE DOK_DokumentNr = '" & Me!DOK_DokumentNr.OldValue & "'"
        DoCmd.SetWarnings False ' to prevent the standard message for modifying data
        DoCmd.RunSQL sSQL
        DoCmd.SetWarnings True  ' reset warnings to default
    End If

End Sub