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

access2010开发教程第4章第3节

时 间:2012-04-25 11:35:23
作 者:Access软件网编著   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:4.3 新增窗体的制作
正 文:

4.3 新增窗体的制作

由于我们需要进行精确的权限控制,因此,我们需要制作单独的新增窗体,而需要禁止掉数据显示窗体的数据新增功能,这样,才有利于用户权限的管理和保证数据的完整性。
禁止数据显示窗体的数据新增功能操作步骤如下:
切换到数据库窗口,之后打开 frmyg_child 窗体并切换到设计视图,打开窗体属性对话框,选择数据选项卡,之后将记录集类型由默认的动态集修改为快照,如下图所示:

关闭窗体属性,保存修改。此时,起先制作的数据显示窗体的数据新增、修改以及删除功能都已经被禁止掉。这些功能,我们将通过单独的工具栏按钮来实现,以便更好地实现权限的控制。
新增窗体制作的操作步骤如下:
关掉当前的窗体,在功能区上按以下的路径进行定位:创建→空白窗体,如下图所示:

单击后出现一个空白窗体的布局视图,如下图:

在窗体的空白处右击选择“设计视图”,如下图所示:

在窗体的设计视图的主体上面右击,在快捷菜单中选择“窗体页眉/页脚”,如下图所示:

这样窗体里就出现了窗体页眉和窗体页脚,如下图:

   现在我们来添加两个按钮,为了统一使用平台风格的按钮。我们在窗体列表里可以找到一些后缀名为“add”的窗体,选择一个进入设计视图,比如我们选择“usysfrmUser_child_Add”窗体,进入设计视图,可以看到里面有两个按钮,我们选中这两个按钮,然后复制,关闭“usysfrmUser_child_Add”窗体,再回到刚才我们创建的窗体,把刚才复制的两个按钮粘贴到窗体页眉中,适当调整位置,如下图所示:

窗体大致界面就设计完了,然后我们来添加控件,先让工具箱的“使用控件向导”按钮处于浮起的状态,如下图所示:

我们这里不需要使用向导,把它取消即可(即处于浮起的状态)。点击工具箱的 文本框控件,在设计界面适当的位置单击鼠标左键,即会新建一个文本框,如下图所示:

新建的文本框会默认携带一个标签控件,单击选中该控件,之后单击鼠标右键激活右键快捷菜单,如下图所示:

  如上图所示,选择“属性(P)”,则会弹出标签属性对话框,在标签属性对话框,选择“格式”选项卡,之后将标题属性由“Text1”修改为“员工姓名”,之后关闭标签属性对话框,保存修改。之后再次选择该标签单击鼠标右键,选择“大小(S)”里面的“正好容纳(F)”命令。之后选择文本框,同样单击鼠标右键选择“属性(P)”命令,如下图所示:

  在弹出的文本框属性对话框中,选择“其他”选项卡,修改“名称”属性为“ygxm”,这个名称是在后台代码中唯一标识该文本框的名称。
设置完成后调整窗体的窗体页眉页脚以及主体的高度,调整后的效果如下所示:

进入窗体属性,分别按照以下说明修改对应的属性:
格式选项页内属性修改为:
自动居中:是
边框样式:对话框边框
记录选择器:否
导航按钮:否
滚动条:两者都无
其他选项页内的属性修改为:
弹出方式:是
模式:是
按照上面修改完这些属性,新增窗体界面就基本设计完毕,进入窗体视图查看窗体效果如下图所示:

  这里我们发现窗体的标题为“窗体2”,我们可以再次进入窗体设计模式,打开窗体属性,在格式选项卡里面有个标题属性,我们设置为“员工信息新增”,这样就设置好了窗体的标题。
有一个问题请读者注意一下,从开始到现在做了很多修改,却从来没有保存,这样的话,如果应用程序发生故障,那么,所有的工作都将丢失,因此应该尽早保存,当然,这步操作可以尽早进行,并不是非要放在这一步进行。单击工具栏上的“保存”按钮,在弹出的另存为对话框中输入窗体名称“frmyg_child_Add”,之后单击“确定”按钮确认。这里需要说明一下新增窗体的命名规则,这是强制的,如果您违反了这个命名规则,那么您的新增功能一定有问题或者无法实现。新增窗体的命名规则:基本数据窗体的名称+“_Add”。由于此新增窗体是员工姓名数据窗体的新增窗体,而员工姓名数据窗体的命名是“frmyg_child”,因此,该新增的窗体的命名则必须是“frmyg_child_Add”。也就是说,当你的基础数据窗体的命名确定以后,新增窗体、修改窗体的命名则已经给定死了,绝对不能修改。而修改窗体的命名规则只是将“_Add”替换成“_Edit”而已。
    保存窗体之后,单击代码按钮进入代码设计,代码按钮在功能区的:设计→工具中的右上角,可以按以下步骤来定位,参考下图:

  上图工具中的红色框中就是“代码”按钮,单击该按钮可以进入窗体,报表等对象的代码设计窗口。这里以后要经常用到,请大家多多熟悉。
执行“代码(C)” 命令之后就可以打开代码设计窗体了,如下图所示:

这里,即进入了后台代码编写的界面,注意到当前的代码窗口是正是 frmyg_child_Add ,在该窗口中输入以下代码:


