• Có nên chuyển toàn bộ query vào vba
  • Có nên chuyển toàn bộ query vào vba

    mrsiro > 23-04-18, 11:33 PM

    Chào anh chị, như tiêu đề, có nên chuyển toàn bộ query thành câu lệnh sql trong vba hay không. Việc truy xuất dữ liệu bằng query so với sql trong vba thì có khác biệt không, truy xuất bằng sql trong vba nhanh hơn hay chậm hơn so với query.
  • RE: Có nên chuyển toàn bộ query vào vba

    ongke0711 > 24-04-18, 01:37 PM

    - Về cơ bản thực thi các Query trong ngăn Query (gọi là Saved Query) sẽ nhanh hơn câu lệnh SQL trong VBA vì các Saved Query này đã được compile thành ngôn ngữ máy rồi, còn các câu lênh SQL sẽ được compile mỗi khi gọi tới do đó nó sẽ chậm hơn Saved Query.
    - Trong thực tế có nhiều ứng dụng toàn Query không và chạy phà phà không cần code VBA. 
    - Theo tôi thì nên kết hợp cả 2 loại. Có một số query cần cung cấp các tham số mà tham số này chỉ có khi được xử lý trong VBA code do đó loại này nên dùng câu lệnh SQL để chạy query. Có một số action query chạy bằng VBA code (db.Execute) thuận lợi, gọn gàng hơn thiết kế nhiều cái Query trong ngăn Query
  • RE: Có nên chuyển toàn bộ query vào vba

    mrsiro > 24-04-18, 04:48 PM

    Để query ở ngoài thấy không yên tâm lắm bạn à, đưa vào vba xong chuyển sang mde thấy an toàn hơn.
  • RE: Có nên chuyển toàn bộ query vào vba

    duynamvnn1208 > 24-04-18, 09:12 PM

    Cá nhân mình thì trừ trường hợp không dùng được Query thì mình mới dùng đến VBA. Vì Query theo sẵn của Microsoft sẽ có tốc độ xử lý nhanh hơn là Code VBA.
    Thêm một điểm nữa rất quan trọng chính là việc Maintance thì nếu mình có nghỉ làm thì người kế cận sẽ dễ dàng biết đường sửa chữa nếu có vấn đề gì. Sẽ dễ hơn rất nhiều so với nhìn trang Code.
    Việc dùng Query một cách khéo léo mới khó chứ Code thì sẽ dễ dàng xử lý hơn đấy là cá nhân mình nghĩ vậy.

    Mà ý bạn không yên tâm là gì cơ big green
  • RE: Có nên chuyển toàn bộ query vào vba

    ongke0711 > 26-04-18, 11:19 PM

    Chính xác như bạn duynamvnn1208 đã nói đó là tốc độ và bảo trì ứng dụng. Đối với Query nó sẽ được bộ máy của Access tối ưu hóa, xử lý nhanh hơn. Bên cạnh đó nhìn vô cái Query nó sẽ dễ hiểu hơn và dễ bảo trì hơn.
    Một trong những cách để tối ưu hóa ứng dụng Access là đừng viết code nếu như Query có thể làm được.
    Bạn tập viết Query thì sau này sẽ thuận lợi hơn khi chuyển CSDL lên SQL Server vì khi đó ứng dụng sẽ tận dụng sức mạnh của máy chủ để chạy các View, Stored Proc (như Query) truy vấn dữ liệu, lúc đó ứng dụng chỉ cần viết code để thể hiện (tải về) các dữ liệu đã được xử lý trên máy chủ thôi.
    Còn về việc bảo mật CSDL thì khi phân phối ứng dụng bạn đã phải Khóa Shift, dấu database, chuyển về .accde rồi thì sợ ai vô được ngăn Query để sửa chứ.