Access开发平台--修改窗体输入密码才能有权限进行改数据,对字段进行权限控制修改的方法
时 间:2013-06-22 09:21:23
作 者:麥田 ID:11 城市:上海 QQ:3002789054
摘 要: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群 (群号:321554481) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- Inputbox输入密码打开查...(12.23)
- 【Access Dsum示例】...(12.16)
- Inputbox输入密码打开窗...(12.13)
- 【Access DCount示...(12.02)

学习心得
最新文章
- 用Access查询语句如何得到前3...(02.17)
- Access快速开发平台--导入导...(02.14)
- 按回车键后光标移动到下一条记录的V...(02.12)
- Access快速开发平台--要实现...(02.10)
- Access快速开发平台--让Pe...(02.08)
- 【Access Dsum示例】用D...(02.07)
- Access对子窗体的数据进行平均...(02.05)
- Access快速开发平台附件上传,...(01.18)
- 【IIF函数示例】用iif函数判断...(01.18)
- Access快速开发平台--如何获...(01.17)