Trong những ý kiến trên this answer, Remou viết rằngsự khác biệt giữa DoCmd.SetWarnings và CurrentDB.Execute là gì
CurrentDB.Execute "insert sql here"
là tốt hơn so với
DoCmd.SetWarnings = 0
DoCmd.RunSQL "insert sql here"
do built-in cảnh báo mà Access tạo ra. Tôi đang cố gắng để hiểu sự khác biệt.
Nếu cả hai mặt nạ đều bị lỗi, thì tại sao thẻ đầu tiên lại thích hợp hơn lần thứ hai? Có thực hành tốt nhất nào ở đây không?
Từ nhận xét của bạn: 'Để chạy mà không có sự được xây dựng trong cảnh báo, sử dụng một thể hiện của CurrentDB và Exceute chuỗi SQL' dẫn tôi tin rằng '.Execute' không ném cảnh báo? – JimmyPena
Xem chỉnh sửa ở trên. – Fionnuala
Một cách khác để tiếp cận điều này là bắt đầu từ 'RunSql'. Trước tiên, yêu cầu người dùng xác nhận rằng cô ấy muốn thực hiện truy vấn hành động, sau đó hiển thị thông báo về số lượng hồ sơ bị ảnh hưởng sau đó. Mọi người sử dụng 'SetWarnings = False' để chặn những tin nhắn đó. Nhưng '[database] .Execute' không hiển thị một trong các thông điệp đó, vì vậy không có động lực để tắt' SetWarnings'. Remou đã nói hết rồi. Tôi đang sử dụng những từ ngữ khác nhau trong cơ hội có thể giúp đỡ ai đó, và cũng để cho bản thân mình một cơ hội khác để nói KHÔNG BAO GIỜ biến 'SetWarnings' ra! – HansUp