是否可以在VBA中的本地表上的MS Access中执行预准备语句,如下所示:
UPDATE part SET part_description=? WHERE part_id=?
如果是这样怎么办?
是否可以在VBA中的本地表上的MS Access中执行预准备语句,如下所示:
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
线:
Set qdf = db.QueryDefs("YourQueryName")
无论哪种方式,您都可以按照我们的名字或者在SQL语句中的位置来引用各个参数......所以这将与上面相同:
.Parameters(0).Value = Date()
.Parameters(1).Value = 1
补充笔记:
.Value
是a的默认属性 Parameter
,所以在这里包括它并不是严格要求的。另一方面,明确没有伤害。!which_id
,这比简洁更简洁 .Parameters("which_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
线:
Set qdf = db.QueryDefs("YourQueryName")
无论哪种方式,您都可以按照我们的名字或者在SQL语句中的位置来引用各个参数......所以这将与上面相同:
.Parameters(0).Value = Date()
.Parameters(1).Value = 1
补充笔记:
.Value
是a的默认属性 Parameter
,所以在这里包括它并不是严格要求的。另一方面,明确没有伤害。!which_id
,这比简洁更简洁 .Parameters("which_id")