Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-教程

access2010开发教程第4章第5节

时 间:2012-04-25 12:32:13
作 者:Access软件网编著   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:4.5 修改窗体的制作
正 文:

4.5 修改窗体的制作
    前面我们已经提到,为了便于进行权限的管理,我们禁止掉了员工姓名的主数据界面的编辑功能,只通过特定的功能按钮来实现,前面我们已经完成了新增功能的制作,下一步就是修改功能的制作了。同理,修改功能也需要在单独的界面里完成,因此,我们需要先制作修改窗体.
修改窗体的建立步骤如下:
    如新增窗体的制作一样,先新建一个新的空白窗体,设置显示“窗体页眉/页脚”,之后添加文本框控件并重新命名该控件(文本框的标签显示更改为“员工姓名”,文本框的名称更改为“ygxm”,文本框控件来源属性更改为“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


同理,蓝色字符为个性化字符。完成之后如下图所示:

进行到这里,再进入修改窗体的属性,在数据选项卡中有个允许添加属性,设置为,这样修改窗体就已经做好了,关闭当前所有设计界面,之后如新增窗体一样,先添加导航按钮的修改属性,之后再给管理员组添加修改的权限。最后别忘记了给窗体属性添加说明文字,比如这里设置说明文字为:员工姓名 - 修改窗体
下面我们来试验一下修改效果,先使用新增功能,多添加几条记录,比如李三、王五,如下图所示:

选中本图中序号为 Y02 的李三,之后单击工具栏上的修改按钮(再强调一次,如果不进行导航按钮属性添加和权限赋予,这里是不会出现修改按钮的),则如下图所示:

将李三修改为李四,之后单击确定按钮,则如下图所示:

  如上图所示,这就是我们所要的修改的功能,符合我们的设计要求。但是还有一点瑕疵,那就是我们刚才单击的是序号为 Y02 的记录,但是当关闭掉修改窗体的时候,系统却自动定位到第序号为 Y01 的记录,这样做似乎不太好,如果记录太多的话,无法核实是否完成了所要的修改,下一节,我们就来实现这一功能,修改完毕之后,返回到起先选定的修改记录。


相关索引: 上一节 下一节



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助