Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Dec 2015
    Bài viết
    0

    Không cho mở Database

    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.......

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: 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é.

  3. #3
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: 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?

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Không cho mở Database




    Trích dẫn Gửi bởi tienduyet
    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?
    Sao không thử mà đi hỏi thế?

  5. #5
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: 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.

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Không cho mở Database




    Trích dẫn Gửi bởi tienduyet
    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.

  7. #7
    Ngày tham gia
    Nov 2015
    Bài viết
    1
    Ðề: Không cho mở Database




    Trích dẫn Gửi bởi muontennguoi
    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ẻ.

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Không cho mở Database

    Bác muontennguoi nói rất đúng. Khi cài office 2003 thì mặc định khi ta tạo một file .mdb mới nó sẽ format Access2000. Muốn chuyển sang .mde thì bạn phải convert sang file Access 2002-2003 (Tools/Database Utilities/Convert Database...)
    Một điền lưu ý nữa là khi chuyển sang file mde bạn phải đảm bảo code VBA của mình không còn lỗi nữa thì với chuyển được (Ở cửa sổ code bạn vào menu Debug/Compile... thấy không báo lỗi nữa là được).

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •