Tìm trong:Webe-CHÍP

Bộ gõ (kiểu Vni/Telex/Viqr)Tắt (Alt+T)Mở (Alt+M)

 
Trang chủ ĐÓ HỎI, ĐÂY TRẢ LỜI TT 337

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]