Ms access vba代码未插入数据库

Ms access vba代码未插入数据库,ms-access,vba,Ms Access,Vba,我是个新手。有人告诉我,在access中插入数据库的方法是使用CurrentDb对象(只要表在同一个数据库中,在我的情况下也是如此。)我编写了这段代码,没有错误,但它不进行插入 Private Sub Add_Delete_Click() Dim query As String query = "Insert Into tbl_Inventory_History (InventoryID, Modification_Date, Change)" query = query & "Val

我是个新手。有人告诉我,在access中插入数据库的方法是使用CurrentDb对象(只要表在同一个数据库中,在我的情况下也是如此。)我编写了这段代码,没有错误,但它不进行插入

Private Sub Add_Delete_Click()

Dim query As String
query = "Insert Into tbl_Inventory_History (InventoryID, Modification_Date, Change)"
query = query & "Values (" & Me.InventoryID & ",#" & Now() & "#," & Me.Quantity & ")"
CurrentDb.Execute query
End Sub
此代码在库存表单页面中的按钮单击上运行。我希望它在“库存历史记录”页面上插入对库存所做的任何更改。我确保tbl_库存_历史记录确实存在并且拼写正确。问题是什么?

在本例中,您可能会发现使用记录集添加记录更方便,而不是将SQL语句“粘合在一起”,如下所示

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tbl_Inventory_History", dbOpenTable)
rst.AddNew
rst!InventoryID = Me.InventoryID
rst!Modification_Date = Now()
rst!Change = Me.Quantity
rst.Update
rst.Close
Set rst = Nothing

尝试将dbFailOnError添加到execute语句
CurrentDb.execute query,dbFailOnError
也许您的插入违反了完整性约束在即时窗口中打印时是否尝试使用停止/中断,然后使用F8单步执行?这有助于查看查询正在执行的操作。或者您是否尝试过从记录集中显式调用您的数据库,只是为了看看它是否有效?我通常看到的是DoCmd.RunSQL(query)。不过我还是先试试@Scotch的建议。听起来是个更干净的解决方案。使用RunSQL,您必须管理currendb和warnings设置。@Scotch,添加dbFailOnError行做什么?我添加了它,但什么也没发生。@TkEyi60,我是一个新手,你能详细说明一下你在描述什么吗?非常感谢你的建议!记录集似乎是解决这个问题的一种更干净的方法(而且它是有效的!)。然而,我的原始代码似乎一直在工作。我打开了tbl_Inventory_历史记录表,但从未关闭它。我以为它的数据会在屏幕上自动更新,但我错了。。。但是谢谢你的密码,我要用我的来代替你的。