健康分析同收支分析的功能与布局差不多,因此可以复制【frmMoneyCount】窗体,粘贴为【frmHealthCount】窗体,再对【frmHealthCount】窗体进行修改,具体设计的操作步骤如下。 步骤01:在导航窗格选中【frmMoneyCount】窗体,单击鼠标右键,在右键菜单中单击【复制(C)】,然后再单击鼠标右键,在右键菜单中单击【粘贴(P)】,把窗体命名为【frmHealthCount】,单击【确定】按钮,就通过复制粘贴创建了【frmHealthCount】窗体,如图5-82所示。 图5-82【frmHealthCount】窗体 步骤02:进入【frmHealthCount】窗体的设计视图,①选中子窗体控件【sfrList】,②双击显示【属性表】,③切换到属性表【数据】选项卡,④找到【源对象】,如图5-83所示。 图5-83修改【frmHealthCount】窗体(1) 步骤03:为避免与前面的收支分析混淆,将【源对象】设置为空,如图5-84所示。 图5-84修改【frmHealthCount】窗体(2) 步骤04:移动滚动条,①选中饼图,②注意控件名称是【graItemMoney】,点击键盘上的【Delete】键,删除饼图,原因是在健康数据分析时,将不分析百比分,如图5-85所示。 图5-85修改【frmHealthCount】窗体(3) 步骤05:①选中图表,②单击【其他】选项卡,③【名称】为:graHealth,如图5-86所示。 图5-86修改【frmHealthCount】窗体(4) 步骤06:①选中【MoneyItem】,②在属性表中的【其他】选项卡,③将【名称】修改为:txtPItem,如图5-87所示。 图5-87修改【frmHealthCount】窗体(5) 步骤07:①切换到属性表中的【数据】选项卡,②将【控件来源】修改为:PItem,如图5-88所示。 图5-88修改【frmHealthCount】窗体(6) 步骤08:①选中选项组控件,②在属性表中的【其他】选项卡,③将【名称】修改为:grpHealth,如图5-89所示。 图5-89修改【frmHealthCount】窗体(7) 保存一下窗体,避免一不小心关闭窗体后未保存就需要从头再次修改。 步骤09:①双击窗体设计视图左上角的小黑方块■,出现该窗体的属性,②在【事件】选项卡中,③找到【加载】事件,如图5-90所示。 图5-90修改【frmHealthCount】窗体(8) 单击[事件过程]右边的【…】按钮,进入VBA设计窗口,如图5-91所示。 图5-91修改【frmHealthCount】窗体(9) 步骤10:由于饼图已被删除,因此与饼图有关的代码应该全部删除,前面对窗体上的控件的名称进行了修改,因此凡是改名的控件,VBA中都需要修改控件名称,VBA修改后如图5-92所示。 图5-92修改【frmHealthCount】窗体(10) 步骤11:同理,在【重新计算】按钮的cmdOK_Click()事件,将文本框控件txtMoneyItem改为:txtPItem,如图5-93所示。 图5-93修改【frmHealthCount】窗体(11) 修改后如图5-94所示。 图5-94修改【frmHealthCount】窗体(12) 接下来看一下完整的【重新计算】按钮的单击事件代码,①注意模块是【frmHealthCount】,位置见上方红框,不要和frmMoneyCount模块弄混淆了,②下部的红框中的代码是设置根据年月来更改月初、月末、年初、年末日期,这些是【tblParameter】表中的值,用于查询中的条件,因此不需要改动,如图5-95所示。 图5-95修改【frmHealthCount】窗体(13) 步骤12:在重新计算之前,需要先清空临时表【tblHealth_Temp】,因此需要将SQL代码中的表名称由【tblMoney_Temp】修改为【tblHealth_Temp】,如图5-96所示。 图5-96修改【frmHealthCount】窗体(14) 修改SQL代码中表名后如图5-97所示。 图5-97修改【frmHealthCount】窗体(15) 步骤13:接下来是追加明细数据到【tblHealth_Temp】表中,①在5.4.3小节我们已经创建了一个追加查询【qryHealth_M】,可以进入这个查询的SQL视图,②从中复制SQL代码,如图5-98所示。 图5-98修改【frmHealthCount】窗体(16) 步骤14:把复好的SQL代码粘贴到VBA代码区,如图5-99所示。 图5-99修改【frmHealthCount】窗体(17) 步骤15:将图5-99中红框处的SQL代码,替换为刚才复制的SQL红色字体代码并作适当修改,修改后如图5-100所示。 图5-100修改【frmHealthCount】窗体(18) 步骤16:对年度健康数据明细可以直接修改一下月度SQL代码来实现: strSQL = "Insert INTO tblHealth_Temp ( HpName, YTime, YMoney, YScore ) " _ & "Select HpName, HTime, HMoney, HpScore " _ & "FROM qryHealthList_Y;" DoCmd.RunSQL strSQL '追加年度健康数据明细 添加追加年度健康数据的VBA后,删除后续无关的代码,如图5-101所示。 图5-101修改【frmHealthCount】窗体(19) 关闭VBA设计窗口,保存并关闭【frmHealthCount】窗体视计视图。 在导航窗格中双击【frmHealthCount】窗体,运行窗体后再单击【重新计算】按钮,符合条件的健康明细数据将追加至【tblHealth_Temp】表中,如图5-102所示。 图5-102追加数据至临时表 在导航窗格中双击表【tblHealth_Temp】,可以看到追加的明细记录,如图5-103所示。 图5-103【tblHealth_Temp】表数据