Không cho mở Database

tienduyet

Member
Hội viên mới
Chuyện là thế này: Em lọ mọ trên net mãi tìm được cách chỉ vô hiệu hoá phím shift khi mở Database trên tạp chí Echip, cụ thể như sau:
' Hàm ChangeProperty thay đổi các thuộc tính của database:
Function ChangeProperty(strPropName, varPropType, varPropValue)
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then ' Thuộc tính không thấy.
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Không biết lỗi gì.
ChangeProperty = False
Resume Change_Bye
End If
End Function
' Xử lý tình huống chọn nút [Khóa database]:
Private Sub cmdLock_Click()
ChangeProperty "StartupForm", dbText, "Main"
ChangeProperty "StartupShowDBWindow", dbBoolean, False
ChangeProperty "StartupShowStatusBar", dbBoolean, False
ChangeProperty "AllowBuiltinToolbars", dbBoolean, False
ChangeProperty "AllowFullMenus", dbBoolean, False
ChangeProperty "AllowBreakIntoCode", dbBoolean, False
ChangeProperty "AllowSpecialKeys", dbBoolean, False
ChangeProperty "AllowBypassKey", dbBoolean, False
MsgBox "Database đã được khóa! Đóng database, rồi mở lại mới có ép-phê.", vbOKOnly, "eChip Security"
cmdExit.SetFocus
cmdUnlock.Visible = True
cmdLock.Visible = False
End Sub
' Xử lý tình huống chọn nút [Mở database]:
Private Sub cmdUnlock_Click()
ChangeProperty "StartupForm", dbText, ""
ChangeProperty "StartupShowDBWindow", dbBoolean, True
ChangeProperty "StartupShowStatusBar", dbBoolean, True
ChangeProperty "AllowBuiltinToolbars", dbBoolean, True
ChangeProperty "AllowFullMenus", dbBoolean, True
ChangeProperty "AllowBreakIntoCode", dbBoolean, True
ChangeProperty "AllowSpecialKeys", dbBoolean, True
ChangeProperty "AllowBypassKey", dbBoolean, True
MsgBox "Database đã được mở khóa! Đóng database, rồi mở lại mới có ép-phê.", vbOKOnly, "eChip Security"
cmdExit.SetFocus
txtPassword = ""
cmdLock.Visible = True
cmdUnlock.Visible = False
txtPassword.Visible = False
End Sub
' Xử lý tình huống khi mở biểu mẫu:
Private Sub Form_Open(Cancel As Integer)
Dim dbs As Database
Set dbs = CurrentDb
On Error GoTo KhongCoThuocTinh_Err
If dbs.Properties("AllowBypassKey") Then
cmdLock.Visible = True
txtPassword.Visible = False
Else
cmdLock.Visible = False
txtPassword.Visible = True
End If
Exit Sub
KhongCoThuocTinh_Err:
cmdLock.Visible = True
txtPassword.Visible = False
End Sub
' Khi người ta gõ mật khẩu và nhấn phím Enter:
Private Sub txtPassword_LostFocus()
If txtPassword = "echip" Then
cmdUnlock.Visible = True
End If
End Sub

Em liều mạng thử copy vào và làm theo hướng dẫn, rồi mở form đó và bấm vào nút cmdLock, khởi động lại và thế là.....công sức của em mài dũa mấy tháng trời thành công cốc rồi --> giờ em không mở được cửa sổ Database nữa, dù rằng em có bấm ngàn lần phím Shift thì cũng BóTay.com.
Em đọc lại đoạn mã trên tạp chí mới hiểu ra rằng tạp chí hướng dẫn form khởi động là Main nhưng em lại để form khởi động là frmWelcome, giờ mỗi lần mở Access xuất hiện một thông báo có nội dung đại khái là:...... không tìm thấy form Main....

Các anh ơi giờ có cách nào cứu vãn tình hình không ạ, em tội lớn quá. Các anh xem và cho em xin ý kiến khắc phục nhé, em xin cảm ơn!

*** Ghi chú: Em trích đoạn code trên từ tạp chí Echip
-----------------------------------------------------------------------------------------
Nghuy quá nghuy quá các anh ơi.......
 
Sửa lần cuối:
Ðề: Không cho mở Database

Bạn tạo 1 file mdb mới, tạo 1 form có 1 command và copy đoạn code sau vào để mở phím shift

