access2007开发教程第4章第5节
时 间:2011-09-26 10:11:43
作 者:Access软件网编著 ID:8 城市:上海 QQ:2851379730
摘 要:4.5 修改窗体的制作
正 文:
4.5 修改窗体的制作
前面我们已经提到,为了便于进行权限的管理,我们禁止掉了员工姓名的主数据界面的编辑功能,只通过特定的功能按钮来实现,前面我们已经完成了新增功能的制作,下一步,就是修改功能的制作了。同理,修改功能也需要在单独的界面里完成,因此,我们需要先制作修改窗体,修改窗体的建立的操作步骤如下:
如新增窗体的制作一样,先新建一个新的空白模式对话框类型的窗体,之后添加文本框控件并重新命名该控件(文本框的标签显示更改为:员工姓名,文本框的名称属性——如新增窗体所示,更改为:ygxm),之后显示窗体页眉页脚,替换掉窗体里的默认确定取消按钮,并调整大小,再设置窗体背景格式,再对输入控件的稍微做下美化工作,然后保存当前的窗体设计,将窗体按之前提到命名规则,命名为: frmyg_child_Edit ,与新增窗体操作步骤一样的部分,在这里不再重复讲述,如果有什么不明白的地方可以参考4.3节里新增窗体的制作,调整好的窗体如下图所示:
进行到这里,关闭建立的修改窗体,然后单击工具栏上的创建按钮,再单击其他里面的宏下面的三角,选择模块,如下图,
单击模块新建一个模块如下图:
在该界面中输入以下代码(蓝色为变量名称,是个性化字符,可以自由定义,但是不能违反标识符命名规则):
’文本型变量
Public selectstr As String
之后单击工具栏上的保存按钮,输入任何的模块名称,比如我们这里输入 variable ,之后确认保存,关闭代码窗口,再在设计视图打开 frmyg_child ,之后单击员工序号文本框,在激活的右键快捷菜单中选择属性,如下图所示:
在打开的文本框属性对话框中选择事件选项卡,之后再单击获得焦点文本框,之后再单击之后出现的 按钮,如下图所示:
单击上图省略号图标之后,会如下图所示:
如上图所示,选择代码生成器,再单击确认按钮,则如下图所示:
在鼠标的光标处输入下列代码:
On Error GoTo Err_ygId_GotFocus:
selectstr = Me.ygId
Forms!usysfrmMain!labFind.Tag = 1
Forms!usysfrmMain!btnEdit.Tag = 999
Exit_ygId_GotFocus:
Exit Sub
Err_ygId_GotFocus:
Resume Exit_ygId_GotFocus
以上字符,蓝色给个性化字符,如果您看不懂以上的代码,则将其中的蓝色字符替换为你的场景中适当的字符即可。输入完毕之后如下图所示:
确认无误关闭代码窗口,保存修改,之后再打开该窗体的属性,即 frmyg_child 的窗体属性,选择事件选项卡,在成为当前文本框中输入以下内容: =selectrecord() 。如下图所示:
关闭窗体属性保存输入,关闭 frmyg_child 窗体并切换到 frmyg_child_Edit 窗体,之后再打开该窗体的窗体属性,选择事件选项卡,单击加载文本框,之后再单击该文本框之后出现的省略号图标按钮,之后选择代码生成器,单击确认按钮,如下图所示:
在鼠标光标处,输入以下代码:
Me.RecordSource = "SELECT * FROM tblCodeyg WHERE ygId = '" & selectstr & "'"
同样,蓝色字符为个性化字符,如果你看不懂,在您的环境中适当替换即可。
确认输入无误之后,关闭该代码窗口,之后再关闭窗体属性以保存修改。进行到这里,我们该进行一个必要的操作,给该设计窗体的文本框控件添加数据源。打开员工姓名的文本框属性,选择数据选项卡,控件来源对话框中输入:ygxm。请注意,这里的控件来源,一定要填表的实际字段名称匹配。如下图所示:
之后再进入代码设计窗口,如下图所示:
在鼠标光标处,输入以下代码:
Private Sub cmdCancel_Click()
Me.Undo
DoCmd.Close acForm, Me.Name
End Sub
Private Sub cmdOK_Click()
If IsNull(Me.ygxm) Then
MsgBox "请输入员工姓名!", vbCritical, "提示:"
Me.ygxm.SetFocus
Exit Sub
End If
Me.Refresh
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"
DoCmd.Echo True
'触发子窗体计时器事件
Forms!usysfrmMain!frmChild.Form.TimerInterval = 300
DoCmd.Close acForm, Me.Name
End Sub
Private Sub Form_Load()
Me.RecordSource = "SELECT * FROM tblCodeyg WHERE ygId = '" & selectstr & "'"
End Sub
同理,蓝色字符为个性化字符。完成之后如下图所示:
进行到这里,再进入修改窗体的属性,在数据选项卡中有个允许添加属性,设置为否,这样修改窗体就已经做好了,关闭当前所有设计界面,之后如新增窗体一样,先添加导航按钮的修改属性,之后再给管理员组添加修改的权限。最后别忘记了给窗体属性添加说明文字,比如这里的场合:员工姓名 - 修改窗体。
下面我们来试验一下修改效果,先使用新增功能,多添加几条记录,比如李三、王五,如下图所示:
选中本图中序号为 Y02 的李三,之后单击工具栏上的修改按钮(再强调一次,如果不进行导航按钮属性添加和权限赋予,这里是不会出现修改按钮的),则如下图所示:
将李三修改为李四,之后单击确定按钮,则如下图所示:
如上图所示,这就是我们所要的修改的功能,符合我们的设计要求。但是还有一点瑕疵,那就是我们刚才单击的是序号为 Y02 的记录,但是当关闭掉修改窗体的时候,系统却自动定位到第序号为 Y01 的记录,这样做似乎不太好,如果记录太多的话,无法核实是否完成了所要的修改,下一节,我们就来实现这一功能,修改完毕之后,返回到起先选定的修改记录。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)