Access开发平台--修改窗体输入密码才能有权限进行改数据,对字段进行权限控制修改的方法-麥田
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access开发平台


Access开发平台--修改窗体输入密码才能有权限进行改数据,对字段进行权限控制修改的方法

发表时间:2013/6/22 9:21:23 评论(0) 浏览(16263)  评论 | 加入收藏 | 复制
   
摘 要:Access开发平台--修改窗体输入密码才能有权限进行改数据,对字段进行权限控制修改的方法
正 文:

学员 广州--小莲(530920058)  10:41:10 问题
请问老师,我要修改窗体进行修改数据时,能用权限对要修改的控件进行控制,即出来个密码窗口,有权限才可以修改。
可以做到吗?


UMVsoft-7号褚老师(20099004)  10:44:11
在修改窗体上面加个复选框   输入密码方式才能进行编辑就可以了

做个制作顺序给你学习一下。



制作方法如下:(以Access开发平台 的报销管理系统教程里的报销明细修改为例)

第一:进入报销明细修改窗体的设计视图→将ygid文本框“可用”设为否→然后新建复选框控件→在复选框的更新后事件写代码

第二:输入以下整段代码↓:
 
Private Sub Check2_AfterUpdate()
    If check2 = 0 Then
        Me.ygId.Enabled = False
    Else
        Dim a As String
        lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1)
        a = InputBox("需要输入密码才能修改数据,请输入密码", "密码inputbox")
       
        '设置密码为123,您也可以在下一行自行设置密码------------------
        If a = "123" Then
            MsgBox "密码正确!可以修改此字段的数据", vbInformation, "提示:"
            Me.ygId.Enabled = False
        Else
            MsgBox "密码不正确!您不能修改此字段的数据!", vbInformation, "提示:"
            Exit Sub
        End If

        Me.ygId.Enabled = True
    End If

End Sub

第三:这一步的作用是让输入的密码显示为星号,新建任意一模块,输入整段代码如下:

'模块中:
  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", "密码inputbox")
      If hwd <> 0 Then
         hwd = FindWindowEx(hwd, 0, "edit", vbNullString)
         SendMessage hwd, EM_SETPASSWORDCHAR, 42, 0
         timeKillEvent lTimeID
      End If
  End Sub
 
第四:保存模块命名为:basInputbox  并运行修改窗体看一下效果.

注:大家在开发自己软件过程中,也可以加以应用的,只需将代码中文本框名称改为自己软件的文本框名称即可


Access软件网交流QQ群(群号:198465573)
 
 相关文章
修改窗体“数据输入”设为“是”,窗体不显示数据  【宏鹏  2012/5/22】
完美解决零件库存月结修改窗体中防止重复的问题  【fxs  2012/6/8】
UMV开发平台查询后,如果子窗体只返回一条记录,就自动打开修改窗体  【宏鹏  2013/2/6】
修改窗体注意点  【小英  2013/2/27】
[Access视频]UMV开发平台修改窗体的几点注意事项  【漏蛧尐魚℡  2013/4/5】
常见问答
技术分类
相关资源
文章搜索
关于作者

麥田

文章分类

文章存档

友情链接