Private Sub Command0_Click()
On Error GoTo ErrHandler

Dim db As Database
Dim ThuocTinh As Property

Set db = OpenDatabase("D:-/thumuc\tenfile.mdb") ' ghi rõ ổ đĩa + thư mục + tên file mdb của bạn

db.Properties("AllowBypassKey") = True
Set db = Nothing

Exit Sub
ErrHandler:
MsgBox Err.Number
If Err.Number = 3270 Then ' Property not found.
Set ThuocTinh = db.CreateProperty("AllowBypassKey", dbBoolean, True)
db.Properties.Append ThuocTinh
Resume Next
Else
MsgBox Err.Description
End If
End Sub

lần sau có táy máy thì nhớ copy file gốc của mình lại nhé.
 
Ðề: Không cho mở Database

Cảm ơn anh.

Đó là cách khắc phục khi em mắc lỗi.

Giờ khi em đã có ý làm như thế để người khác không thể xem đượ code và xem mọi thứ bên trong bằng cách khoá lại như em nói ở phần đầu. Vậy có cách nào không cho người khác làm điều như anh hướng dẫn em không?

Xin anh cùng các anh khác cho lời tư vấn và nếu có ví dụ thì thật là tốt các anh ạ.
 
Ðề: Không cho mở Database

Cảm ơn anh.

Đó là cách khắc phục khi em mắc lỗi.

Giờ khi em đã có ý làm như thế để người khác không thể xem đượ code và xem mọi thứ bên trong bằng cách khoá lại như em nói ở phần đầu. Vậy có cách nào không cho người khác làm điều như anh hướng dẫn em không?

Xin anh cùng các anh khác cho lời tư vấn và nếu có ví dụ thì thật là tốt các anh ạ.

Làm như quochoi_05, mấy cái Lock, Unlock làm ở mdb riêng. Chạy cái Lock để khóa mdb chính. Khi nào cần mở lại thì chạy cái Unlock.

Không bao giờ chơi mấy cái procedure trong mdb chính cả.
 
Ðề: Không cho mở Database

Cảm ơn anh.

Đó là cách khắc phục khi em mắc lỗi.

Giờ khi em đã có ý làm như thế để người khác không thể xem đượ code và xem mọi thứ bên trong bằng cách khoá lại như em nói ở phần đầu. Vậy có cách nào không cho người khác làm điều như anh hướng dẫn em không?

Xin anh cùng các anh khác cho lời tư vấn và nếu có ví dụ thì thật là tốt các anh ạ.

Ngòai cách hướng dẫn như của quochoi_05 và cùa phatnq2002, có thể làm ngay trong database bằng cách đặt cac Lock và Unlock trong một form gọi là frmChiaKhoa và chỉ có người thiết kế mới biết cách mở form này mà thôi. Khi đó muốn Lock hay Unlock cái Database này là tùy bạn.
Thân
 
Ðề: Không cho mở Database

Cảm ơn các anh, các anh nhiệt tình quá
Nhưng hình như Access2003 không chuyển sang .MDE được thì phải, có phải thế không các anh?
 
Ðề: Không cho mở Database

Em hỏi thế thôi chứ em thử rồi, Access 2003 báo là phải Access 1997 cơ.

Thế anh Muontennguon có giải pháp gì chia sẻ cho thằng em với.
 
Ðề: Không cho mở Database

Em hỏi thế thôi chứ em thử rồi, Access 2003 báo là phải Access 1997 cơ.

Thế anh Muontennguon có giải pháp gì chia sẻ cho thằng em với.

Nghi ngờ khả năng Anh ngữ của Tienduyet quá!

Đang xài Access 2003 thì phải định dạng (convert) nó thành 2003 trước rồi mới biên dịch sang MDE bằng Access 2003 được.
 
Ðề: Không cho mở Database

Nghi ngờ khả năng Anh ngữ của Tienduyet quá!

Đang xài Access 2003 thì phải định dạng (convert) nó thành 2003 trước rồi mới biên dịch sang MDE bằng Access 2003 được.

Quả là như thế, khi em đi học cấp III trường em học Tiếng Pháp anh Muontennguoi ah. Lên ĐH em lọ mọ mãi mà thi lại TA quen cả thầy giáo cơ mà. Giờ thì cũng còn khá hơn anh ah.

Dẫu sao em cũng xin cảm ơn các anh đã chi sẻ.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top