-
01-13-2011, 09:16 PM #1Silver member
- Ngày tham gia
- Mar 2016
- Bài viết
- 0
Cơ sở dữ liệu Access nhiều người người dùng
Chào các bạn
Phần mềm của mình viết bằng access,được tổ chức theo mô hình Front end,Back End
Và mình bắt đầu cho nó chạy trong mạng LAN,vì vậy mà mình phải tính đến việc đụng độ
trong chế độ nhiều người dùng(như trùng khóa chính,nhiều người truy cập vào 1 bản ghi v v...)
-Mình đã dùng một số giải pháp sau để tính toán phân quyền việc đụng độ
1.Tạo thông tin user bằng Tool Security của Access( Workgroup information) (file .mdw)
2.Dùng một số thiết lập trong Tool Option của access
Nhưng cả 2 giải pháp trên nhìn chung không giải quyết được đụng độ
-Mình đang tính đến việc tự làm một module để giải quyết việc đụng độ
Vậy mình muốn các bạn trợ giúp cho mình cách làm module để tính toán giải quyết việc đụng độ
Rất mong trợ giúp các bạnView more random threads:
- Chuyên đề ứng dụng : Thiết kế chương trình Sổ Quỹ Tiền Mặt(Phần 2 - Query và Report)
- làm cách nào để đưa nhiều file excel vào cùng 1 table
- Thêm Nhiều Record Chỉ Bằng Một Nút Nhấn
- Bẫy lỗi trong Access bằng VBA
- Có cách nào để cho Textbox ( Kiểu number) hiển thị chữ "New" cho một bản ghi mới không ?
- Cách kết hợp VBA với access
- Giúp mua sách của tác giả Ông Văn Thông
- Các Bro giúp em sử lý hàm Dsum kết hợp hàm And với !!!!
- giúp tắt chế độ báo của access!
- Lựa chọn và mặc định máy in trên access
-
01-17-2011, 06:49 PM #2Silver member
- Ngày tham gia
- Apr 2016
- Bài viết
- 130
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
Mấy cái Workgroup information đó hình như trong Access 2007 trở nên nó bỏ rồi mà.
Còn cái ý của bạn mình cũng đã làm trong phần mềm của công ty mình. Lâu rồi mình không có nhớ,đại loại như sau :
Mình không dùng autonumber (dùng cái này hay vì không lo đụng độ khóa chính nhưng nó cứ tăng nên mình không thích) ,cái này mình dùng Function để tăng +1.
Khi có 1 người insert dữ liệu trong sự kiện Before Insert bạn chạy 1 câu lệnh sql update cái mã ID đã tăng do Function vào 1 table nào đó, người thứ 2 trước khi insert sẽ phải kiểm tra trong table đó để lấy mã ID +1.
Đấy là vấn đề insert còn chỉnh sửa dữ liệu đang có thì bạn dựa vào cái sự kiện On dirty . Thế này nhé khi 1 ai đó chỉnh sửa dữ liệu thì mã record đó sẽ được insert vào 1 table ABC ,cho đến khi sửa xong thì cái After update sẽ xóa nó đi. Người thứ 2 khi vào đúng bản ghi đó để sửa thì trên sự kiện on dirty sẽ kiểm tra mã ID trên Form có trùng với mã trong table ABC trên không ,nếu không thì cho insert và chạy sql để update mã vào ABC ,còn nếu có thì khóa Form với bản ghi đó .
Để làm vấn đề này bạn cần phải làm nhiều cái nữa, giả dụ như lợi dụng On time sau một thời gian nào đó thì bỏ khóa chẳng hạn ...
Cái này mình làm chạy trên máy công ty 2 người cùng ínert dữ liệu 1 lúc chưa thấy có vấn đề gì. Đây là ý kiến của mình ,nếu sai mọi người góp ý nhé.
-
01-17-2011, 09:03 PM #3Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
cảm ơn trợ giúp của bạn glasseggs
Mình sẽ làm theo cách của bạn,theo bạn mô hình csdl access mdb dùng cho 5 máy
có ổn không hay bắt buộc phải chuyển theo mô hình access project+sql server
Rất mong trợ giúp của bạn
-
01-18-2011, 11:48 PM #4Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
Cái vụ sql mình giờ mới đang học. Nên không dám phán bừa ,cái này bạn hỏi bác Phat nhiều kinh nghiệm hơn.
Còn phần mềm công ty mình dung tất cả là 3 máy chưa có vấn đề gì. Theo ý kiến cá nhân mình nếu csdl của bạn không quá rắc rối thì dùng access cũng được.
Mà khi thiết kế nó không biết bạn có để ý đến cái vụ compact dữ liệu tự động không, trước đây mình cũng không để ý đến nó vì nghĩ không cần. Nhưng để đảm bảo phần mềm hoạt động tốt và nhanh qua mang LAN mình đã thử cái này như sau :
Mình tạo code để insert gần 30.000 record vào table, cơ sở dữ liệu phình ra là hơn 250 Mb. Sau đó mình vào table xóa gần hết để lại vài bản ghi. Sau đó thoát phần mềm kiểm tra back end vẫn là 250 Mb. Mình mở phần mềm lên và compact, kết quả back end chỉ còn vài trăm kb .
-
01-19-2011, 03:49 AM #5Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
cảm ơn bạn glasseggs
Mình đã giải quyết được trường hợp nhiều người cùng nhập số liệu không bị trùng khoá chính
Nhưng mà còn 1 vấn đề thế này
1.Khi nhiều người cùng nhập chứng từ
Người thứ 1 nhập chứng từ số 1
Người thứ 2 nhập chứng từ số 2
....
...
v ..vv
Người thứ 1 lưu chứng từ số 1 trước
mình dùng nút lệnh lưu gen bởi ms access
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Tiếp theo người thứ 2 lưu chứng từ số 2
....
cũng với nút lệnh có code
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Thì xuất hiện thông báo trên form
This record has been changed by another user since you started editing it.
if you save the record ,you will overwrite the change the other made
Copy the changed to the clipboard will let you look at the value the other
user entered,and then paste your change back in if you decide to make change
SAVE COPY TO CLIPBOARD DROP CHANGE
Đây không phải là trường hợp 2 người cùng sửa 1 bản ghi mà trường hợp
cùng thêm mới ,sau đó cất giữ thì những bản ghi đang nhập ở máy khác cũng tự động lưu thì phải
-Mình nghĩ rằng có phải do câu lệnh
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
lưu thay đổi bản ghi hiện tại hay là lưu tất cả thay đổi của Table đó
Để khắc phục tình trạng trên mình làm như nào
Rất mong ý kiến của bạn
-
01-19-2011, 06:30 AM #6Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
Gửi bởi tuannhcs
DoCmd.RunCommand acCmdSaveRecord
-
01-21-2011, 09:57 PM #7Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
Bài toán truy cập nhiều người sử dụng khó có thể giải quyết trong MS Access. Trên thực tế thì có rất nhiều vấn đề liên quan đến việc quản lý truy cập nhiều người sử dụng, và nó liên quan cả đến hiệu suất của cả hệ thống bạn sử dụng. Trong các hệ quản trị cơ sở dữ liệu có tiếng hiện nay, có rất nhiều các công cụ và cơ chế để giải quyết các vấn đề về truy cập chung, ví dụ như cơ chế Phong tỏa các bản ghi.
Có thể có một vài cách giải quyết những vấn đề bạn đưa ra ở trên, nhưng chỉ mang tính cục bộ và sẽ có rủi ro là phát sinh thêm nhiều vấn đề khác khi vận hành.
-
01-25-2011, 09:38 PM #8Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
Gửi bởi Thang_MADI
-
01-28-2011, 03:11 PM #9Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Cơ sở dữ liệu Access nhiều người người dùng
Hiện tại mình sử dụng 1 chương trình Access, sử dụng nhiều người dùng, chạy trên mạng Lan, chưa gặp rắc rối gì ngoại trừ rớt mạng và cúp điện.
Tương tự như nguyên lý hoạt động của trứng rung tình ái wireless, Svakom cũng được tích hợp tính năng điều khiển từ xa để người dùng dễ dàng điều chỉnh hơn trong quá trình tự sướng. Tuy nhiên, điểm...
Chày rung không dây Svakom Elva khiến các cô sung và sướng