Tránh lỗi phổ biến này khi thực hiện thủ tục đã lưu trữ trong MS Access
Chúng tôi thích chạy các thủ tục được lưu trữ từ mã VBA của mình, nhưng có một vấn đề bạn cần chú ý:Việc thực thi một thủ tục ảnh hưởng đến dữ liệu đã được tải trên biểu mẫu của bạn. Nếu không cẩn thận, bạn sẽ nhận được thông báo sau:
May mắn thay, đó là một cách khắc phục dễ dàng, sau đây là một số gợi ý:
- Đóng biểu mẫu và sau đó chạy thủ tục đã lưu trữ của bạn. Điều này giả định rằng bạn có thể không muốn xem lại dữ liệu đã thay đổi trên cùng một biểu mẫu.
- Đặt nguồn bản ghi của biểu mẫu thành không, sau đó đặt nó trở lại nguồn dữ liệu ban đầu, (xem đoạn mã bên dưới).
Đóng biểu mẫu rồi chạy thủ tục đã lưu trữ
Đây là một số mã giả để giúp bạn bắt đầu:
Private Sub RunSomeProcedure () Dim lngOrderID as Long'Giả sử bạn cần chuyển thông tin từ biểu mẫu của mình sang thủ tục được lưu trữ, ví dụ:OrderIDlngOrderID =Me.OrderID 'Nếu bạn không lưu trữ thông tin, nó sẽ không có sẵn sau khi đóng biểu mẫuDoCmd.Close acForm, Me.Name 'Điều này đóng biểu mẫuExecuteMyCommand "uspStoredProcedureName" &lngOrderIDEnd Sub
Bạn không quen với ExecuteMyCommand? Bạn có thể tra cứu tại đây.
Đặt nguồn bản ghi của biểu mẫu thành null
Private Sub RunSomeProcedure () Dim lngOrderID as LongDim strRecordSource as String 'Giả sử bạn cần chuyển thông tin từ biểu mẫu của mình sang thủ tục được lưu trữ, ví dụ:OrderIDlngOrderID =Me.OrderID' Nếu bạn không lưu trữ thông tin, nó sẽ không khả dụng sau khi đóng formstrRecordSource =Me.RecordSource 'Lưu trữ nguồn bản ghi để sử dụng sauTham gia cùng tôi vào ngày 9 tháng 3 với khách mời đặc biệt Ebo Quansah!
Hãy đến và tìm hiểu những thông tin mới nhất về Microsoft Access với Ebo, người quản lý sản phẩm cho nhóm Access. Để biết thông tin chi tiết, vui lòng bấm vào đây:https://accessusergroups.org/sql-server-with-access/event/sql-server-with-access-whats-new-in-access-a-presentation-by-the-access- giám đốc sản phẩm /