Đánh giá chủ đề:
  • 5 Votes - 2.4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Nhập liệu nhiều máy trên cùng một data trong Access
#1
sory chủ topic nhé, do mình ko thể tạo new topic nên đành mượn topic để hỏi các bạn về viết access cho nhiều người dùng cùng lúc.
- Mình chưa rành về access, và đã tham khảo nhiều bài viết về cách thực hiện vấn đề trên, nhưng vẫn chưa thực hiện được.

- Mình tạo 1 file database.mdb chỉ dùng để lưu dữ liệu, trong đó có 1 table (ID, manv, tennv...) và lưu file này trên thư mục of server (được share full). Tạo 1 file app.mdb dùng để thiết kế form nhập dữ liệu và được link table tới database.mdb.
- Sau đó mình copy nhiều bảng app.mdb tới nhiều máy khác và đều được kết nối tới server (bằng mạng local). Mục đích là để phục vụ cho nhiều người nhập dữ liệu và nó sẽ được lưu trong cùng 1 file database.mdb.
- Trong form nhập dữ liệu, mình thiết kế nút New & nút Save như sau:
Private Sub New_Click()
DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub Save_Click()
DoCmd.RunCommand acCmdSaveRecord
End Sub

- Kết quả như sau:
1) Nếu mình chạy cùng lúc 2 file app.mdb trên cùng 1 computer (dĩ nhiên là phải rename 2 file khác nhau) => cùng lúc chạy form nhập dữ liệu, New...nhập data...save thì sau đó mình mở file database.mdb thì sẽ thấy 2 record mới được thêm vào.
2) Tuy nhiên, nếu mình cùng lúc chạy file app.mdb trên 2 máy khác nhau (đều được kết nối local tới sever) và thực hiện New .... nhập data .... Save => kết quả trong file database.mdb chỉ lưu Newrecord of 1 trong 2 máy thôi. Yêu cầu of mình là nó phải lưu newrecord of cả 2 máy.
- Đối với trường ID trong table mình đã thử cả 2 trường hợp là: Primary Key (autonumber) và không set Primary Key (number) đều cho ra kết quả trên. Cry_smile

Nhờ các bạn tư vấn dùm mình với, thanks all
Chữ ký của halover Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#2
Bạn thử vầy xem:
Trong form, bạn vào properties=>Tab data=> ô record lock. Bạn chọn là Edited Record.
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Mình bổ sung thêm ý này: Mình đã nghĩ khi 2 máy cùng lúc tạo New và nhập data, nên có thể access ko hiểu. Nên mình có chỉnh lại code trong nút New như sau:
Private Sub New_Click()
DoCmd.GoToRecord , , acNewRec
DoCmd.RunCommand acCmdSaveRecord
End Sub
Mục đích là khi 1 người thực thi lệnh New thì access tự động tạo mới 1 record và save nó vào file database.mdb luôn (sau đó thực hiện edit lại sau), và khi đó nếu người khác chọn New thì sẽ không bị sung đột. Tuy nhiên, kết quả lại không như mình nghĩ hix Confused_smile nó vẫn vậy
Chữ ký của halover Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#4
(08-03-11, 11:43 AM)halover Đã viết: sory chủ topic nhé, do mình ko thể tạo new topic nên đành mượn topic để hỏi các bạn về viết access cho nhiều người dùng cùng lúc.
- Mình chưa rành về access, và đã tham khảo nhiều bài viết về cách thực hiện vấn đề trên, nhưng vẫn chưa thực hiện được.

- Mình tạo 1 file database.mdb chỉ dùng để lưu dữ liệu, trong đó có 1 table (ID, manv, tennv...) và lưu file này trên thư mục of server (được share full). Tạo 1 file app.mdb dùng để thiết kế form nhập dữ liệu và được link table tới database.mdb.
- Sau đó mình copy nhiều bảng app.mdb tới nhiều máy khác và đều được kết nối tới server (bằng mạng local). Mục đích là để phục vụ cho nhiều người nhập dữ liệu và nó sẽ được lưu trong cùng 1 file database.mdb.
- Trong form nhập dữ liệu, mình thiết kế nút New & nút Save như sau:
Private Sub New_Click()
DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub Save_Click()
DoCmd.RunCommand acCmdSaveRecord
End Sub

- Kết quả như sau:
1) Nếu mình chạy cùng lúc 2 file app.mdb trên cùng 1 computer (dĩ nhiên là phải rename 2 file khác nhau) => cùng lúc chạy form nhập dữ liệu, New...nhập data...save thì sau đó mình mở file database.mdb thì sẽ thấy 2 record mới được thêm vào.
2) Tuy nhiên, nếu mình cùng lúc chạy file app.mdb trên 2 máy khác nhau (đều được kết nối local tới sever) và thực hiện New .... nhập data .... Save => kết quả trong file database.mdb chỉ lưu Newrecord of 1 trong 2 máy thôi. Yêu cầu of mình là nó phải lưu newrecord of cả 2 máy.
- Đối với trường ID trong table mình đã thử cả 2 trường hợp là: Primary Key (autonumber) và không set Primary Key (number) đều cho ra kết quả trên. Cry_smile

Nhờ các bạn tư vấn dùm mình với, thanks all