Private Sub cmd_Save()
Dim rst As DAO.Recordset
If IsNull(Me.ygxm) Then
MsgBox "请输入员工姓名!", vbCritical, "提示:"
Me.ygxm.SetFocus
Exit Sub
End If
Me.Refresh
If Acchelp_StrDataIsExist("tblCodeyg", "ygxm", Me.ygxm) = True Then
MsgBox "你输入的数据已经存在,请重新输入", vbCritical, "警告"
Me.ygxm.SetFocus
Exit Sub
End If
If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
Set rst = CurrentDb.OpenRecordset("tblCodeyg", dbOpenDynaset)
rst.AddNew
rst("ygId") = acchelp_autoid("Y", 2, "tblCodeyg", "ygId")
rst("ygxm") = Me.ygxm
rst.Update
rst.Close
Set rst = Nothing
'刷新数据
If IsLoaded("usysfrmMain") Then
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"
DoCmd.Echo True
End If
MsgBox "保存成功!", vbInformation, "提示"
Me.ygxm = Null
End If
End Sub


以上代码是一个保存数据的过程,我们打开确定按钮的属性,在属性里面的事件里找到单击事件,单击该事件后面的按钮,在下拉列表中选择事件过程,然后按后面的按钮进入确定按钮的代码编写窗口,在里面调用上面定义的保存数据的过程,调用结束后完整的代码如下:


Private Sub cmdOK_Click()
cmd_Save
End Sub


同理,对取消按钮编写代码如下:


Private Sub cmdCancel_Click()
DoCmd.Close acForm, Me.Name
End Sub


以上代码,如果您能看懂最好,如果您不能看懂,则将蓝色字符替换为你的场景对应的角色即可。所有的蓝色字符皆为个性化参数。这些名称要么是窗体名称、表名称、字段名称、控件名称或者提示文本,之前我们都已经见过了,因此,在这里就不多说了。如果初学者想了解这些代码的真实含义,可以去查阅 VBA 语言的相关教程。
确认修改无误后保存输入,并关闭代码页面。有一点请注意,虽然员工姓名参数表里有两个字段,但是我这里只添加了一个文本框对应于员工姓名字段,而并未曾添加另一个字段,这是因为另一个字段是系统编号的字段,其数据由数据添加时由代码自动生成的,不需要用户来干预,故可以不为其设置输入数据的文本框。这一点请注意。当然,你要想添加也不是不可以。不过,那种做法的处理比这种做法的处理要复杂的多,在这个场合,没有那个必要。在这个场合,负责自动生成序号是上面所书写代码中这样一行:
rst("ygId") = acchelp_autoid("Y",2, "tblCodeyg", "ygId")
稍后当正式的数据输入显示之后,大家可以对比一下,以便更好地了解这一行代码。
这样,我们就完成了新增窗体的制作,关闭当前的新增窗体(可以同样给窗体添加说明,比如,我们这里可以添加这样的字符说明:员工姓名_新增窗体),之后切换到控制面板界面,并将控制面板最大化显示。按以下路径定位:报销管理→员工姓名,点击员工姓名进入之后,发现工具栏上仍然只有隐藏和关闭两个按钮。这是因为导航按钮上并没有勾选该对象的新增复选框(功能)的原因。按以下路径定位:系统管理→功能按钮设置,进入功能按钮设置之后,再单击左边的基础资料导航窗格,如下图所示:

 如上图所示,由于我们这里是为员工姓名添加新增的功能,因此,选择员工姓名相对应的序号为 1 的记录,之后再单击工具栏上的修改按钮,则如下图所示:

 如上图所示:勾选新增复选框,之后单击确定按钮关闭当前的页面,再次进入员工姓名页面,发现还是没有新增按钮,如同上一节一样,这是因为还没有赋予访问权限的原因。在本系统中,如果不直接赋予访问权限,管理员也是没有任何对象的访问权限的。但是在这里的赋予权限,可以比上一小节所讲到赋予访问权限可以更为直接一些。
按以下路径定位:系统管理→部门和组权限,之后双击管理员,展开管理员,选中管理员组,之后在右侧窗格中选择按钮名称为员工姓名的条目,如下图所示:

之后再单击修改按钮,如下图所示:

如上图所示,读者比上一节权限设置区域已经新增加了一个新增复选框,这里的复选框的数目是与导航按钮那里的设置相对应的。勾选新增复选框,之后单击确定按钮保存修改。
这时,关闭当前界面,再次进入员工信息的数据界面,则会发现,工具栏上多了一个新增复选框。如下图所示:

在这里,我们可以尝试输入一下记录,比如输入:张三,之后单击保存按钮保存录入(如果不单击保存按钮,则不会将数据录入数据库,单击取消则是放弃新增数据),则会弹出确认对话框,确认输入,(不关闭的话,则可以继续输入),如下图所示:

如果你企图保存空数据的话,会有如下的错误提示:

如果你企图输入重复的记录的话,比如已经输入了张三,企图再次输入张三,则会如下图所示:

为什么这里一定要禁止重复值的录入呢?那是因为这里是选项列表,既然是选项列表,怎么会需要重复值呢?
请注意到表的字段设计,这里我根据需要,定义了该字段的长度为20,也就是说,最多只允许输入20个字符,如果超过了这个限制,则会如下图所示:

此时,单击 结束 (E) 按钮返回,修改输入的数据,重新保存即可。

 

 

相关索引: 上一节 下一节



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

常见问答:

技术分类:

相关资源:

专栏作家

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