|
|
|
Dùng VBA
để mở tập tin Access có mật khẩu |
|
Đó hỏi: Xin e-CHÍP chỉ cho tôi cách dùng lệnh
OpenDatabase của VBA trong Access để mở tập tin
Access khác có mật khẩu bảo vệ là "abc". Xin cám ơn. |
|
<m_tien_85@> |
|
Đây
trả lời: Để
mở một database được bảo vệ bằng mật khẩu, bạn phải
sử dụng hành vi OpenDatabase với tham số Connect
phải chứa mật khẩu. Cú pháp hành vi OpenDatabase như
sau:
Set db =
ws.OpenDatabase(dbname, options, read-only, connect)
Trong đó: db là đối tượng database, ws là đối
tượng workspace. Mặc dù hai tham số options và
read-only là tùy ý, nhưng khi sử dụng tham số
Connect (ngay cả với mật khẩu đúng) thì bạn bắt buộc
phải sử dụng kèm 2 tham số này, nếu không, bạn sẽ
luôn nhận được thông báo lỗi: run-time error 3031:
Not a valid password.
Tham số Connect phải theo cú pháp sau:
MS
Access;pwd=password
Trong đó password là mật khẩu dùng để mở database.
Để thử nghiệm, bạn chỉ cần làm thử ví dụ sau:
- Tạo một database có tên DB1.MDB, tạo một table có
tên Table1 với hai field MaSo và Ten. Trên trình đơn
Tools, chọn mục Security \ Set Database Password,
rồi gõ mật khẩu abc vào mục Password và Verify, chọn
OK để hoàn tất việc đặt mật khẩu cho database.
- Tạo một database có tên DB2.MDB, tạo một form rồi
gõ vào đoạn mã 1 để thử mở database DB1.MDB.
Bạn lưu ý, vì phải sử dụng Microsoft Data Access
Objects nên trong cửa sổ soạn thảo VBA, bạn phải
chọn mục Tools \ References và chọn Microsoft DAO
3.6 Object Library trong hộp thoại References. |
|
Đoạn
mã 1 |
|
Private Sub Form_Open(Cancel As Integer)
Dim db As DAO.Database
Dim ws As DAO.Workspace
Dim rs As DAO.Recordset
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase ("D:\DB1.mdb", False,
False, "MS Access;PWD=abc")
Set rs = db.OpenRecordset("Table1",
dbOpenDynaset)
If rs.RecordCount > 0 Then
rs.MoveFirst
MsgBox "Ma so: " & rs!MaSo & " - Ten: " &
rs!Ten
End If
rs.Close
db.Close
End Sub |
|
CHƯƠNG CAN CHÍP |
|
Không cho người dùng chung máy xóa folder hay file |
|
Đó
hỏi: Máy tính
nhà em có mấy đứa em xài chung, chúng thường hay xóa
các chương trình và dữ liệu trên máy của em. e-CHÍP
có cách nào giúp em để mấy đứa nhỏ không xóa bậy bạ
trên máy của em. |
|
<linefeet@> |
|
 |
Đây
trả lời: Để
ngăn không cho những người dùng chung máy xóa
folder/file của mình, bạn phải có quyền quản trị máy
(admin) và làm theo các bước sau:
1. Bấm phím phải chuột vào My Computer, chọn lịnh
Manage trong menu ngữ cảnh > chọn Local Users and
Groups/Users trong cửa sổ bên trái > bấm phím phải
chuột vào khoảng trống trong cửa sổ bên phải, chọn
New User để tạo account user cho từng người.
2. Nếu ổ cứng đang định dạng FAT32 thì chuyển sang
định dạng NTFS bằng cách vào Start/ Run, gõ lịnh cmd
rồi gõ lịnh convert c: /fs:ntfs trong cửa sổ
DOS (do ổ C cài hệ điều hành nên việc chuyển đổi sẽ
thực thi lúc khởi động máy lại).
3. Cho hiệu lực chế độ phân quyền cao cấp của
Windows XP bằng cách bấm kép chuột vào My Computer >
mở menu Tools/ Folder Options > chọn bảng View và
xóa dấu chọn mục User simple file sharing trong
khung Advanced Settings > bấm OK.
4. Trở lại cửa sổ My Computer > bấm phím phải chuột
vào folder/file muốn bảo vệ riêng, chọn lịnh Sharing
and Security > trong bảng Sharing, chọn Share this
folder và đặt tên cho folder/file này > bấm nút
Permissions, trong bảng Share Permissions, chọn
account mặc định Everyone, bấm nút Remove để xóa >
bấm nút Add.
5. Trong bảng Select Users or Groups, bấm nút
Advanced > bấm nút Find Now, chọn 1 account bạn mới
tạo trong khung liệt kê phía dưới rồi bấm nút OK
(làm lần lượt như vậy cho các account còn lại).
6. Quay lại bảng Share Permissions, chọn từng
account và đánh dấu chọn các ô ngăn cấm phù hợp
trong khung bên dưới (Deny) > bấm OK để kết thúc.
7. Bạn mở bảng Security, chọn account muốn giới hạn
quyền và đánh dấu vào các ô Deny phù hợp.
Từ bây giờ, account nào bạn đã ngăn cấm sẽ không thể
xóa folder/file của bạn được nữa. |
|
LÊ HOÀN |
|
[Đầu trang] |
|
|
|