• Tránh xung đột dữ liệu trong access
  • Tránh xung đột dữ liệu trong access

    quocdung9999 > 09-09-15, 03:17 PM

    - Chào tất cả các bạn!

    Mình có một số vấn đề muốn hỏi mong mọi người giúp đỡ nhé.

    Hiện tại mình đang làm phần mềm access, bên công ty mình khoảng có 200 User, mình dùng link table để kết nối các User để sử dụng cùng một database , vì công ty mình dùng mạng lan nên việc đó thực hiện cũng khá đơn giản, mình chia ra 2 phần, một phần dữ liệu và phần code và giao diện. Khi người nào muốn sử dụng thì copy phần giao diện về và mình cấp quyền sử dụng trên database đó, nhưng mình có phát sinh một vấn đề xung đột khi 2 người cùng sử dụng Một mã, như một người update một người delete hoặc 2 người cùng update. Mình cũng chưa tìm ra nguyên nhân khắc phục, theo như mình biết nếu CSDL SQL thì có thể bắt được lỗi này, còn access thì mình chưa biết phải làm thế nào. Bạn nào biết cho mình ý kiến với. Rất cảm ơn nếu được giúp đỡ.


    Email: quocdung1222@gmail.com

    Thanks!
  • RE: Tránh xung đột dữ liệu trong access

    kumkreo > 09-09-15, 05:34 PM

    phần mềm đâu chi se lên cho anh em tham khảo với
    nhớ dừng khóa code vb nhé thank
  • RE: Tránh xung đột dữ liệu trong access

    tranthanhan1962 > 09-09-15, 05:50 PM

    (09-09-15, 03:17 PM)quocdung9999 Đã viết: - Chào tất cả các bạn!

    Mình có một số vấn đề muốn hỏi mong mọi người giúp đỡ nhé.

    Hiện tại mình đang làm phần mềm access, bên công ty mình khoảng có 200 User, mình dùng link table để kết nối các User để sử dụng cùng một database , vì công ty mình dùng mạng lan nên việc đó thực hiện cũng khá đơn giản, mình chia ra 2 phần, một phần dữ liệu và phần code và giao diện. Khi người nào muốn sử dụng thì copy phần giao diện về và mình cấp quyền sử dụng trên database đó, nhưng mình có phát sinh một vấn đề xung đột khi 2 người cùng sử dụng Một mã, như một người update một người delete hoặc 2 người cùng update. Mình cũng chưa tìm ra nguyên nhân khắc phục, theo như mình biết nếu CSDL SQL thì có thể bắt được lỗi này, còn access thì mình chưa biết phải làm thế nào. Bạn nào biết cho mình ý kiến với. Rất cảm ơn nếu được giúp đỡ.


    Email: quocdung1222@gmail.com

    Thanks!
    Bạn có thể dùng cơ chế khóa dữ liệu trên form. Thiết đặt properties cho form, Record locks: Edited Record. Người chọn record trước toàn quyền sửa xóa, kẻ đến sau chỉ có đứng nhìn. Còn nếu Record locks: All Records, thì khóa nguyên form.
  • RE: Tránh xung đột dữ liệu trong access

    hoanbhxhls > 09-09-15, 05:52 PM

    (09-09-15, 03:17 PM)quocdung9999 Đã viết: - Chào tất cả các bạn!

    Mình có một số vấn đề muốn hỏi mong mọi người giúp đỡ nhé.

    Hiện tại mình đang làm phần mềm access, bên công ty mình khoảng có 200 User, mình dùng link table để kết nối các User để sử dụng cùng một database , vì công ty mình dùng mạng lan nên việc đó thực hiện cũng khá đơn giản, mình chia ra 2 phần, một phần dữ liệu và phần code và giao diện. Khi người nào muốn sử dụng thì copy phần giao diện về và mình cấp quyền sử dụng trên database đó, nhưng mình có phát sinh một vấn đề xung đột khi 2 người cùng sử dụng Một mã, như một người update một người delete hoặc 2 người cùng update. Mình cũng chưa tìm ra nguyên nhân khắc phục, theo như mình biết nếu CSDL SQL thì có thể bắt được lỗi này, còn access thì mình chưa biết phải làm thế nào. Bạn nào biết cho mình ý kiến với. Rất cảm ơn nếu được giúp đỡ.


    Email: quocdung1222@gmail.com

    Thanks!
    -Nói chung access vẫn có thể giải quyết được vấn đề xung đột  như bạn nói,nhưng làm khá là vất vả
    -Với 200 user theo mình bạn nên chuyển sang sql server,và phải lập trình dạng unboud control
    -Bạn có thể tham khảo mô mình lập trình 3 lớp như khối ngân hàng đang dùng
  • RE: Tránh xung đột dữ liệu trong access

    maidinhdan > 09-09-15, 09:36 PM

    (09-09-15, 03:17 PM)quocdung9999 Đã viết: Mình có một số vấn đề muốn hỏi mong mọi người giúp đỡ nhé.

    Hiện tại mình đang làm phần mềm access, bên công ty mình khoảng có 200 User, mình dùng link table để kết nối các User để sử dụng cùng một database , vì công ty mình dùng mạng lan nên việc đó thực hiện cũng khá đơn giản...


    Email: quocdung1222@gmail.com

    Một số góp ý trước khi bắt đầu:

    1. Xác định lại khả năng lập trình code của bản thân tới đâu. ( ý này không phải chê bay mà có thể làm bạn bỏ cuộc nửa chừng cho 200 cái User)
    2. Việc link table qua LAN đến 200 User sử dụng. Vấn đền này không cần đến 200 đâu, chỉ cần 3 User đăng nhập cùng lúc thôi là đủ làm bạn điên đầu rồi. Bởi lúc đó cần phải giải quyết rất nhiều vấn đề:
    - Load chậm, có khi mở mà không lên.
    - Lấy số chứng từ hoặc Mã khóa gì đó...

    3. Đã là 200 người chứng tỏ công ty bạn rất lớn, mà lớn như vậy đòi hỏi bảo mật phải cao, an toàn. Riêng Access mình nghĩ không phù hợp đâu.

    => Từ 1+2+3 suy ra: Thuê 1 người chuyên lập trình viết mình nghĩ là hay nhất. Tốt nhất viết bằng VB.NET

    Thân mến!
  • RE: Tránh xung đột dữ liệu trong access

    quocdung9999 > 10-09-15, 10:31 AM

    Theo ban maidinhdan nói thì đúng đó, mình cũng biết thế, có khi quá nhiều user cùng truy cập thì nó hay bị đứng và hiện tượng đó diễn ra thường xuyên, nhưng vì bên mình dùng phần mềm bản quyền nên chỉ dùng mỗi access để lập trình. Nên hơi khó khăn.
  • RE: Tránh xung đột dữ liệu trong access

    thucgia > 11-09-15, 10:19 AM

    (10-09-15, 10:31 AM)quocdung9999 Đã viết: Theo ban maidinhdan nói thì đúng đó, mình cũng biết thế, có khi quá nhiều user cùng truy cập thì nó hay bị đứng và hiện tượng đó diễn ra thường xuyên, nhưng vì bên mình dùng phần mềm bản quyền nên chỉ dùng mỗi access để lập trình. Nên hơi khó khăn.

    Theo mình là bạn nên nghĩ đến vấn đề phân trang dữ liệu khi load từ server về client.!!!!
  • RE: Tránh xung đột dữ liệu trong access

    quocdung9999 > 11-09-15, 10:49 AM

    Theo ban thucgia , minh chưa rõ lắm, bạn có thể nói rõ cho mình được không?
  • RE: Tránh xung đột dữ liệu trong access

    hoanbhxhls > 11-09-15, 10:56 AM

    (09-09-15, 09:36 PM)maidinhdan Đã viết:
    (09-09-15, 03:17 PM)quocdung9999 Đã viết: Mình có một số vấn đề muốn hỏi mong mọi người giúp đỡ nhé.

    Hiện tại mình đang làm phần mềm access, bên công ty mình khoảng có 200 User, mình dùng link table để kết nối các User để sử dụng cùng một database , vì công ty mình dùng mạng lan nên việc đó thực hiện cũng khá đơn giản...


    Email: quocdung1222@gmail.com

    Một số góp ý trước khi bắt đầu:

    1. Xác định lại khả năng lập trình code của bản thân tới đâu. ( ý này không phải chê bay mà có thể làm bạn bỏ cuộc nửa chừng cho 200 cái User)
    2. Việc link table qua LAN đến 200 User sử dụng. Vấn đền này không cần đến 200 đâu, chỉ cần 3 User đăng nhập cùng lúc thôi là đủ làm bạn điên đầu rồi. Bởi lúc đó cần phải giải quyết rất nhiều vấn đề:
    - Load chậm, có khi mở mà không lên.
    - Lấy số chứng từ hoặc Mã khóa gì đó...

    3. Đã là 200 người chứng tỏ công ty bạn rất lớn, mà lớn như vậy đòi hỏi bảo mật phải cao, an toàn. Riêng Access mình nghĩ không phù hợp đâu.

    => Từ 1+2+3 suy ra: Thuê 1 người chuyên lập trình viết mình nghĩ là hay nhất. Tốt nhất viết bằng VB.NET

    Thân mến!
    -Mình nghĩ kể cả khi viết bằng VB.NET 1 cá nhân viết cho mô hình database tập chung cho 200 người dùng cũng khó mà đáp ứng được
    -Nói chung lập trình viên việt nam cơ bản chỉ viết theo mô hình client/server
    -Theo mình nên mua phần mềm của các công ty có uy tín,thương hiệu 
    -Các hệ thống lớn như ngân hang,bảo hiểm dùng hoàn toàn phần mềm của nước ngoài
    -Mô hình lập trình của họ ít nhất là 3 lớp thậm chí là nhiều hơn
  • RE: Tránh xung đột dữ liệu trong access

    thucgia > 11-09-15, 04:17 PM

    (11-09-15, 10:56 AM)hoanbhxhls Đã viết:
    (09-09-15, 09:36 PM)maidinhdan Đã viết:
    (09-09-15, 03:17 PM)quocdung9999 Đã viết: Mình có một số vấn đề muốn hỏi mong mọi người giúp đỡ nhé.

    Hiện tại mình đang làm phần mềm access, bên công ty mình khoảng có 200 User, mình dùng link table để kết nối các User để sử dụng cùng một database , vì công ty mình dùng mạng lan nên việc đó thực hiện cũng khá đơn giản...


    Email: quocdung1222@gmail.com

    Một số góp ý trước khi bắt đầu:

    1. Xác định lại khả năng lập trình code của bản thân tới đâu. ( ý này không phải chê bay mà có thể làm bạn bỏ cuộc nửa chừng cho 200 cái User)
    2. Việc link table qua LAN đến 200 User sử dụng. Vấn đền này không cần đến 200 đâu, chỉ cần 3 User đăng nhập cùng lúc thôi là đủ làm bạn điên đầu rồi. Bởi lúc đó cần phải giải quyết rất nhiều vấn đề:
    - Load chậm, có khi mở mà không lên.
    - Lấy số chứng từ hoặc Mã khóa gì đó...

    3. Đã là 200 người chứng tỏ công ty bạn rất lớn, mà lớn như vậy đòi hỏi bảo mật phải cao, an toàn. Riêng Access mình nghĩ không phù hợp đâu.

    => Từ 1+2+3 suy ra: Thuê 1 người chuyên lập trình viết mình nghĩ là hay nhất. Tốt nhất viết bằng VB.NET

    Thân mến!
    -Mình nghĩ kể cả khi viết bằng VB.NET 1 cá nhân viết cho mô hình database tập chung cho 200 người dùng cũng khó mà đáp ứng được
    -Nói chung lập trình viên việt nam cơ bản chỉ viết theo mô hình client/server
    -Theo mình nên mua phần mềm của các công ty có uy tín,thương hiệu 
    -Các hệ thống lớn như ngân hang,bảo hiểm dùng hoàn toàn phần mềm của nước ngoài
    -Mô hình lập trình của họ ít nhất là 3 lớp thậm chí là nhiều hơn

    200 người dùng nhưng bạn phải phân tích rõ là dùng như thế nào?
    tương tác thêm xóa sửa (CRUD) hay chỉ xem, nếu CRUD thì tần xuất lên các table thế nào...
    Mình ví dụ như trang web thuthuataccess.com mà chúng ta tham gia đây mình nghĩ số lượng đối với nó là 200 user chả là vấn đề gì cả, và bạn để ý rằng tất cả các trang đều sử dụng cơ chế phân trang, đều này sẽ làm giảm dung lượng đường truyền.
    ví dụ 2 là chương trình bạn Dân về quản lý văn bản nếu có cơ chế phân trang thì 200 user cùng tra cứu văn bản cũng chẳng là vấn đề gì cả.
    vậy bạn nên làm thế này
    1. Cơ chế phân trang dữ liệu   link tham khảo
    2. Vấn đề xung đột dữ liệu thật ra chỉ còn vấn đề cùng tương tác trên 1 record -> liên quan đến transaction. Mình thấy DAO Trong vba có thể giải quyết, đơn cử một số link sau :

    DAO transaction
    ADO Transaction

    có đầy đủ begintrans, commit, rollback....
    vài lời thế hy vọng giúp ích cho bạn.