ms-access - 希望纠正我的更新后事件 (MS Access)

标签 ms-access vba

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

有趣的是,它工作了一天左右(包括当前记录)。然后 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.运行代码保存-选项:

a. 如果 Me.Dirty 那么 Me.Dirty = False

b. DoCmd.RunCommand acCmdSaveRecord

关于ms-access - 希望纠正我的更新后事件 (MS Access),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418413/

相关文章:

sql - 如何在where条件下使用VBA函数?

sql - 使用 select 和 where 子句更新查询

VBA Excel : Selection collection looped index references incorrect range when used with shapes

mysql - 将 OLE 对象从 Access 导入 MySQL

sql-server - 使用 SQL Server 链接表时,连续形式不会显示 'new record'

arrays - 将多维数组写入excel vba

vba - 在excel中添加不同数量的点

excel - 以编程方式注释 Excel 图表

sql - SQL Server 查询中的 Access 中的问题格式化数字

excel - VBA在特定的工作表中搜索错误,然后将结果传递回主宏