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

access2007开发教程第4章第3节

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

4.3 新增窗体的制作

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

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

单击后出现模式对话框窗体,如下图:

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

    为了和平台的风格统一起来,我们来设置一下窗体的背景样式,单击工具栏上排列,在左上角有个自动套用格式按钮,单击该按钮,会出现格式列表,我们选择有红色框标记的那个样式,如下图所示:

设置完成后,适当调整一下窗体的大小,如下图所示:

    窗体样式设置完后,我们来替换一下这里的两个按钮,统一使用平台风格的按钮。我们在窗体列表里可以找到一些后缀名为add的窗体,选择一个进入设计视图,比如我们选择usysfrmUser_child_Add窗体,进入设计视图,可以看到里面有两个按钮,我们选中这两个按钮,然后复制,关闭usysfrmUser_child_Add窗体,再回到刚才我们建立的窗体,删除确定和取消按钮,把刚才复制的两个按钮粘贴进来,适当调整位置,调整完后如下图所示:

    窗体大致界面就设计完了,然后我们来添加控件,先让工具箱的按钮处于浮起的状态,我们这里不需要使用向导,把它取消即可(即处于浮起的状态)。之后点击工具箱的(文本框)控件,之后再设计界面适当的位置,单击鼠标左键,即会新建一个文本框,如下图所示:

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

   如上图所示,选择属性(P) ,则会弹出标签属性对话框,在标签属性对话框,选择格式选项卡,之后将标题属性由 Text2: 修改为员工姓名,之后关闭标签属性对话框,保存修改。之后再次选择该标签单击鼠标右键,选择大小 (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群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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