Giả sử bạn có một CSDL tên dbLock.MDB. Mỗi lần người ta mở nó, bạn
muốn biểu mẫu frmKhoiDong luôn được hiển thị trước tiên bằng cách xác
định Display Form/Page là frmKhoiDong. Để thay đổi thuộc
tính AllowBypassKey, bắt buộc phải mở CSDL, gán trị mới cho thuộc tính
này, đóng CSDL lại thì lần mở sau mới có ép-phê. Bạn nhớ, cần khóa làm
sao để người ta không mở được mà mình mở được, nghĩa là ta phải có chìa
khóa để mở. Chìa ở đây chính là một biểu mẫu khác, chẳng hạn có tên
là frmChiaKhoa.
Khi đã thay đổi thuộc tính AllowBypassKey được rồi, chắc chắn biểu
mẫu frmKhoiDongđược hiển thị khi mở CSDL. Cho nên ta đặt chìa khóa
thông qua biểu mẫu này bằng cách vẽ một ô điều khiển nào đấy (miễn sao nó
có thủ tục xử lý tình huống Click là được), chẳng hạn nhãn lblChiaKhoa, rồi
đặt thuộc tính Visible là No và thêm dòng lệnh DoCmd.OpenForm
“frmChiaKhoa” vào thủ tục xử lý tình huống Click. Bạn phải nhớ vị trí
nhãn lblChiaKhoa để lôi chìa khóa ra nhé. Như vậy, vấn đề còn lại nằm ở
biểu mẫu frmChiaKhoa.
Bạn mở cửa sổ soạn thảo Microsoft Visual Basic, chọn mục References… để
bảo đảm Microsoft DAO xx.xx Object Library (trong đó, phiên
bản xx.xx có thể là: 2.5 hoặc 3.51hoặc 3.6 tùy theo phiên bản Access, dĩ
nhiên nên chọn phiên bản mới nhất) đã được chọn trong danh sách Available
References.
Hình 1: Biểu mẫu cần thiết kế
Hình 1 là biểu mẫu frmChiaKhoa cần thiết kế, bao gồm một ô văn
bản txtPassword để nhận mật khẩu mà người cần mở khóa phải gõ vào, một
nút lệnh cmdLock thực hiện việc khóa CSDL và một nút
lệnh cmdUnlock thực hiện việc mở khóa CSDL. Xong, bạn gõ các thủ tục xử lý như đoạn mã 1.
Trước khi quậy chuyện này trên một CSDL, bạn nên sao chép phòng hờ CSDL để tránh sự cố khóa được
rồi nhưng không mở được (do bạn gõ nhầm các dòng lệnh).