Inputbox密码打开窗体/输入密码打开窗体-网行者
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-窗体/数据页


Inputbox密码打开窗体/输入密码打开窗体

发表时间:2012/11/17 22:18:53 评论(5) 浏览(18805)  评论 | 加入收藏 | 复制
   
摘 要:Inputbox密码打开窗体
正 文:

借用江羽的函数:

http://www.accessoft.com/article-show.asp?id=2743

Option Compare Database

Public Declare Function findwindow Lib "user32" Alias "FindWindowA" (ByVal lpclassname As String, ByVal lpwindowname As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Public Const EM_SETPASSWORDCHAR = &HCC
Public lTimeID As Long

'timeSetEvent的回调函数
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, ByVal dw1 As Long, ByVal dw2 As Long)
'捕捉inputbox
    hwd = findwindow("#32770", "密码输入")
    If hwd <> 0 Then
        hwd = FindWindowEx(hwd, 0, "edit", vbNullString)
        SendMessage hwd, EM_SETPASSWORDCHAR, 42, 0
        timeKillEvent lTimeID
    End If
End Sub


'我的自定义函数

Public Function passwordOpenForm(myFrm As String)
    Dim myInput As String
    Dim M_ad As Boolean

    lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1)
    myInput = InputBox("请输入管理密码:", "密码输入")

    If IsNull(myInput) or DCount("工号", "usysuser", "密码 = '" & myInput & "'") = 0 Then
        MsgBox "未输入密码或密码错误!", vbOKOnly + vbCritical, "系统提示"
        DoCmd.Close acForm, myFrm
    Else
        M_ad = DLookup("管理员", "usysuser", "密码 = '" & myInput & "'")
        If M_ad Then
            MsgBox "欢迎你,系统管理员!", vbOKOnly + vbInformation, "系统提示"
        Else
            MsgBox "您不是管理员!", vbOKOnly + vbCritical, "系统提示"
            DoCmd.Close acForm, myFrm
        End If
    End If
End Function


窗体加载事件中调用:

Private Sub Form_Load()
On Error GoTo Err_Form_Load

    passwordOpenForm ("frmSetPermissions")

Exit_Form_Load:
    Exit Sub
Err_Form_Load:
    MsgBox Err.Description
    Resume Exit_Form_Load
End Sub


附   件:

点击下载此附件

帐户号:000001,密码:000001


演   示:


Access软件网交流QQ群(群号:198465573)
 
 相关文章
实现INPUTBOX输入密码时星号显示  【江羽  2008/11/19】
【Access示例】通过按钮打开程序之前提示输入密码\加密表\对表...  【钱玉炜  2009/8/29】
[分享]Inputbox 加强版  【andymark  2009/10/26】
【access入门】另类字段加密,加密字段需输入密码才能显示隐藏列...  【麥田  2011/7/18】
常见问答
技术分类
相关资源
文章搜索
关于作者

网行者

文章分类

文章存档

友情链接