代码之家  ›  专栏  ›  技术社区  ›  Lando

希望更正我的更新后事件(MS Access)

  •  2
  • Lando  · 技术社区  · 6 年前

    我目前正在使用下面的代码来更新某些字段,这样用户就不必输入它们了。出于某种原因,它只对已保存的记录激发,并忽略当前记录。

    有趣的是,它工作了一天左右(包括目前的记录)。然后Access开始崩溃,我被迫重新编写代码。

    Private Sub RawMaterial_AfterUpdate()
    sSQL = "UPDATE tmp_Formula INNER JOIN tbl_RawMaterial ON tmp_Formula.RawMaterial = tbl_RawMaterial.RawMaterial " _
         & "SET tmp_Formula.MiscInfo = [tbl_RawMaterial].[MiscInfo], tmp_Formula.Potency = [tbl_RawMaterial].[Potency], " _
         & "tmp_Formula.PUoM = [tbl_RawMaterial].[PUoM], tmp_Formula.CUoM = [tbl_RawMaterial].[ClaimUoM], " _
         & "tmp_Formula.Cost = [tbl_RawMaterial].[Cost], tmp_Formula.CostUoM = [Tbl_RawMaterial].[CostUoM];"
    CurrentDb.Execute sSQL, dbFailOnError
    CurrentDb.TableDefs.Refresh
    Me.Refresh
    End Sub
    

    有没有人能帮我重新写这篇文章,这样它就包含了当前的记录?这可能无关紧要,但我已经试过了。当前记录。SetFocus和我。原材料。设定焦点。两个都不管用。

    1 回复  |  直到 6 年前
        1
  •  2
  •   June7    6 年前

    新记录(或对现有记录的编辑)必须首先提交到表中,才能用于任何SQL。在以下情况下提交记录:
    1.关闭表格/查询/表单

    2.转到另一个记录

    3.运行代码保存-选项:

    A. If Me.Dirty Then Me.Dirty = False

    B DoCmd.RunCommand acCmdSaveRecord