10
是否有可能在MS Access的本地表中VBA执行准备的语句是这样的:的MS Access准备语句
UPDATE part SET part_description=? WHERE part_id=?
如果是这样它怎么办?
是否有可能在MS Access的本地表中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
是一个的默认属性,所以在这里包括它并不是严格要求。另一方面,明确表示不会伤害。!which_id
,比.Parameters("which_id")
“砰符号”更简洁的方法也适用于设置的参数值,例如,'QDF! which_id = 1' –