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



我目前正在使用以下代码来更新某些字段,以便用户不必输入它们。出于某种原因,它仅在已保存的记录上触发,并忽略当前记录。

有趣的是,它工作了一天左右(包括当前的记录(。然后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

有人能帮我重写它,使其包含当前记录吗?这可能无关紧要,但我尝试过Me.CurrentRecord.SetFocus和Me.RawMaterial.SetFocus。两者都没有用。

新记录(或对现有记录的编辑(必须首先提交到表才能用于任何 SQL。在以下情况下提交记录:
1. 关闭表/查询/窗体
或 2. 移动到另一条记录


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

一个。If Me.Dirty Then Me.Dirty = False

二.DoCmd.RunCommand acCmdSaveRecord

最新更新