Cái phần tạo riêng database.mdb và app.mdb rồi sau đó các form link tới các table của database.mdb kiểu j thế bạn. Mình không hiểu cách làm. Bạn nói cụ thể hộ mình được không.
Mình cũng đang quan tâm tới vấn đề chia sẻ access cho nhiều người dùng, và phân quyền
Chữ ký của dangshine Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#5
(08-03-11, 12:20 PM)Noname Đã viết: Bạn thử vầy xem:
Trong form, bạn vào properties=>Tab data=> ô record lock. Bạn chọn là Edited Record.

ok thanks Heart, vấn đề nó nằm ở đây, mình làm được rồi, 2 người cùng lúc nhập data đã lưu thành công.
Chữ ký của halover Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#6
(08-03-11, 04:01 PM)dangshine Đã viết: Cái phần tạo riêng database.mdb và app.mdb rồi sau đó các form link tới các table của database.mdb kiểu j thế bạn. Mình không hiểu cách làm. Bạn nói cụ thể hộ mình được không.
Mình cũng đang quan tâm tới vấn đề chia sẻ access cho nhiều người dùng, và phân quyền
Mình nói rõ hơn tí cho bạn hiểu nhé, bạn tạo 2 file:

- 1 file tên database.mdb trong đó chỉ chứa các table (ví dụ: table tên là Nhanvien (manv, tennv....). File này bạn lưu trong thư mục of server để các máy khác có thể nhìn thấy (bạn cấp full quyền nhé).

- 1 file tên app.mdb: bạn dùng chức năng link table trong access để link tới các table ở file database.mdb. Để làm điều này bạn mở file app.mdb -> chọn File/Get external data/link tables. Nó sẽ ra đường dẫn, và bạn chỉ việc dẫn tới nơi chứa file database.mdb đã lưu ở server. Sau đó nó bảo bạn chọn các table ...> rồi chọn ok. Sau khi xong bạn sẽ thấy các table link sẽ nằm ở Objects/Table (nó có dấu mũi tên phía trước để phân biệt với các table nội bộ).
Vậy là xong phần kết nối data nhé, bây giờ bạn chỉ việc thiết kế các forms, Queries, Report.... ở file app.mdb như bình thường với table source là các table link. Rồi sau đó bạn coppy file này ra nhiều bảng cho nhiều máy trạm để dùng. Như vậy, các công việc như new, edit record, hoặc tạo báo cáo ... tại các máy trạm sẽ được truy suất data từ 1 file lưu ở sever. Sẽ rất tiện lợi khi làm việc nhóm đấy


Chữ ký của halover Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn dangshine , Noname , quocdung190487
#7
Mình cũng mới tham gia diễn đàn này hôm nay thôi. mình biết sơ về thiết kế access qua sách. Hiện mình cũng đang dùng access để quản lý dữ liệu nhưng chưa khám phá được nhiều chức năng của access. Vì vậy minh tham gia diễn đàn là để học thêm từ các bạn nhiều điều mới vế access. Bạn halover viết chủ đề Nhập số liệu từ nhiều máy khách nhau cho một Database là rất hợp ý mình, mình cũng muốn làm như thế nhưng chưa biết cách. Bạn nào biết xin chỉ dùm, cám ơn!Present
Chữ ký của misadaknong Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#8
Bạn thử dùng nguồn cho form trực tiếp từ Query, ID trong table là: Primary Key (autonumber), và nút New:
Private Sub New_Click()
Me.Requery
DoCmd.GoToRecord , , acNewRec
MANGHIEPVU = "BAN"
DoCmd.RunCommand acCmdSaveRecord
End Sub

Xem nhiều người nhập cùng lúc có ổn không? Cùng chia sẽ nhé!

P/s: thêm phần gán MANGHIEPVU để tạo ra record mới, và save luôn.
Chữ ký của KínhCận Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn Noname
#9
Sau một thời gian tìm hiểu, mình phát hiện ra vấn đề là các file app.mdb lưu tại các client thì các bạn lưu ý phải rename khác nhau nhé. Nếu các file app.mdb này trùng tên thì access ko thể tạo new, edit... đồng thời được đâu nhé (mình dùng access 2003).
Chữ ký của halover Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn Noname
#10
(21-03-11, 02:34 PM)halover Đã viết: Sau một thời gian tìm hiểu, mình phát hiện ra vấn đề là các file app.mdb lưu tại các client thì các bạn lưu ý phải rename khác nhau nhé. Nếu các file app.mdb này trùng tên thì access ko thể tạo new, edit... đồng thời được đâu nhé (mình dùng access 2003).
Trùng tên vẫn được có sao đâu!!!!!!!
Chữ ký của ZUNGNN Xin chào! Mình là ZUNGNN, thành viên của Thủ Thuật Access tham gia ngày Oct 2010.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác Noname 33 19,289 01-12-16, 06:49 PM
Bài mới nhất: atula77
  Xây dựng Class Modules trong Access ( Cơ bản đến Nâng cao) maidinhdan 2 179 13-11-16, 05:32 PM
Bài mới nhất: cpucloi
  [Help] SQL lỗi khi tham chiếu trường trong Forms Phung Duc 1 71 02-11-16, 03:17 PM
Bài mới nhất: Minh Tiên
  Hướng Dẫn Demo tổng hợp xuất Table, Query sang Excel có điều kiện ở vị trí nào cũng được maidinhdan 18 2,781 20-10-16, 11:51 AM
Bài mới nhất: jeck09nt
  Ms Access VBA và Google drive, một vài ý tưởng trong chia sẻ và đồng bộ số liệu... paulsteigel 46 3,848 07-10-16, 02:43 PM
Bài mới nhất: kieu manh

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