-
Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
yamakashi2003 > 21-05-20, 11:38 PM
Em chào các bác ạ,
1. HIện em thấy nếu file access mà bỏ vào ổ trong mạng lan thì nhiều máy có thể bật lên để truy cập dùng bình thường, nhờ các bác chỉ giúp em cách cài đặt thuộc tính trong form để 1 file access chỉ có 1 máy mở lên được thôi, máy mở sau sẽ báo bị khóa
2. Và cho em hỏi thuộc tính của form: key preview (trong thẻ event) và thuộc tính record locks (trong thẻ data) sử dụng như thế nào ạ
Em xin cảm ơn -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
tranthanhan1962 > 21-05-20, 11:54 PM
Cấm mở thì không được rồi. Nhưng có thể khóa bằng record locks như bạn đã nói. Có 3 trường hợp record locks.
1/ No Locks: Không khóa, nếu có nhiều máy xử lý cùng một record sẽ bị lỗi do xung đột dữ liệu.
2/ All Records: Khóa tất cả các record, chỉ có máy đầu tiên mở form xử lý được mọi việc, các máy mở sau chỉ được xem cho đến khi máy đó đóng form lại.
3/ Edited Record: Máy nào chọn record trước (current record của máy đó) thì có toàn quyền với record đó các máy khác không có quyền với record đó nhưng có quyền vói các record khác -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
yamakashi2003 > 22-05-20, 12:18 AM
(21-05-20, 11:54 PM)tranthanhan1962 Đã viết: Cấm mở thì không được rồi. Nhưng có thể khóa bằng record locks như bạn đã nói. Có 3 trường hợp record locks.
Bác em hỏi thuộc tính của form: key preview (trong thẻ event) sử dụng như thế nào ạ
1/ No Locks: Không khóa, nếu có nhiều máy xử lý cùng một record sẽ bị lỗi do xung đột dữ liệu.
2/ All Records: Khóa tất cả các record, chỉ có máy đầu tiên mở form xử lý được mọi việc, các máy mở sau chỉ được xem cho đến khi máy đó đóng form lại.
3/ Edited Record: Máy nào chọn record trước (current record của máy đó) thì có toàn quyền với record đó các máy khác không có quyền với record đó nhưng có quyền vói các record khác
Em xin cảm ơn -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
tranthanhan1962 > 22-05-20, 08:27 AM
Không có event On KeyPreview nhé bạn. KeyPreview chỉ là một thuộc tính (property) chứ không phải là sự kiện (event). key chỉ có 3 event là On KeyUp (Hành trình phím đi lên), On KeyDown (Hành trình phím đi xuống), On KeyPress (phím được gõ)
Khi xác form có KeyPreview = true thì form sẽ chiếm quyền sử dụng key. Nó sẽ cắt bỏ quyền của hệ thống thiết đăt cho key.
Ví dụ: Bạn muốn sử dụng phím F2 để đóng form, bạn sẽ viết một đoạn code là:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF2 Then DoCmd.Close
End Sub
Nhưng chắc chắn khi teste lại cho dù bạn nhấn phím F2 100 lần nó cũng không thực hiện việc Close Form. Mà chỉ làm một động tác nhảy vào một textbox nào đó để chuyến sang trạng thái chỉnh sửa (nếu không có textbox thì nó cũng im ru chẳng làm gì cả). Bạn đã viết một đoạn code sai chăng. Không phải, đoạn code đó đúng nhưng vô hiệu vì hệ thống đã gán phím F2 làm phím chỉnh sửa, và chỉ có hệ thống có quyền sử dụng phím F2. Nhưng nếu bạn thêm vào một đoạn code nữa:
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Lúc này khi bạn nhấn phím F2, nó sẽ Close Form, Thuộc tính KeyPreview = True đã cắt bỏ quyền quản lý phím của hệ thống và trao quyền này cho form.
Thông thường, người ta ít sử dung điều này vì phím hệ thống có nhiêu ưu điểm của nó -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
ongke0711 > 22-05-20, 08:27 AM
(21-05-20, 11:38 PM)yamakashi2003 Đã viết: 1. HIện em thấy nếu file access mà bỏ vào ổ trong mạng lan thì nhiều máy có thể bật lên để truy cập dùng bình thường, nhờ các bác chỉ giúp em cách cài đặt thuộc tính trong form để 1 file access chỉ có 1 máy mở lên được thôi, máy mở sau sẽ báo bị khóa
Nếu tôi không hiểu sai vấn đề này: ý đồ của bạn là đưa file vào Folder chia sẻ và muốn mọi người ngồi ở các máy tính khác có thể mở ứng dụng và xử lý (kiểu đa người dùng) nhưng khống chế chỉ cho 1 người thao tác ở một thời điểm. Tôi nghĩ bạn nên tìm kiếm trong diễn đàn, tham khảo tính năng nổi trội nhất của Access là Split Database. Đây là tính năng chia sẽ ứng dụng cho đa người dùng, dễ bảo trì, nâng cấp ứng dụng. -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
Xuân Thanh > 22-05-20, 08:28 AM
Chứng tỏ một điều là bạn này không chịu học hỏi. Các event và property của Form đã được tôi và tranthanhan1962 chỉ cho tận nơi rồi mà nay vẫn còn hỏi là sao? Nếu tiếp tục có những câu hỏi đã được trả lời mà không chịu tiếp thu thì e là khó tiến bộ được
Còn để chia sẻ trong mạng LAN thì nên dùng BE và FE. Tìm kiếm trên forum có nhiều lắm
Thân mến -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
yamakashi2003 > 22-05-20, 10:13 AM
(22-05-20, 08:27 AM)ongke0711 Đã viết:
Vấn đề này bác hiểu sai rồi, trc chính bác chỉ e dùng BE và FE, nhưng e hỏi cách 1 file acces mở nếu bỏ vào mạng lan vì trc đây e có nghịch linh tinh gì đó và 1 file chỉ 1 máy mở, máy khác mở sau bị báo lock, hoặc cũng có thể do IT cty em cài về mạng lan nên nó báo thế chứ k phải do em cài access(21-05-20, 11:38 PM)yamakashi2003 Đã viết: 1. HIện em thấy nếu file access mà bỏ vào ổ trong mạng lan thì nhiều máy có thể bật lên để truy cập dùng bình thường, nhờ các bác chỉ giúp em cách cài đặt thuộc tính trong form để 1 file access chỉ có 1 máy mở lên được thôi, máy mở sau sẽ báo bị khóa
Nếu tôi không hiểu sai vấn đề này: ý đồ của bạn là đưa file vào Folder chia sẻ và muốn mọi người ngồi ở các máy tính khác có thể mở ứng dụng và xử lý (kiểu đa người dùng) nhưng khống chế chỉ cho 1 người thao tác ở một thời điểm. Tôi nghĩ bạn nên tìm kiếm trong diễn đàn, tham khảo tính năng nổi trội nhất của Access là Split Database. Đây là tính năng chia sẽ ứng dụng cho đa người dùng, dễ bảo trì, nâng cấp ứng dụng. -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
yamakashi2003 > 22-05-20, 12:29 PM
(21-05-20, 11:54 PM)tranthanhan1962 Đã viết: Cấm mở thì không được rồi. Nhưng có thể khóa bằng record locks như bạn đã nói. Có 3 trường hợp record locks.
Bac cho em hỏi record là bản ghi trong table đúng không ạ. Vây với form unbound hay bound mà ghi dữ liệu ra nhiều table thì cái record locks này sẽ khoá hết record của các table được add dữ liệu đúng không ạ
1/ No Locks: Không khóa, nếu có nhiều máy xử lý cùng một record sẽ bị lỗi do xung đột dữ liệu.
2/ All Records: Khóa tất cả các record, chỉ có máy đầu tiên mở form xử lý được mọi việc, các máy mở sau chỉ được xem cho đến khi máy đó đóng form lại.
3/ Edited Record: Máy nào chọn record trước (current record của máy đó) thì có toàn quyền với record đó các máy khác không có quyền với record đó nhưng có quyền vói các record khác -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
ongke0711 > 22-05-20, 12:59 PM
(22-05-20, 10:13 AM)yamakashi2003 Đã viết: Vấn đề này bác hiểu sai rồi, trc chính bác chỉ e dùng BE và FE, nhưng e hỏi cách 1 file acces mở nếu bỏ vào mạng lan vì trc đây e có nghịch linh tinh gì đó và 1 file chỉ 1 máy mở, máy khác mở sau bị báo lock, hoặc cũng có thể do IT cty em cài về mạng lan nên nó báo thế chứ k phải do em cài access
Muốn thực hiện khoá file cũng có thể được thông qua mấy cái thủ thuật, tôi chưa làm cách này bao giờ vì không có nhu cầu.
- Có 1 table lưu thông tin số người đang mở ứng dụng. Ví dụ: table có 1 field [UserOnline]
- Khi mở ứng dụng thường sẽ kiểm tra cái table với field [UserOnline] xem =1 hay = 0, nếu = 0 thì tiếp tục mở, còn = 1 thì Docmd.Quit.
- Khi người dùng mở được ứng dụng, sẽ Update [UserOnline]=1.
- Khi người dùng thoát được ứng dụng, sẽ Update [UserOnline]=0. -
RE: Xin hỏi cách chỉ cho file access mở trên 1 máy, và thuộc tính form
tranthanhan1962 > 22-05-20, 01:17 PM
(22-05-20, 12:29 PM)yamakashi2003 Đã viết: Bac cho em hỏi record là bản ghi trong table đúng không ạ. Vây với form unbound hay bound mà ghi dữ liệu ra nhiều table thì cái record locks này sẽ khoá hết record của các table được add dữ liệu đúng không ạ
Nhìn kỹ đi, record locks là thuộc tính của form, unbound có record đâu mà locks. Có điều khi 1 table bị nhiều tác động update record cùng lúc, dù bằng form, VBA, action query thì cũng bị lỗi do xung đột dữ liệu