是否可以在 MS Access 中对 VBA 中的本地表执行准备好的语句,如下所示:
UPDATE part SET part_description=? WHERE part_id=?
如果是这样,它是如何完成的?
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim strSql As String
Set db = CurrentDb
strSql = "UPDATE Month_Totals Set item_date = [which_date]" & _
" WHERE id = [which_id];"
Debug.Print strSql
Set qdf = db.CreateQueryDef(vbNullString, strSql)
With qdf
.Parameters("which_date").Value = Date()
.Parameters("which_id").Value = 1
.Execute dbFailOnError
End With
该示例使用了一个新的、未保存的QueryDef
。如果您有已保存的参数查询,则可以通过将此行替换为来使用它CreateQueryDef
line:
Set qdf = db.QueryDefs("YourQueryName")
无论哪种方式,您都可以像我一样通过参数的名称或它们在 SQL 语句中的位置来引用各个参数......所以这将与上面的工作方式相同:
.Parameters(0).Value = Date()
.Parameters(1).Value = 1
补充笔记:
-
.Value
是 a 的默认属性Parameter
,因此并不严格要求将其包含在这里。另一方面,明确表达也没有什么坏处。
- 正如 Gord 下面指出的,您可以使用“Bang notation”和参数名称,例如
!which_id
,这比.Parameters("which_id")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)