Có thể thực hiện một tuyên bố chuẩn bị trong MS Access trên bàn địa phương trong VBA như thế này:MS Access chuẩn bị báo cáo
UPDATE part SET part_description=? WHERE part_id=?
Nếu vậy làm thế nào nó được thực hiện?
Có thể thực hiện một tuyên bố chuẩn bị trong MS Access trên bàn địa phương trong VBA như thế này:MS Access chuẩn bị báo cáo
UPDATE part SET part_description=? WHERE part_id=?
Nếu vậy làm thế nào nó được thực hiện?
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
Đó dụ sử dụng một mới, chưa được lưu QueryDef
. Nếu bạn có một truy vấn tham số lưu, bạn có thể sử dụng nó thay vì bằng cách thay thế dòng này cho CreateQueryDef
dòng:
Set qdf = db.QueryDefs("YourQueryName")
Dù bằng cách nào, sau đó bạn có thể tham khảo các thông số cá nhân bằng tên của họ như tôi đã làm, hoặc bởi vị trí của họ trong câu lệnh SQL ... vì vậy đây sẽ làm việc tương tự như trên:
.Parameters(0).Value = Date()
.Parameters(1).Value = 1
ghi chú thêm:
.Value
là tài sản mặc định cho một Parameter
, do đó, bao gồm nó ở đây là không đúng yêu cầu. Mặt khác, nó không làm tổn thương để được rõ ràng.!which_id
, nhiều súc tích hơn .Parameters("which_id")
"ký hiệu Bang" cũng làm việc cho thiết lập các giá trị tham số, ví dụ, 'QDF! which_id = 1' –