Chỉ dẫn viết ứng dụng Access nhiều người dùng.

Liên hệ QC

taichinhnganhang

Thành viên mới
Tham gia
8/11/08
Bài viết
7
Được thích
0
Chào các anh/chị

Mặc dù đọc qua các bài viết Access trong môi trường nhiều người dùng, nhưng tôi vẫn chưa hình dung được cách viết một ứng dụng đa người dụng cụ thể ra sao.

Vì mục đich áp dụng công nghệ và giảm bớt thủ công, kính mong các anh/chị cao thủ (bác Lê Văn Duyệt, Hai2hai,....) chỉ dẫn tận tình, có file tham khảo để các newbi có thể tham khảo, áp dụng.

Mong các bác giúp đỡ.

Trân trọng
 
- Tip để bạn tìm kiếm: Attach tables
- Tip để bạn suy nghĩ: 2 người cùng thêm mới bản ghi (mở form ở trạng thái thêm mới), ví dụ là thêm mới hàng hóa, và giả sử ID là tăng dần. Vậy thì khi save bạn sẽ làm gì?

Cứ thế, bạn sẽ tự làm được và thấy mọi chuyện chả có gì khó cả.

Cheers!
 
Cảm ơn anh Hải đã quan tâm trả lời. Tuy nhiên, em chưa hiểu

1 Attach table để làm gì ?
2 Khi 02 người cùng save thì cần phải kiểm tra có trùng khóa chính hay kg ? đang sửa trên 01 mẫu tin để save hay thêm mới mẫu tin để save ? hoặc 1 người đã xóa 1 người khác sửa trên mẫu tin đó thì sao ?..... => đó là cái em chưa biết xử lý thế nào.
Để dễ hình dung, em xin nói vắn tắt ứng dụng em như sau:
Em sẽ dùng 1 file MDB lưu trữ dữ liệu (data) 1 MDBfile (app)gồm: form, báo cáo,......
File App dùng ADO để kết nối dữ liệu tới Data.
Vậy khi em có nhiều file App kết nối đến Data thì giả sử người dùng ở App cùng thêm hay sửa 1 chứng từ hay như 1 xóa, 1 sửa thì làm sao quản lý ?
Mong anh Hải nói rõ từng bước, vì em chỉ là newbi.

Trân trọng và cảm ơn
 
1 Attach table để làm gì ?

Để ... google: MS Access + Attach table. Đáng ra đã có từ khóa này rồi thì bạn ko nên hỏi mới đúng chứ (vì tức là bạn chưa tìm hiểu về nó mặc dù tớ đã đưa bạn chìa khóa)

Em sẽ dùng 1 file MDB lưu trữ dữ liệu (data) 1 MDBfile (app)gồm: form, báo cáo,......
File App dùng ADO để kết nối dữ liệu tới Data.

Nôm na thế này:

- File 1: File TenChuongTrinh.mdb cho app: form, report, attached tables (from file MDB cho CSDL), query (từ các attached tables đó)
- File 2: File Data.mdb dùng để lưu CSDL của chương trình. File này chỉ chứa các tables mà thôi, thậm chí ko có query. Các tables này được link (attach) sang TenChuongTrinh.mdb (nằm ở các máy trạm)

Như thế, khi chạy trên LAN thì file 2 được để trên 1 máy dùng chung và phải share ...full thư mục :). Ví dụ bạn để ở máy chủ của cty, sau đó bạn để file Data.mdb đó trong thư mục D:\PhanMemKeToanABC chẳng hạn. (Bạn share thư mục đó với tên là PhanMemKeToanABC, ví dụ thế)

Còn file TenChuongTrinh.mdb bạn để ở các máy trạm, khi log vào chương trình thì bạn kiểm tra "link" của 1 attached table nào đó (nếu link not OK thì bạn phải locate tới file \\TenMayChu\PhanMemKeToanABC\Data.mdb đó)

Phương án "Attached table" là cách mà tớ đã từng dùng cách đây .... 15 năm rồi và khá hiệu quả khi viết ứng dụng qua mạng (dĩ nhiên là dạng mạng ... sharefull thôi)

Re: Ý tưởng chuyện 2 người cùng mở 1 bản ghi. Bạn tưởng tượng thế này: Sáng bạn vào nhà ... vệ sinh và bạn occupied cái nhà đó (đóng cửa, treo thông báo ở ngoài là: Tôi đang...bận). Bạn thông báo như thế, liệu có ai "Mở" (Edit) cái nhà VS đó ra hoặc có ai "Đập" (Delete) tan cái nhà VS đó đi ko? :D Giả sử họ cố tình "Nháy đúp" vào cái cửa thì lập tức cái nhà VS nó hiện ra thông báo: Tôi đang bị Occupied bởi Mr A.

ĐÓ, cứ nghĩ "vớ vỉn" 1 cách đời thường như thế, bạn cũng có thể ứng dụng y choang như vậy trong cách viết PM của bạn.

Còn các vấn đề còn lại, bạn tự suy nghĩ thôi chứ tớ là tớ ko thích nhất ở cái điểm: Hướng dẫn từ A-->Z. Tớ chỉ đưa ra ý tưởng và mọi người suy nghĩ KỸ, hành động về nó đã (tức là phải làm tóe loe với nó đi đã), vướng lắm lắm thì mới hỏi. Tự suy nghĩ và tìm hướng làm sẽ tăng kỹ năng tự giải quyết vấn đề của mọi người.
 
Lần chỉnh sửa cuối:
h2h chắc bảo viết bằng unboud rồi em hỏi cái này cụ thể hơn một tý anh hướng dẫn nhé: Access: nhập liệu trên form dạng datasheet thì insert kiểu gì (có cấu trúc SQL nào làm trực tiếp không hay phải dùng vòng lặp)? hoặc có phương pháp nào khác không
 
h2h chắc bảo viết bằng unboud rồi em hỏi cái này cụ thể hơn một tý anh hướng dẫn nhé: Access: nhập liệu trên form dạng datasheet thì insert kiểu gì (có cấu trúc SQL nào làm trực tiếp không hay phải dùng vòng lặp)? hoặc có phương pháp nào khác không

Viết unbound cho grid thì đúng là hơi khó. Phải lập trình khá được mới control hết được các tình huống. Cái HRM của tớ có 1 số màn hình dạng grid viết unbound đó. Tuy nhiên code thời đó viết giờ mình xem lại cũng ... phải mất 1 buổi mới đọc hiểu được.

Mình viết dạng mỗi đối tượng có 1 object.

Kiểu như:

With objCustomer
.ID = vsfGrid.TextMatrix(vsfGrid.Row, CST_FLD_ID)
.Code = vsfGrid.TextMatrix(vsfGrid.Row, CST_FLD_CODE)
.Name = vsfGrid.TextMatrix(vsfGrid.Row, CST_FLD_NAME)
'// ...
if Not .IsValid() Then Goto Proc_Done
if Not .Insert() Then Goto Proc_Done
'// ....

End With

Nhưng nếu bạn save chứng từ thì nên:
Save header của chứng từ
Save detail của chứng từ (dùng đơn giản thôi: for i = 1...rows-1)

Nếu ko save thành công thì nhớ rollback lại (delete luôn chứng từ đó)
 
Lần chỉnh sửa cuối:
hì hì thanks đại ca
cách 1 chưa hiểu lắm nhưng chắc lỳ đòn rùi cũng được
Cách 2 thì Ok (vì đang cần save chứng từ thôi)
Hồi trước giờ toàn làm kiểu dùng temp_tbl mỗi lần insert thì copy nó qua xong rồi delete đi, nhưng làm vậy thì người ta muốn gọi lại chứng từ để sửa cũng hơi phức tạp
 
Web KT
Back
Top Bottom