• 沒有找到結果。

Access 2003实验案例教程 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "Access 2003实验案例教程 - 万水书苑-出版资源网"

Copied!
124
0
0

加載中.... (立即查看全文)

全文

(1)实验四 客户管理系统. 一、实验目的    . 熟练掌握各种窗体的设计方法。 熟练掌握报表的设计方法。 掌握 VBA 编程方法。 掌握综合设计一个应用系统的全过程。. 二、实验内容    . 各种窗体的设计。 报表的设计。 VBA 代码。 设计客户管理系统。. 三、实验步骤 每个学生分配一台计算机,独立完成本次实验内容。以客户管理系统为例,详细介绍使 用 Access 开发一个小型数据库管理系统的全过程。 1.系统开发背景 客户信息管理系统是服务性单位不可缺少的部分,它的内容对于单位的决策者和管理者 来说都至关重要,客户管理系统应该能够为用户提供充足的信息和快捷的查询方式。但一直以 来人们都使用传统的人工的方式管理,这种管理方式存在着许多缺点,如效率低、保密性差, 另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。虽 然现在市场上有很多的管理软件,但是作为专业的客户管理的软件还是很少的,虽然有的单位 会自己开发一些基于电子表格的管理系统,但是效率很低,不便于使用,所以设计一套适合企 业使用的客户管理系统就显得尤为重要。 通过客户关系管理(CRM)可以将企业的客户关系集成到企业的服务组织、生产组织和 销售组织中来。通过这个 CRM 解决方案,企业可以管理关于现有客户、潜在客户、合作伙伴 或合同、通信、需求等信息,并为每一个客户,每一个代理商,每一个分销商和每一个供应商 开放一个门户,通过客户门户,客户可以访问客户权限内的信息,如订单状况、信用额度、企 业最新产品咨询、最新产品的报价等。通过分销商门户,分销商们可以被赋予权限,访问共有 客户信息。通过使用这套系统,企业可以大大提升客户管理的水平。 2.系统功能 在实际工作中,设计人员与用户不断地进行深入的交流,对收集到的数据进行分析、整 理,最后逐步地确定用户的最终实际需求,如图 4-1 所示。.

(2) 实验四 客户管理系统 系统登录. 73. 客户单位列表. 客户信息. 业务信息. 客户信息查询. 个人信息. 打印. 业务信息查询 个人信息查询. 图 4-1. 客户管理系统功能模块结果图. 整个系统主要功能模块分析如下。 (1)登录功能(“系统登录”窗体):允许注册用户输入用户名和口令,从而登录系统。 (2)显示客户单位列表( “客户单位列表”窗体) :以下拉列表框的形式显示客户单位列 表,允许用户通过选择客户单位来查看该单位的所有客户名单。 (3)显示客户的简单信息(“客户信息子窗体”窗体):该窗体以表格的形式显示所有客 户的简单信息记录,它不但显示客户单位列表的查询结果,而且当用户双击每条记录的时候就 会得到该用户的所有详细信息。 (4)显示某一个客户的详细信息(“客户信息”窗体):该窗体作为一个容器包含了两个 选项卡,分别显示客户的详细个人信息和业务信息。 (5)显示某一个客户的详细个人信息(“客户详细信息子窗体”窗体) :该窗体显示了某 一个客户的详细个人信息,并提供相应的数据查询和操作。 (6)显示某一个客户业务信息(“客户业务子窗体”窗体):该窗体显示了某一个客户的 详细业务信息,并提供相应的数据操作和查询。 (7)根据客户简单信息查询(“简单信息查询”窗体):根据用户选择的简单信息查询条 件进行查询,并能打印查询结果。 (8)根据客户详细信息查询(“详细信息查询”窗体):根据客户选择的详细信息查询条 件进行查询,并能打印查询结果。 (9)根据客户业务信息查询(“业务信息查询”窗体):根据用户选择的业务信息查询条 件进行查询,并能打印查询结果。 3.数据库的设计 根据系统需要完成的具体功能及对系统的分析,系统数据库需要建立以下 5 个表,用来 记录相应的系统用户和客户的资料。 1)“系统用户”表用户名、密码。 2)“往来单位”表:单位 ID、单位名称。 3)“客户信息”:姓名、编号、性别、所属单位。 4)“客户详细信息”表:姓名、编号、性别、所属单位、职务、联系电话、行动电话、.

(3) Access 2003 实验案例教程. 74. 电子邮件和备注等。 5)“客户业务”表:姓名、编号、商品种类、订单号、订单金额、定购日期、到货日期 和商品图像。 根据以上要求在 Access 中建立各数据表结构及表中数据。 (1)首先需要建立存储所有用户信息的“系统用户”数据表,如表 4-1 与表 4-2 所示。 表 4-1 “系统用户”表的结构 字段名. 数据类型. 说明. 用户名(主键). 文本. 用户的真实姓名. 密码. 文本. 用户密码. 表 4-2 “系统用户”表中数据 用户名. 密码. admin. admin. (2)同时为了方便得到往来单位的信息,需要建立“往来单位”数据表,如表 4-3 与表 4-4 所示。 表 4-3 “往来单位”表的结构 字段名. 数据类型. 说明. ID(主键). 自动编号. 单位 ID. 所属单位. 文本. 单位名称. 表 4-4 “往来单位”表中数据 ID. 所属单位. 1. 总厂财务部. 2. 总厂三区. 3. 总厂设备部. 4. 总厂生产部. (3)为了方便得到客户信息,需要建立“客户信息”表,如表 4-5 与表 4-6 所示。 表 4-5 “客户信息”表的结构 字段名. 数据类型. 说明. 姓名. 文本. 客户姓名. 客户编号(主键). 文本. 客户编号. 性别. 文本. 客户性别. 所属单位. 文本. 客户所属单位.

(4) 实验四 客户管理系统. 75. 表 4-6 “客户信息”表中数据 姓名. 客户编号. 性别. 所属单位. 曹月林. D01991030007. 男. 总厂设备部. 孙官宝. D01991030601. 男. 总厂生产部. 孙卫国. D01991040003. 男. 总厂生产部. 钱建国. D01991040004. 男. 总厂生产部. 韦连才. D01991070008. 男. 总厂设备部. 施勤妹. D01991090414. 女. 总厂生产部. 孙国妖. D01991110025. 男. 总厂生产部. ……. ……. ……. ……. (4)为了方便得到客户详细信息,需要建立“客户详细信息”表,如表 4-7 与表 4-8 所示。 表 4-7 “客户详细信息”表的结构 字段名. 数据类型. 说明. 姓名. 文本. 客户姓名. 客户编号(主键). 文本. 客户编号. 所属单位. 文本. 客户所属单位. 职务. 文本. 客户职务. 性别. 文本. 客户性别. 出生日期. 日期/时间. 客户出生年月. 籍贯. 文本. 客户籍贯. 文化程度. 文本. 客户文化程度. 曾用名. 文本. 客户曾用名. 民族. 文本. 客户民族. 婚姻状况. 文本. 客户婚姻状况. 身高. 数字. 客户身高(整型). 体重. 数字. 客户体重(整型). 身份证号码. 文本. 客户身份证号码. 联系电话. 文本. 客户联系电话. 行动电话. 文本. 客户行动电话. 电子邮件. 文本. 客户电子邮件. 备注. 文本.

(5) Access 2003 实验案例教程. 76. 表 4-8 “客户详细信息”表中数据 客户 编号. 姓名. 所属 单位. 出生 职务 性别 日期. 联 曾 文化 民 婚姻 系 籍贯 用 身高 体重 身份证号 程度 族 状况 电 名 话. 曹月 D01991 总厂 设 副 经 男 林 030007 备部 理. 1955-4- 江苏 初中 吴江 29. 汉 已婚 175 65 族. 32052555 0429711. 孙官 D01991 总厂 生 车间 男 宝 030601 产部 主任. 1963-7- 江苏 高中 吴江 1. 汉 已婚 175 65 族. 32052563 0701711. 孙卫 D01991 总厂 生 副总 男 国 040003 产部 助理. 1970-2- 江苏 大专 吴江 6. 汉 已婚 175 65 族. 32052570 0206715. 钱建 D01991 总厂 生 经理 男 国 040004 产部. 1969-1 江苏 大专 吴江 1-10. 汉 已婚 175 65 族. 32052569 1110711. 韦连 D01991 总厂 设 副经 男 才 070008 备部 理. 1955-2- 江苏 初中 吴江 9. 汉 已婚 175 65 族. 32052555 0209711. …… ……. ……. …… …… ……. …… ……. 行 动 电 话. 电 子 备 邮 注 件. …… …… …… ……. (5)为了方便得到客户业务信息,需要建立“客户业务”表,如表 4-9 与表 4-10 所示。 表 4-9 “客户业务”表的结构 字段名. 数据类型. 说明. 客户姓名. 文本. 客户姓名. 客户编号. 文本. 客户编号. 商品种类. 文本货币. 商品种类. 订单号(主键). 自动编号. 订单号(索引). 订单金额. 货币. 商品订单金额. 订购日期. 日期/时间. 商品订购日期. 到货日期. 日期/时间. 商品到货日期. 商品图像. OLE 对象. 商品图像(bmp 图像). 表 4-10 “客户业务”表中数据 客户姓名. 客户编号. 商品种类. 订单号. 订单金额. 订购日期. 到货日期. 曹月林. D01991030007. 电脑. 1. ¥6000.00. 2001-1-2. 2002-1-2. 陈劲. D01997030005. 电脑. 2. ¥6000.00. 2001-1-2. 2002-1-2. 崔卫江. D01993020473. 电脑. 3. ¥6000.00. 2001-1-2. 2002-1-2. 高再荣. D01992050039. 电脑. 4. ¥6000.00. 2001-1-2. 2002-1-2. 顾卫权. D01995080049. 电脑. 5. ¥6000.00. 2001-1-2. 2002-1-2. 金美芹. D01992110017. 电脑. 6. ¥6000.00. 2001-1-2. 2002-1-2. 李惠芬. D02001031015. 电脑. 7. ¥6000.00. 2001-1-2. 2002-1-2. 李勤玉. D01992010415. 电脑. 8. ¥6000.00. 2001-1-2. 2002-1-2. 倪明强. D01993040263. 手机. 9. ¥6000.00. 2001-1-2. 2002-1-2. 商品图像.

(6) 实验四 客户管理系统. 77. 具体操作过程如下。 1)在 E 盘根目录下建立“客户管理系统”文件夹,在此文件夹下建立“客户管理系统.mdb”。 2)在“客户管理系统”数据库中按上述要求建立“系统用户”、 “客户信息”、“客户详细 信息”、“客户业务”和“往来单位”5 个表。 3)定义表之间的关系。 在 Access 数据库中,不同表中的数据之间都存在一种关系,将数据库里所有表中的数据 记录都和数据库中唯一的主题联系起来,使得对每个数据的操作都成为对数据库的整体操作。 首先单击“工具”→“关系”命令,弹出“关系”对话框,其上还有一个“显示表”对 话框,如图 4-2 所示。通过“显示表”对话框可以把需要建立关系的“表”或“查询”加到“关 系”对话框中。. 图 4-2. “显示表”对话框. 将“客户信息”、“客户详细信息”、“客户业务”、 “往来单位”4 个表都选中,单击“添加 (A)”按钮,把它们都添加到“关系”对话框中,如图 4-3 所示。. 图 4-3. ① 建立一对一关系。. 客户管理系统中表之间的关系设计步骤 1.

(7) Access 2003 实验案例教程. 78. 在“客户信息”表的“所属单位”字段和“往来单位”表的“所属单位”字段之间建立 一对一关系。 方法:选中“客户信息”表的“所属单位”字段,然后将其拖拽到“往来单位”表的“所 属单位”字段上,这时弹出如图 4-4 所示的“编辑关系”对话框,单击“创建(C)”按钮即可。. 图 4-4. 客户管理系统中表之间的关系设计步骤 2. 在“客户信息”表的“客户编号”字段和“客户详细信息”表的“客户编号”字段间建 立一对一的关系。 方法:选中“客户信息”表的“客户编号”字段,然后将其拖拽到“客户详细信息”表 的“客户编号”字段上,这时弹出如图 4-5 所示的“编辑关系”对话框。. 图 4-5. 客户管理系统中表之间的关系设计步骤 3. 选择“实施参照完整性(E)”复选框,再选中“级联更新相关字段(U)”和“级联删除相关 记录(D)”两个复选框。如图 4-6 所示。单击“创建”按钮即可。. 图 4-6. 客户管理系统中表之间的关系设计步骤 4.

(8) 实验四 客户管理系统. 79. ② 建立一对多关系。 在“客户信息”表的“客户编号”字段和“客户业务”表的“客户编号”字段间建立一 对多的关系。 方法:选中“客户信息”表的“客户编号”字段,然后将其拖拽到“客户业务”表的“客 户编号”字段上,这时弹出“编辑关系”对话框。选中“实施参照完整性(E)”复选框,再选 中“级联更新相关字段(U)”和“级联删除相关记录(D)”,如图 4-7 所示。. 图 4-7. 客户管理系统中表之间的关系设计步骤 5. 在“客户详细信息”表的“客户编号”字段和“客户业务”表的“客户编号”字段间建 立一对多的关系。 方法:选中“客户详细信息”表的“客户编号”字段,然后将其拖拽到“客户业务”表 的“客户编号”字段上,这时弹出“编辑关系”对话框。选中“实施参照完整性(E)”复选框, 再选中“级联更新相关字段(U)”和“级联删除相关记录(D)”复选框。如图 4-8 所示。. 图 4-8. 客户管理系统中表之间的关系设计步骤 6. 最终关系结果如图 4-9 所示。 4.“系统登录”窗体的设计 “系统登录”窗体的运行视图如图 4-10 所示。用户在“用户名”右侧的文本框中输入用 户名,在“密码”右侧的文本框中输入密码,如果密码正确,则打开“客户单位列表”窗体, 如果密码不正确,则弹出“密码错误!”的信息提示,如图 4-11 所示。单击“取消”按钮,则 关闭该窗体。 “系统登录”窗体及窗体中各控件的属性要求如表 4-11 所示,窗体的设计视图如图 4-12 所示。.

(9) Access 2003 实验案例教程. 80. 图 4-9. 图 4-10. 客户管理系统中表之间的关系. “系统登录”窗体的运行视图. 图 4-11. “密码错误!”的信息提示. 表 4-11 “系统登录”窗体中各控件的名称及属性 控件类型. 控件名称. 窗体. 标签. 文本框. 按钮. 控件属性. 属性值. 记录源. 系统用户. 标题. 系统用户. 滚动条. 两者均无. 记录选定器. 否. 导航按钮. 否. 边框样式. 对话框边框. 最大化、最小化按钮. 两者都有. 分隔线. 否. 自动调整. 否. 自动居中. 是. 标签 0. 标题. 用户名. 标签 5. 标题. 密码. 用户名. 标题. 密码. 输入掩码. 密码. 登录. 标题. 登录. 取消. 标题. 取消.

(10) 实验四 客户管理系统. 图 4-12. 81. “系统登录”窗体的设计视图. (1)在设计视图中创建一个新的窗体,单击“格式”→“自动套用格式(F)…”命令,在 弹出的“自动套用格式”对话框中选择“混合”项(设置窗体的背景为“混合”样式,其他窗 体背景也如此设置)。 (2)使用向导添加两个文本框。 (3)手动设计一个“取消”按钮,在事件生成器中手动加入如下代码。 Private Sub 取消_Click() DoCmd.Close End Sub. (4)手动设计一个“登录”按钮,在事件生成器中手动加入如下代码。 Private Sub 登录_Click() '如果用户名不为空 If IsNull(用户名) = False Then '根据输入的用户名查找相应的密码,看它和数据表中的密码记录是否一致 If DLookup("[密码]", "系统用户", "[用户名]= """ & 用户名 & """") = 密码 Then '如果一致,就关闭当前窗体,并打开客户单位列表窗体 DoCmd.Close DoCmd.OpenForm "客户单位列表" Else '如果不一致,就将密码框清空 密码 = "" '设置密码框的焦点 密码.SetFocus '弹出消息框报错 MsgBox "密码错误!", vbCritical End If End If End Sub. (5)由于我们想在打开该数据库时直接进入系统,所以应将“系统登录”窗体设置为启 动窗体。方法是:单击“工具”→“启动”命令,在弹出的“启动”对话框中进行设置,如图 4-13 所示。 (6)保存窗体,窗体名为“系统登录” 。 5.设计“客户信息子窗体”窗体 客户信息子窗体窗体的功能是以表格的形式显示所有客户的简单信息记录,它显示客户.

(11) Access 2003 实验案例教程. 82. 单位列表的查询结果。运行视图如图 4-14 所示。. 图 4-13. 图 4-14. “启动”对话框. “客户信息子窗体”窗体运行视图. 当用户双击每条记录的时候就会得到该用户的详细信息,如图 4-15 所示。. 图 4-15. “客户信息”窗体运行视图. (1)“客户信息子窗体”窗体的具体设计过程如下。 在数据库窗口中选择“窗体”对象,单击“新建”按钮,弹出“新建窗体”对话框。在 列表框中选择“窗体向导”选项,在“请选择该对象数据的来源表或查询: ”下拉列表框中选 择“客户信息”项,如图 4-16 所示。 单击“确定”按钮,弹出“窗体向导”对话框,如图 4-17 所示。.

(12) 实验四 客户管理系统. 图 4-16. “客户信息子窗体”设计步骤 1. 图 4-17. “客户信息子窗体”设计步骤 2. 83. 将左侧“可用字段(A):”列表框中的字段全部移至右侧“选定的字段(S):”列表框中,单 击“下一步”按钮。在弹出的对话框中选择“数据表(D)”单选项,如图 4-18 所示。. 图 4-18. “客户信息子窗体”设计步骤 3. 单击“下一步”按钮。在弹出的对话框中选择一种窗体样式,如图 4-19 所示。.

(13) Access 2003 实验案例教程. 84. 图 4-19. “客户信息子窗体”设计步骤 4. 单击“下一步”按钮。在弹出的对话框中输入窗体的标题“客户信息子窗体” ,再选择“修 改窗体设计(M)”单选项,如图 4-20 所示。. 图 4-20. “客户信息子窗体”设计步骤 5. 单击“完成”按钮,弹出窗体设计视图,如图 4-21 所示。调整各控件的位置,各控件名 称及属性如表 4-12 所示。窗体的“内含模块”属性为“是”。. 图 4-21. “客户信息子窗体”设计视图.

(14) 实验四 客户管理系统. 85. 表 4-12 “客户信息子窗体”中各控件的名称及属性 控件类型. 控件名称. 窗体. 标签. 文本框. 控件属性. 属性值. 标题. 客户信息查询结果子窗体. 滚动条. 两者都有. 记录选定器. 否. 导航按钮. 否. 分隔线. 否. 自动调整. 否. 自动居中. 否. 边框样式. 可调边框. 浏览按钮. 否. 控制框. 是. 最大化、最小化按钮. 两者都有. 记录源. 客户信息. 姓名_标签. 标题. 姓名. 客户编号_标签. 标题. 客户编号. 性别_标签. 标题. 性别. 所属单位_标签. 标题. 所属单位. 姓名. 标题. 姓名. 数据来源. 姓名. 标题. 客户编号. 数据来源. 客户编号. 标题. 性别. 数据来源. 性别. 标题. 所属单位. 数据来源. 所属单位. 客户编号. 性别. 所属单位. (2)处理“客户信息子窗体”的数据记录双击事件。 当用户双击每条记录的时候就会打开“客户信息”窗体,从而能够得到该用户的所有详 细信息。可以先创建一个空白的“客户信息”窗体,等到后面设计好“客户信息”窗体后,再 替换掉这个空白的“客户信息”窗体。 打开“客户信息子窗体”窗体,选中“客户编号”文本框,打开代码编辑器,输入下面 的代码。 Private Sub 客户编号_DblClick(Cancel As Integer) '定义查询变量 Dim r1, r2 As QueryDef '设置 r1 为"客户详细信息查询"的一个实例 Set r1 = CurrentDb.QueryDefs("客户详细信息查询").

(15) 86. Access 2003 实验案例教程 '设置 r1 的查询 SQL 语句 r1.sql = "select * from 客户详细信息 where 客户编号=""" + 客户编号 + """" '打开“客户信息”窗体 DoCmd.OpenForm "客户信息" '设置客户详细信息子窗体的数据源为 r1 Set Form_客户详细信息子窗体.Form.Recordset = r1.OpenRecordset '设置 r2 为"客户业务查询"的一个实例 Set r2 = CurrentDb.QueryDefs("客户业务查询") '设置 r2 的查询 SQL 语句 r2.sql = "select * from 客户业务 where 客户编号=""" + 客户编号 + """" '设置客户业务子窗体的数据源为 r2 Set Form_客户业务子窗体.Form.Recordset = r2.OpenRecordset End Sub. 选中“所属单位”文本框,打开代码编辑器,输入下面的代码。 Private Sub 所属单位_DblClick(Cancel As Integer) '定义查询变量 Dim r1, r2 As QueryDef '设置 r1 为"客户详细信息查询"的一个实例 Set r1 = CurrentDb.QueryDefs("客户详细信息查询") '设置 r1 的查询 SQL 语句 r1.sql = "select * from 客户详细信息 where 客户编号=""" + 客户编号 + """" '打开“客户信息”窗体 DoCmd.OpenForm "客户信息" '设置客户详细信息子窗体的数据源为 r1 Set Form_客户详细信息子窗体.Form.Recordset = r1.OpenRecordset '设置 r2 为"客户业务查询"的一个实例 Set r2 = CurrentDb.QueryDefs("客户业务查询") '设置 r2 的查询 SQL 语句 r2.sql = "select * from 客户业务 where 客户编号=""" + 客户编号 + """" '设置客户业务子窗体的数据源为 r2 Set Form_客户业务子窗体.Form.Recordset = r2.OpenRecordset End Sub. 选中“姓名”文本框,打开代码编辑器,输入下面的代码。 Private Sub 姓名_DblClick(Cancel As Integer) '定义查询变量 Dim r1, r2 As QueryDef '设置 r1 为"客户详细信息查询"的一个实例 Set r1 = CurrentDb.QueryDefs("客户详细信息查询") '设置 r1 的查询 SQL 语句 r1.sql = "select * from 客户详细信息 where 客户编号=""" + 客户编号 + """" '打开“客户信息”窗体 DoCmd.OpenForm "客户信息" '设置客户详细信息子窗体的数据源为 r1 Set Form_客户详细信息子窗体.Form.Recordset = r1.OpenRecordset '设置 r2 为"客户业务查询"的一个实例 Set r2 = CurrentDb.QueryDefs("客户业务查询").

(16) 实验四 客户管理系统. 87. '设置 r2 的查询 SQL 语句 r2.sql = "select * from 客户业务 where 客户编号=""" + 客户编号 + """" '设置客户业务子窗体的数据源为 r2 Set Form_客户业务子窗体.Form.Recordset = r2.OpenRecordset End Sub. 选中“性别”文本框,打开代码编辑器,输入下面的代码。 Private Sub 性别_DblClick(Cancel As Integer) '定义查询变量 Dim r1, r2 As QueryDef '设置 r1 为"客户详细信息查询"的一个实例 Set r1 = CurrentDb.QueryDefs("客户详细信息查询") '设置 r1 的查询 SQL 语句 r1.sql = "select * from 客户详细信息 where 客户编号=""" + 客户编号 + """" '打开“客户信息”窗体 DoCmd.OpenForm "客户信息" '设置客户详细信息子窗体的数据源为 r1 Set Form_客户详细信息子窗体.Form.Recordset = r1.OpenRecordset '设置 r2 为"客户业务查询"的一个实例 Set r2 = CurrentDb.QueryDefs("客户业务查询") '设置 r2 的查询 SQL 语句 r2.sql = "select * from 客户业务 where 客户编号=""" + 客户编号 + """" '设置客户业务子窗体的数据源为 r2 Set Form_客户业务子窗体.Form.Recordset = r2.OpenRecordset End Sub. (3)建立“客户详细信息查询”查询。 由于上面的代码中需要“客户详细信息查询”查询,所以现在建立一个查询,命名为“客 户详细信息查询”,用来实现 QueryDef 的对象实例化,设计方法如下。 在数据库窗口中选择“查询”对象,单击“新建”按钮,选择“简单查询向导”选项, 如图 4-22 所示。. 图 4-22. “客户详细信息查询”查询设计步骤 1. 单击“确定”按钮,弹出“简单查询向导”对话框。在“表/查询(T)”下拉列表框中选择 “表:客户详细信息”项,将左侧的“可用字段(A):”列表框中的字段全部移到右侧的“选定 的字段(S):”列表框中,如图 4-23 所示。 单击“下一步”按钮,弹出如图 4-24 所示的对话框。 单击“下一步”按钮,在弹出的对话框中指定查询标题为“客户详细信息查询” ,选择“修.

(17) Access 2003 实验案例教程. 88. 改查询设计(M)”单选项,如图 4-25 所示。. 箱. 图 4-23. “客户详细信息查询”查询设计步骤 2. 图 4-24. “客户详细信息查询”查询设计步骤 3. 图 4-25. “客户详细信息查询”查询设计步骤 4.

(18) 实验四 客户管理系统. 89. 单击“完成”按钮,完成查询的设计。设计结果如图 4-26 所示。. 图 4-26. “客户详细信息查询”查询设计视图. 单击“视图”→“SQL 视图”命令,可以看到对应的 SELECT 语句,如图 4-27 所示。. 图 4-27. “客户详细信息查询”查询的 SQL 视图. (4)建立“客户业务查询”查询。 由于上面的代码中需要用到“客户业务查询”查询,所以现在建立一个查询,命名为“客 户业务查询” ,用来实现 QueryDef 的对象实例化,设计方法如下。 在数据库窗口中选择“查询”对象,单击“新建”按钮,选择“简单查询向导”选项, 如图 4-28 所示。. 图 4-28. “客户业务查询”查询设计步骤 1. 单击“确定”按钮,弹出“简单查询向导”对话框。在“表/查询(T)”下拉列表框中选择 “表:客户业务”项,将左侧的“可用字段(A):”列表框中的字段全部移到右侧的“选定的字 段(S):”列表框中,如图 4-29 所示。 单击“下一步”按钮,弹出如图 4-30 所示的对话框。.

(19) Access 2003 实验案例教程. 90. 图 4-29. “客户业务查询”查询设计步骤 2. 图 4-30. “客户业务查询”查询设计步骤 3. 单击“下一步”按钮,在弹出的对话框中指定查询标题为“客户业务查询”,选择“修改 查询设计(M)”单选项,如图 4-31 所示。. 图 4-31. “客户业务查询”查询设计步骤 4.

(20) 实验四 客户管理系统. 91. 单击“完成”按钮,完成查询的设计。设计结果如图 4-32 所示。. 图 4-32. “客户业务查询”查询设计视图. 单击“视图”→“SQL 视图”命令,可以看到对应的 SELECT 语句,如图 4-33 所示。. 图 4-33. “客户业务查询”查询设计的 SQL 视图. 6.设计“客户单位列表”窗体 “客户单位列表”窗体的功能是以下拉列表框的形式显示客户单位列表,允许用户通过 选择客户单位来查看该单位的所有客户单位名单,如图 4-34 所示。窗体中各控件属性如表 4-13 所示。. 图 4-34. “客户单位列表”窗体运行视图.

(21) Access 2003 实验案例教程. 92. 表 4-13 “客户单位列表”窗体中各控件的名称及属性 控件类型. 控件名称. 控件属性 滚动条. 两者均无. 记录选定器. 否. 导航按钮. 否. 分隔线. 否. 自动调整. 否. 自动居中. 是. 边框样式. 对话框边框. 控制框. 是. 最大化、最小化按钮. 两者都有. 标题. 客户单位名称:. 行来源类型. 表/查询. 行来源. SELECT 往来单位.所属单位 FROM 往 来单位;. 更新前. 事件过程. 更新后. 事件过程. 查询. 标题. 查询. 打印. 标题. 打印. 客户信息子窗体. 源对象. 客户信息子窗体. 窗体. 标签. 组合框. 按钮 子窗体. 属性值. 客户单位名称:_标签. comCom. (1)设计窗体。 在数据库窗口中选择“窗体”对象,单击“新建”按钮,选择“设计视图”选项,如图 4-35 所示。. 图 4-35. “客户单位列表”窗体设计步骤 1. 单击“确定”按钮,弹出窗体设计视图,如图 4-36 所示。 (2)在窗体上方加入一个框架,删除标题。 (3)添加“客户单位名称:”组合框。.

(22) 实验四 客户管理系统. 图 4-36. 93. “客户单位列表”窗体设计步骤 2. 单击工具箱中的“组合框”按钮,在窗体中适当的位置拖动,松开鼠标后弹出“组合框 向导”对话框,如图 4-37 所示。. 图 4-37. “客户单位列表”窗体中的组合框设计步骤 1. 单击“下一步”按钮,在弹出的对话框中选择“表:往来单位”项,如图 4-38 所示。. 图 4-38. “客户单位列表”窗体中的组合框设计步骤 2. 单击“下一步”按钮,在弹出的对话框中将左侧“可用字段:”列表框中的“所属单位” 字段移到右侧的“选定字段:”列表框中,如图 4-39 所示。 单击“下一步”按钮,弹出如图 4-40 所示的对话框。.

(23) Access 2003 实验案例教程. 94. 图 4-39. “客户单位列表”窗体中的组合框设计步骤 3. 图 4-40. “客户单位列表”窗体中的组合框设计步骤 4. 单击“下一步”按钮,弹出如图 4-41 所示的对话框。. 图 4-41. “客户单位列表”窗体中的组合框设计步骤 5.

(24) 实验四 客户管理系统. 95. 单击“下一步”按钮,弹出如图 4-42 所示的对话框。. 图 4-42. “客户单位列表”窗体中的组合框设计步骤 6. 单击“完成”按钮,完成“客户单位名称:”组合框的设计。 (4)加入“客户信息子窗体”子窗体。 单击工具箱中的“子窗体/子报表”按钮,在窗体中适当的位置拖动,松开鼠标后弹出“子 窗体向导”对话框,如图 4-43 所示。. 图 4-43. “客户单位列表”窗体中的子窗体设计步骤 1. 选择“客户信息子窗体”项,单击“下一步”按钮,弹出如图 4-44 所示的对话框。 单击“完成”按钮,完成“客户信息子窗体”子窗体的设计。 (5)为 comCom 组合框的 AfterUpdate 事件编写事件处理函数。 为 comCom 组合框的 AfterUpdate 事件编写事件处理函数,实现当用户在组合框中选中某 单位后,就能在下面的子窗体中查看所有该单位的客户信息。 右击组合框,在弹出的菜单中选择“事件生成器(B)…”命令,在弹出的属性对话框中选 择 comCom 组合框,然后选择 AfterUpdate(更新后)事件。在 VBA 代码编辑器中输入代码,.

(25) Access 2003 实验案例教程. 96. 如图 4-45 所示。. 图 4-44. “客户单位列表”窗体中的子窗体设计步骤 2. 图 4-45. comCom 组合框的 AfterUpdate 事件处理函数. 1)加入 Microsoft DAO 的连接库。 由于在上面的代码中需要用到 QueryDef 类型的对象,所以必须加入 Microsoft DAO 的连 接库,加入方法:在 VBA 编辑器的菜单中选择“工具”→“引用”命令,在弹出的对话框中 选择“Microsoft DAO 3.6 Object Library”,即可加入 Microsoft DAO 的连接库。 2)建立“客户信息查询”查询 由于在上面的代码中需要用于“客户信息查询”查询,所以现在建立一个查询,命名为 “客户信息查询”,用来实现 QueryDef 的对象实例化,设计方法如下。 在数据库窗口中选择“查询”对象,单击“新建”按钮,选择“简单查询向导”选项, 如图 4-46 所示。 单击“确定”按钮,弹出“简单查询向导”对话框。在“表/查询(T)”下拉列表框中选择 “表:客户信息”项,将左侧的“可用字段(A):”列表框中的字段全部移到右侧的“选定的字 段(S):”,如图 4-47 所示。.

(26) 实验四 客户管理系统. 图 4-46. “客户信息查询”查询设计步骤 1. 图 4-47. “客户信息查询”查询设计步骤 2. 97. 单击“下一步”按钮,在弹出的对话框中指定查询标题为“客户信息查询”,选择“修改 查询设计(M)”单选项,如图 4-48 所示。. 图 4-48. “客户信息查询”查询设计步骤 3. 单击“完成”按钮,完成查询的设计。设计结果如图 4-49 所示。.

(27) Access 2003 实验案例教程. 98. 图 4-49. “客户信息查询”查询设计视图. 单击“视图”→“SQL 视图”命令,可以看到对应的 SELECT 语句,如图 4-50 所示。. 图 4-50. “客户信息查询”查询设计的 SQL 视图. (6)加入“查询”按钮。 在如图 4-34 所示的“客户单位列表”窗体中,用户在“客户单位名称:”下拉列表框中选 择相应的单位名称后,再单击“查询”按钮,打开“简单信息查询”窗体,并将选择的单位名 称(如“总厂设备部”)显示在“简单信息查询”窗体中的“所属单位: ”文本框中,如图 4-51 所示。. 图 4-51. “简单信息查询”窗体. 根据上述要求,手动加入一个“查询”按钮,输入下面的代码。 Private Sub 查询_Click() Dim str As String DoCmd.OpenForm "简单信息查询".

(28) 实验四 客户管理系统. 99. comCom.SetFocus str = comCom.Text Form_简单信息查询.所属单位 = str End Sub. (7)加入“打印”按钮。 当用户单击“打印”按钮时,触发的事件是打开“客户单位列表”报表,所以下面先建 立“客户单位列表”报表,创建方法是如下。 1)在数据库管理器中选择“对象”标签中的“报表”,客户信息查询然后单击“新建” 按钮,弹出如图 4-52 所示的对话框。选择“报表向导”项,在“请选择该对象数据的类源表 或查询:”下拉列表框中选择“客户信息查询”项,单击“确定”按钮,弹出如图 4-53 所示的 对话框。. 图 4-52. “客户单位列表”报表设计步骤 1. 图 4-53. “客户单位列表”报表设计步骤 2. 2)在图 4-53 中,单击“>>”按钮后再单击“下一步”按钮,弹出如图 4-54 所示的对 话框。 3)在图 4-54 中单击“下一步”按钮,弹出如图 4-55 所示的对话框。 4)在图 4-55 中单击“下一步”按钮,弹出如图 4-56 所示的对话框。.

(29) Access 2003 实验案例教程. 100. 图 4-54. “客户单位列表”报表设计步骤 3. 图 4-55. “客户单位列表”报表设计步骤 4. 图 4-56. “客户单位列表”报表设计步骤 5.

(30) 实验四 客户管理系统. 101. 5)在图 4-56 中单击“下一步”按钮,弹出如图 4-57 所示的对话框。. 图 4-57. “客户单位列表”报表设计步骤 6. 6)在图 4-57 中单击“下一步”按钮,弹出如图 4-58 所示的对话框。. 图 4-58. “客户单位列表”报表设计步骤 7. 7)在图 4-58 中输入报表的标题“客户单位列表: ”,单击“完成”按钮,弹出如图 4-59 所示的“客户单位列表”报表设计视图。. 图 4-59. “客户单位列表”报表设计视图.

(31) Access 2003 实验案例教程. 102. 下面创建“打印”按钮,具体操作过程如下。 在“客户单位列表”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类别(C):” 列表框中选择“报表操作”项,在“操作(A):”列表框中选择“预览报表”项,如图 4-60 所示。. 图 4-60. 在“客户单位列表”窗体中“打印”按钮设计步骤 1. 单击“下一步”按钮,在弹出的对话框中选择“客户单位列表”项,如图 4-61 所示。. 图 4-61. 在“客户单位列表”窗体中“打印”按钮设计步骤 2. 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“打印” ,如图 4-62 所示。. 图 4-62. 在“客户单位列表”窗体中“打印”按钮设计步骤 3.

(32) 实验四 客户管理系统. 103. 单击“下一步”按钮,在弹出的对话框中输入按钮名称“打印”,如图 4-63 所示。. 图 4-63. 在“客户单位列表”窗体中“打印”按钮设计步骤 4. 单击“完成”按钮,完成“打印”按钮的设计。“打印”按钮自动生成的 VBA 代码如下。 Private Sub 打印_Click() On Error GoTo Err_打印_Click Dim stDocName As String stDocName = ChrW(23458) & ChrW(25143) & ChrW(21333) & ChrW(20301) & ChrW(21015) & ChrW(-30616) DoCmd.OpenReport stDocName, acPreview Exit_打印 2_Click: Exit Sub Err_打印_Click: MsgBox Err.Description Resume Exit_打印_Click End Sub. 到此“客户单位列表”窗体设计完成,其设计视图如图 4-64 所示。. 图 4-64. “客户单位列表”窗体设计视图. 7.“客户详细信息子窗体”窗体 “客户信息”窗体作为一个容器包含了两个选项卡,分别显示客户的详细个人信息和业务信.

(33) Access 2003 实验案例教程. 104. 息。在“窗户详细信息子窗体”窗体中显示某一个客户的详细个人信息,并且提供相应的数据查 询和操作;在“客户业务子窗体”窗体显示客户的业务信息,并提供相应的数据查询和操作。 “客户详细信息子窗体”窗体的运行视图如图 4-65 所示,设计视图如图 4-66 所示,窗体 中各控件属性如表 4-14 所示。. 图 4-65. “客户详细信息子窗体”窗体运行视图. 图 4-66. “客户详细信息子窗体”窗体设计视图. 表 4-14 “客户详细信息子窗体”窗体中各控件的名称及属性 控件类型. 窗体. 控件名称. 控件属性. 属性值. 标题. 客户详细信息. 滚动条. 两者均无. 记录选定器. 否. 导航按钮. 否. 分隔线. 否. 自动调整. 否.

(34) 实验四 客户管理系统. 105 续表. 控件类型. 控件名称. 控件. 属性值. 自动居中. 是. 边框样式. 对话框边框. 控制框. 是. 最大化、最小化按钮. 两者都有. 记录源. 客户详细信息. 姓名_标签. 标题. 姓名. 客户编号_标签. 标题. 客户编号. 性别_标签. 标题. 性别. 所属单位_标签. 标题. 所属单位. 职务_标签. 标题. 职务. 出生日期_标签. 标题. 出生日期. 籍贯_标签. 标题. 籍贯. 文化程度_标签. 标题. 文化程度. 曾用名_标签. 标题. 曾用名. 民族_标签. 标题. 民族. 婚姻状况_标签. 标题. 婚姻状况. 身高_标签. 标题. 身高. 体重_标签. 标题. 体重. 身份证号_标签. 标题. 身份证号. 联系电话_标签. 标题. 联系电话. 行动电话_标签. 标题. 行动电话. 电子邮件_标签. 标题. 电子邮件. 备注_标签. 标题. 备注. 姓名. 控件来源. 姓名. 客户编号. 控件来源. 客户编号. 性别. 控件来源. 性别. 所属单位. 控件来源. 所属单位. 职务. 控件来源. 职务. 出生日期. 控件来源. 出生日期. 籍贯. 控件来源. 籍贯. 文化程度. 控件来源. 文化程度. 曾用名. 控件来源. 曾用名. 民族. 控件来源. 民族. 婚姻状况. 控件来源. 婚姻状况. 窗体. 标签. 控件属性.

(35) Access 2003 实验案例教程. 106. 续表 控件类型. 控件. 按钮. 控件名称. 控件属性. 属性值. 身高. 控件来源. 身高. 体重. 控件来源. 体重. 身份证号. 控件来源. 身份证号. 联系电话. 控件来源. 联系电话. 行动电话. 控件来源. 行动电话. 电子邮件. 控件来源. 电子邮件. 备注. 控件来源. 备注. 修改客户信息. 标题. 修改客户信息. 删除客户信息. 标题. 删除客户信息. 查询客户信息. 标题. 查询客户信息. 打印客户信息. 标题. 打印客户信息. 下面介绍“客户详细信息子窗体”窗体的设计过程。 (1)使用向导创建“客户详细信息子窗体”窗体。 在数据库窗口中选择“窗体”对象,单击“新建”按钮,弹出“新建窗体”对话框。在 列表框中选择“窗体向导”选项,在“请选择该对象数据的来源表或查询: ”下拉列表框中选 择“客户详细信息”项,如图 4-67 所示。. 图 4-67. “客户详细信息子窗体”窗体设计步骤 1. 单击“确定”按钮,弹出“窗体向导”对话框,如图 4-68 所示。 将左侧“可用字段(A):”列表框中的字段全部移至右侧“选定的字段(S):”列表框中,单 击“下一步”按钮。在弹出的对话框,选择“纵栏表(C)”单选项,如图 4-69 所示。 单击“下一步”按钮。在弹出的对话框中选择一种窗体样式,如图 4-70 所示。.

(36) 实验四 客户管理系统. 图 4-68. “客户详细信息子窗体”窗体设计步骤 2. 图 4-69. “客户详细信息子窗体”窗体设计步骤 3. 图 4-70. “客户详细信息子窗体”窗体设计步骤 4. 107.

(37) Access 2003 实验案例教程. 108. 单击“下一步”按钮。在弹出的对话框中输入窗体的标题“客户详细信息子窗体” ,再选 择“修改窗体设计(M)”单选项,如图 4-71 所示。. 图 4-71. “客户详细信息子窗体”设计步骤 5. 单击“完成”按钮,弹出窗体设计视图,如图 4-72 所示。调整各控件的位置,各控件名 称及属性如表 4-14 所示。窗体的“内含模块”属性为“是”。. 图 4-72. “客户详细信息子窗体”设计视图. (2)向窗体中添加“修改客户信息”按钮。 在“客户详细信息子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类 别(C):”列表框中选择“记录操作”项,在“操作(A):”列表框中选择“保存记录”项,如图 4-73 所示。 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“修改客户信息”,如 图 4-74 所示。.

(38) 实验四 客户管理系统. 图 4-73. “修改客户信息”按钮设计步骤 1. 图 4-74. “修改客户信息”按钮设计步骤 2. 109. 单击“下一步”按钮,在弹出的对话框中输入按钮名称“修改客户信息”,如图 4-75 所示。. 图 4-75. “修改客户信息”按钮设计步骤 3. 在事件生成器中可以查看自动生成的 VBA 代码如下。 Private Sub 修改客户信息_Click().

(39) Access 2003 实验案例教程. 110. On Error GoTo Err_修改客户信息_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_修改客户信息_Click: Exit Sub Err_修改客户信息_Click: MsgBox Err.Description Resume Exit_修改客户信息_Click End Sub. 由于需要确认是否修改,所以加入一条语句:If MsgBox("是否要修改这条记录?", vbOKCancel) = vbOK Then,以便用户确认。当然,在函数结束的时候要加上 End If 语句,最 后的 VBA 代码如下。 Private Sub 修改客户信息_Click() If MsgBox("是否要修改这条记录?", vbOKCancel) = vbOK Then On Error GoTo Err_修改客户信息_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_修改客户信息_Click: Exit Sub Err_修改客户信息_Click: MsgBox Err.Description Resume Exit_修改客户信息_Click End If End Sub. (3)向窗体中添加“删除客户信息”按钮。 在“客户详细信息子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类 别(C):”列表框中选择“记录操作”项,在“操作(A):”列表框中选择“删除记录”项,如图 4-76 所示。. 图 4-76. “删除客户信息”按钮设计步骤 1. 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“删除客户信息”。如 图 4-77 所示。 单击“下一步”按钮,在弹出的对话框中输入按钮名称“删除客户信息”,如图 4-78 所示。.

(40) 实验四 客户管理系统. 图 4-77. “删除客户信息”按钮设计步骤 2. 图 4-78. “删除客户信息”按钮设计步骤 3. 111. 在事件生成器中可以查看自动生成的 VBA 代码如下。 Private Sub 删除客户信息_Click() On Error GoTo Err_删除客户信息_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_删除客户信息_Click: Exit Sub Err_删除客户信息_Click: MsgBox Err.Description Resume Exit_删除客户信息_Click End Sub. 由于需要确认是否修改,所以加入一条语句:If MsgBox("是否要删除这条记录?", vbOKCancel) = vbOK Then,以便用户确认。当然,在函数结束的时候要加上 End if 语句,最 后的 VBA 代码如下。 Private Sub 删除客户信息_Click() If MsgBox("是否要删除这条记录?", vbOKCancel) = vbOK Then On Error GoTo Err_删除客户信息_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70.

(41) Access 2003 实验案例教程. 112. DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_删除客户信息_Click: Exit Sub Err_删除客户信息_Click: MsgBox Err.Description Resume Exit_删除客户信息_Click End If End Sub. (4)向窗体中添加“查询客户信息”按钮。 用户单击“查询客户信息”按钮时,将打开“详细信息查询”窗体。可以先建立一个空 白的“详细信息查询”窗体,等到后面的“详细信息查询”窗体设计好后,再替换掉这个空白 的“详细信息查询”窗体。详细操作过程如下。 在“客户详细信息子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类 别(C):”列表框中选择“窗体操作”项,在“操作(A):”列表框中选择“打开窗体”项,如图 4-79 所示。. 图 4-79. “查询客户信息”按钮设计步骤 1. 单击“下一步”按钮,在弹出对话框中,在“请确定命令按钮打开的窗体”列表框中选 择“详细信息查询”项,如图 4-80 所示。. 图 4-80. “查询客户信息”按钮设计步骤 2.

(42) 实验四 客户管理系统. 113. 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“查询客户信息”。如 图 4-81 所示。. 图 4-81. “查询客户信息”按钮设计步骤 3. 单击“下一步”按钮,在弹出的对话框中输入按钮名称“查询客户信息”,如图 4-82 所示。. 图 4-82. “查询客户信息”按钮设计步骤 4. 在事件生成器中可以查看自动生成的 VBA 代码如下。 Private Sub 查询客户信息_Click() On Error GoTo Err_查询客户信息_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(-29722) & ChrW(32454) & ChrW(20449) & ChrW(24687) & ChrW(26597) & ChrW(-29726) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_查询客户信息_Click: Exit Sub Err_查询客户信息_Click: MsgBox Err.Description Resume Exit_查询客户信息_Click End Sub.

(43) Access 2003 实验案例教程. 114. 当然也可以手动设计一个“查询客户信息”按钮,在事件生成器中加入下面代码。 Private Sub 查询客户信息_Click() DoCmd.OpenForm "详细信息查询" End Sub. (5)向窗体中添加“打印客户信息”按钮。 当用户单击“打印客户信息”按钮时,触发的事件是打开“客户详细信息查询”报表, 所以下面先建立“客户详细信息查询”报表,创建方法如下。 在数据库管理器中选择“对象”标签中的“报表”,然后单击“新建”按钮,弹出如图 4-83 所示的对话框。选择“报表向导”项,在“请选择该对象数据的来源表或查询:”下拉列表框 中选择“客户详细信息查询”,单击“确定”按钮,弹出如图 4-84 所示的对话框。. 图 4-83. “客户详细信息查询”报表设计步骤 1. 图 4-84. “客户详细信息查询”报表设计步骤 2. 在图 4-84 中,单击“>>”按钮后单击“下一步”按钮,弹出如图 4-85 所示的对话框。 在图 4-85 中单击“下一步”按钮,弹出如图 4-86 所示的对话框。 在图 4-86 中单击“下一步”按钮,弹出如图 4-87 所示的对话框。.

(44) 实验四 客户管理系统. 图 4-85. “客户详细信息查询”报表设计步骤 3. 图 4-86. “客户详细信息查询”报表设计步骤 4. 图 4-87. “客户详细信息查询”报表设计步骤 5. 115.

(45) Access 2003 实验案例教程. 116. 在图 4-87 中单击“下一步”按钮,弹出如图 4-88 所示的对话框。. 图 4-88. “客户详细信息查询”报表设计步骤 6. 在图 4-88 中单击“下一步”按钮,弹出如图 4-89 所示的对话框。. 图 4-89. “客户详细信息查询”报表设计步骤 7. 在图 4-89 中输入报表的标题“客户详细信息查询”,单击“完成”按钮,弹出如图 4-90 所示的“客户详细信息查询”报表设计视图。 调整各控件的位置,放置一个“姓名”文本框,最终的设计视图如图 4-91 所示。报表预 览视图如图 4-92 所示。.

(46) 实验四 客户管理系统. 图 4-90. 图 4-91. “客户详细信息查询”报表设计步骤 8. “客户详细信息查询”报表设计视图. 117.

(47) Access 2003 实验案例教程. 118. 图 4-92. “客户详细信息查询”报表预览视图. 下面创建“打印客户信息”按钮,具体操作过程如下。 在“客户详细信息子窗体”窗体中放置一个按钮,弹出“命令按钮向导”1 对话框,在 “类别(C):”列表框中选择“报表操作”项,在“操作(A):”列表框中选择“预览报表”项, 如图 4-93 所示。. 图 4-93. “打印客户信息”按钮设计步骤 1. 单击“下一步”按钮,在弹出的对话框中选择“客户详细信息查询”报表。如图 4-94 所示。.

(48) 实验四 客户管理系统. 图 4-94. 119. “打印客户信息”按钮设计步骤 2. 单击“下一步”按钮,在弹出对话框中输入在按钮上显示的文本“打印客户信息” ,如图 4-95 所示。. 图 4-95. “打印客户信息”按钮设计步骤 3. 单击“下一步”按钮,在弹出的对话框中输入按钮名称“打印客户信息”,如图 4-96 所示。. 图 4-96. “打印客户信息”按钮设计步骤 4. 单击“完成”按钮,完成“打印客户信息”按钮的设计。“打印客户信息”按钮自动生成 的 VBA 代码如下。.

(49) Access 2003 实验案例教程. 120. Private Sub 打印客户信息_Click() On Error GoTo Err_preview_items_Click Dim stDocName As String stDocName = "客户详细信息查询" DoCmd.OpenReport stDocName, acPreview Exit_preview_items_Click: Exit Sub Err_preview_items_Click: MsgBox Err.Description Resume Exit_preview_items_Click End Sub. 至此,“客户详细信息子窗体”窗体的设计全部完成。 8.“客户业务子窗体”窗体 在“客户业务子窗体”窗体中显示客户的详细业务信息,并且提供相应的数据查询和操 作,运行视图如图 4-97 所示,设计视图如图 4-98 所示,各控件属性如表 4-15 所示。. 图 4-97. “客户业务子窗体”窗体运行视图. 图 4-98. “客户业务子窗体”窗体设计视图.

(50) 实验四 客户管理系统. 121. 表 4-15 “客户业务子窗体”窗体中各控件的名称及属性 控件类型. 控件名称. 文本框. 按钮. 属性值. 标题. 客户业务. 滚动条. 两者都有. 记录选定器. 否. 导航按钮. 是. 分隔线. 否. 自动调整. 否. 自动居中. 是. 边框样式. 细边框. 控制框. 是. 最大化、最小化按钮. 两者都有. 记录源. 客户业务. 客户姓名_标签. 标题. 客户姓名. 客户编号_标签. 标题. 客户编号. 商品种类_标签. 标题. 商品种类. 订单号_标签. 标题. 订单号. 订单金额_标签. 标题. 订单金额. 订购日期_标签. 标题. 订购日期. 到货日期_标签. 标题. 到货日期. 商品图像_标签. 标题. 商品图像. 客户姓名. 控件来源. 客户姓名. 客户编号. 控件来源. 客户编号. 商品种类. 控件来源. 商品种类. 订单号. 控件来源. 订单号. 订单金额. 控件来源. 订单金额. 订购日期. 控件来源. 订购日期. 到货日期. 控件来源. 到货日期. 商品图像. 控件来源. 商品图像. 添加订单. 标题. 添加订单. 取消订单. 标题. 取消订单. 修改订单. 标题. 修改订单. 订单查询. 标题. 订单查询. 打印订单. 标题. 打印订单. 窗体. 标签. 控件属性. 下面介绍“客户业务子窗体”窗体的设计过程。 (1)使用向导创建“客户业务子窗体”窗体。 在数据库窗口中选择“窗体”数据库对象,单击“新建”按钮,弹出“新建窗体”对话.

(51) Access 2003 实验案例教程. 122. 框。在列表框中选择“窗体向导”选项,在“请选择该对象数据的来源表或查询:”下拉列表 框中选择“客户业务”项,如图 4-99 所示。. 图 4-99. “客户业务子窗体”窗体设计步骤 1. 单击“确定”按钮,弹出“窗体向导”对话框,如图 4-100 所示。. 图 4-100 “客户业务子窗体”窗体设计步骤 2. 将左侧“可用字段(A):”列表框中的字段全部移至右侧“选定的字段(S):”列表框中,单 击“下一步”按钮。在弹出的对话框中选择“纵栏表(C)”单选项,如图 4-101 所示。. 图 4-101 “客户业务子窗体”窗体设计步骤 3.

(52) 实验四 客户管理系统. 123. 单击“下一步”按钮。在弹出的对话框中选择一种窗体样式,如图 4-102 所示。. 图 4-102 “客户业务子窗体”窗体设计步骤 4. 单击“下一步”按钮。在弹出的对话框中输入窗体的标题“客户业务子窗体” ,再选择“修 改窗体设计(M)”单选项,如图 4-103 所示。. 图 4-103 “客户业务子窗体”窗体设计步骤 5. 单击“完成”按钮。弹出窗体设计视图,如图 4-104 所示。调整各控件的位置,设置各控 件名称及属性。窗体的“内含模块”属性为“是”。 (2)向窗体中添加“添加订单”按钮。 在“客户业务子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类别(C):” 列表框中选择“记录操作”项,在“操作(A):”列表框中选择“添加新记录”项,如图 4-105 所示。 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“添加订单”,如图 4-106 所示。.

(53) 124. Access 2003 实验案例教程. 图 4-104 “客户业务子窗体”窗体设计视图. 图 4-105 “添加订单”按钮设计步骤 1. 图 4-106 “添加订单”按钮设计步骤 2. 单击“下一步”按钮,在弹出对话框中输入按钮的名称“添加订单”,如图 4-107 所示。.

(54) 实验四 客户管理系统. 125. 图 4-107 “添加订单”按钮设计步骤 3. 在事件生成器中可以查看自动生成的 VBA 代码如下。 Private Sub 添加订单_Click() On Error GoTo Err_添加订单_Click DoCmd.GoToRecord , , acNewRec Exit_添加订单_Click: Exit Sub Err_添加订单_Click: MsgBox Err.Description Resume Exit_添加订单_Click End Sub. 由于需要确认是否添加记录,所以加入一条语句:If MsgBox("是否要添加这条记录?", vbOKCancel) = vbOK Then,以便用户确认。当然,在函数结束的时候要加上 End If 语句,最 后的 VBA 代码如下。 Private Sub 添加订单_Click() If MsgBox("是否要添加这条记录?", vbOKCancel) = vbOK Then On Error GoTo Err_添加_Click DoCmd.GoToRecord , , acNewRec Exit_添加_Click: Exit Sub Err_添加_Click: MsgBox Err.Description Resume Exit_添加_Click End If End Sub. (3)向窗体中添加“取消订单”按钮。 在“客户业务子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类别 (C):”列表框中选择“记录操作”项,在“操作(A):”列表框中选择“删除记录”项,如图 4-108 所示。 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“取消订单”,如图 4-109 所示。.

(55) 126. Access 2003 实验案例教程. 图 4-108 “取消订单”按钮设计步骤 1. 图 4-109 “取消订单”按钮设计步骤 2. 单击“下一步”按钮,在弹出的对话框中输入按钮的名称“取消订单”,如图 4-110 所示。. 图 4-110 “取消订单”按钮设计步骤 3. 在事件生成器中可以查看自动生成的 VBA 代码如下。 Private Sub 取消订单_Click().

(56) 实验四 客户管理系统. 127. On Error GoTo Err_取消订单_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_取消订单_Click: Exit Sub Err_取消订单_Click: MsgBox Err.Description Resume Exit_取消订单_Click End Sub. 由于需要确认是否修改,所以加入一条语句:If MsgBox("是否要删除这条记录?", vbOKCancel) = vbOK Then”,以便用户确认。当然,在函数结束的时候要加上 End if 语句,最 后的 VBA 代码如下。 Private Sub 取消订单_Click() If MsgBox("是否要删除这条记录?", vbOKCancel) = vbOK Then On Error GoTo Err_取消_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_取消_Click: Exit Sub Err_取消_Click: MsgBox Err.Description Resume Exit_取消_Click End If End Sub. (4)向窗体中添加“修改订单”按钮。 在“客户业务子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类别 (C):”列表框中选择“记录操作”项,在“操作(A):”列表框中选择“保存记录”项,如图 4-111 所示。. 图 4-111 “修改订单”按钮设计步骤 1. 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“修改订单”,如图 4-112 所示。.

(57) 128. Access 2003 实验案例教程. 图 4-112 “修改订单”按钮设计步骤 2. 单击“下一步”按钮,在弹出的对话框中输入按钮名称“修改订单”,如图 4-113 所示。. 图 4-113 “修改订单”按钮设计步骤 3. 在事件生成器中可以查看自动生成的 VBA 代码如下。 Private Sub 修改订单_Click() On Error GoTo Err_修改订单_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_修改订单_Click: Exit Sub Err_修改订单_Click: MsgBox Err.Description Resume Exit_修改订单_Click End Sub. 由于需要确认是否修改,所以加入一条语句:If MsgBox("是否要修改这条记录?", vbOKCancel) = vbOK Then,以便用户确认。当然,在函数结束的时候要加上 End If 语句,最 后的 VBA 代码如下。 Private Sub 修改订单_Click() If MsgBox("是否要修改这条记录?", vbOKCancel) = vbOK Then On Error GoTo Err_修改订单_Click.

(58) 实验四 客户管理系统. 129. DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_修改订单_Click: Exit Sub Err_修改订单_Click: MsgBox Err.Description Resume Exit_修改订单_Click End If End Sub. (5)向窗体中添加“订单查询”按钮。 当用户单击“订单查询”按钮时,打开“业务信息查询”窗体。可以先建立一个空白的 “业务信息查询”窗体,等到后面的“业务信息查询”窗体设计好后,再替换掉这个空白的“业 务信息查询”窗体。详细操作过程如下。 在“客户业务子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类别 (C):”列表框中选择“窗体操作”项,在“操作(A):”列表框中选择“打开窗体”项,如图 4-114 所示。. 图 4-114 “订单查询”按钮设计步骤 1. 单击“下一步”按钮,在弹出的对话框中选择“业务信息查询”项,如图 4-115 所示。. 图 4-115 “订单查询”按钮设计步骤 2.

(59) 130. Access 2003 实验案例教程. 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“订单查询”。如图 4-116 所示。. 图 4-116 “订单查询”按钮设计步骤 3. 单击“下一步”按钮,在弹出的对话框中输入按钮名称“订单查询”,如图 4-117 所示。. 图 4-117 “订单查询”按钮设计步骤 4. 在事件生成器中可以查看自动生成的 VBA 代码如下。 Private Sub 订单查询_Click() On Error GoTo Err_订单查询_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(19994) & ChrW(21153) & ChrW(20449) & ChrW(24687) & ChrW(26597) & ChrW(-29726) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_订单查询_Click: Exit Sub Err_订单查询_Click: MsgBox Err.Description Resume Exit_订单查询_Click.

(60) 实验四 客户管理系统. 131. End Sub. 当然也可以手动设计一个“订单查询”按钮,在事件生成器中加入下面代码。 Private Sub 订单查询_Click() DoCmd.OpenForm "业务信息查询" End Sub. (6)向窗体中添加“打印订单”按钮。 用户单击“打印订单”按钮时,触发的事件是打开“客户业务查询”报表。所以下面先 建立“客户业务查询”报表,创建方法如下。 在数据库管理器中选择“对象”标签中的“报表”项,然后单击“新建”按钮,弹出如 图 4-118 所示的对话框。选择“报表向导”项,在“请选择该对象数据的来源表或查询:”下 拉列表框中选择“客户业务查询”项,单击“确定”按钮,弹出如图 4-119 所示的对话框。. 图 4-118 “客户业务查询”报表设计步骤 1. 图 4-119 “客户业务查询”报表设计步骤 2. 在图 4-119 中,单击“>>”按钮后单击“下一步”按钮,弹出如图 4-120 所示的对话框。 在图 4-120 中单击“下一步”按钮,弹出如图 4-121 所示的对话框。 在图 4-121 中单击“下一步”按钮,弹出如图 4-122 所示的对话框。.

(61) 132. Access 2003 实验案例教程. 图 4-120 “客户业务查询”报表设计步骤 3. 图 4-121 “客户业务查询”报表设计步骤 4. 图 4-122 “客户业务查询”报表设计步骤 5. 在图 4-122 中单击“下一步”按钮,弹出如图 4-123 所示的对话框。.

(62) 实验四 客户管理系统. 133. 图 4-123 “客户业务查询”报表设计步骤 6. 在图 4-123 中单击“下一步”按钮,弹出如图 4-124 所示的对话框。. 图 4-124 “客户业务查询”报表设计步骤 7. 在图 4-124 中输入报表的标题“客户业务查询”,单击“完成”按钮,弹出如图 4-125 所 示的“客户业务查询”报表设计视图。. 图 4-125 “客户业务查询”报表设计步骤 8.

(63) 134. Access 2003 实验案例教程. 调整各控件的位置,放置一个“客户姓名”文本框,最终的设计视图如图 4-126 所示。. 图 4-126 “客户业务查询”报表设计视图. 下面创建“打印订单”按钮,具体操作过程如下。 在“客户业务子窗体”窗体中放置一个按钮,弹出“命令按钮向导”对话框,在“类 别(C):”列表框中选择“报表操作”项,在“操作(A):”列表框中选择“预览报表”项,如 图 4-127 所示。. 图 4-127 “打印订单”按钮设计步骤 1.

(64) 实验四 客户管理系统. 135. 单击“下一步”按钮,在弹出的对话框中选择“客户业务查询”项,如图 4-128 所示。. 图 4-128 “打印订单”按钮设计步骤 2. 单击“下一步”按钮,在弹出的对话框中输入在按钮上显示的文本“打印订单”,如图 4-129 所示。. 图 4-129 “打印订单”按钮设计步骤 3. 单击“下一步”按钮,在弹出的对话框中输入按钮名称“打印订单”,如图 4-130 所示。. 图 4-130 “打印订单”按钮设计步骤 4.

(65) 136. Access 2003 实验案例教程. 单击“完成”按钮,完成“打印订单”按钮的设计。“打印订单”按钮自动生成的 VBA 代码如下。 Private Sub 打印订单_Click() On Error GoTo Err_打印订单_Click Dim stDocName As String stDocName = ChrW(23458) & ChrW(25143) & ChrW(19994) & ChrW(21153) & ChrW(26597) & ChrW(-29726) DoCmd.OpenReport stDocName, acPreview Exit_打印订单_Click: Exit Sub Err_打印订单_Click: MsgBox Err.Description Resume Exit_打印订单_Click End Sub. 到此,“客户业务子窗体”窗体的设计全部完成。 9.设计“业务信息查询子窗体”窗体 “业务信息查询子窗体”子窗体的功能是以表格的形式显示客户业务信息查询的结果, 运行视图如图 4-131 所示,设计视图如图 4-132 所示。. 图 4-131 “业务信息查询子窗体”窗体运行视图. 图 4-132 “业务信息查询子窗体”窗体设计视图. “业务信息查询子窗体”窗体的具体设计过程如下。 在数据库窗口中选择“窗体”数据库对象,单击“新建”按钮,弹出“新建窗体”对话.

(66) 实验四 客户管理系统. 137. 框。在列表框中选择“窗体向导”选项,在“请选择该对象数据的来源表或查询:”下拉列表 框中选择“客户业务”项,如图 4-133 所示。. 图 4-133 “业务信息查询子窗体”窗体设计步骤 1. 单击“确定”按钮,弹出“窗体向导”对话框,如图 4-134 所示。. 图 4-134 “业务信息查询子窗体”窗体设计步骤 2. 将左侧“可用字段(A):”列表框中的字段全部移至右侧“选定的字段(S):”列表框中,单 击“下一步”按钮。在弹出的对话框中选择“数据表(D)”单选项,如图 4-135 所示。. 图 4-135 “业务信息查询子窗体”窗体设计步骤 3.

(67) Access 2003 实验案例教程. 138. 单击“下一步”按钮。在弹出的对话框中选择一种窗体样式,如图 4-136 所示。. 图 4-136. “业务信息查询子窗体”窗体设计步骤 4. 单击“下一步”按钮。在弹出的对话框中输入窗体的标题“业务信息查询子窗体” ,再选 择“修改窗体设计(M)”单选项,如图 4-137 所示。. 图 4-137 “业务信息查询子窗体”窗体设计步骤 5. 单击“完成”按钮。弹出窗体设计视图,调整各控件的位置,各控件名称及属性如表 4-16 所示。窗体的“内含模块”属性为“是” 。 表 4-16 “业务信息查询子窗体”窗体中各控件的名称及属性 控件类型. 窗体. 控件名称. 控件属性. 属性值. 标题. 业务信息查询子窗体. 滚动条. 两者都有. 记录选定器. 是. 导航按钮. 是.

(68) 实验四 客户管理系统. 139 续表. 控件类型. 控件名称. 文本框. 属性值. 分隔线. 是. 自动调整. 是. 自动居中. 是. 边框样式. 可调边框. 控制框. 是. 最大化、最小化按钮. 两者都有. 记录源. 客户业务. 客户姓名_标签. 标题. 客户姓名. 客户编号_标签. 标题. 客户编号. 商品种类_标签. 标题. 商品种类. 订单号_标签. 标题. 订单号. 订单金额_标签. 标题. 订单金额. 订购日期_标签. 标题. 订购日期. 到货日期_标签. 标题. 到货日期. 客户姓名. 控件来源. 客户姓名. 客户编号. 控件来源. 客户编号. 商品种类. 控件来源. 商品种类. 订单号. 控件来源. 订单号. 订单金额. 控件来源. 订单金额. 订购日期. 控件来源. 订购日期. 到货日期. 控件来源. 到货日期. 窗体. 标签. 控件属性. 10.设计“业务信息查询”窗体 “业务信息查询”窗体的功能是以表格的形式显示客户业务信息查询的结果,允许用户 通过姓名、编号、商品种类、订单号来查看客户的业务信息。窗体的运行视图如图 4-138 所示, 设计视图如图 4-139 所示,窗体中各控件属性如表 4-17 所示。. 图 4-138. “业务信息查询”窗体运行视图. 图 4-139 “业务信息查询”窗体设计视图.

(69) Access 2003 实验案例教程. 140. 表 4-17 “业务信息查询”窗体中各控件的名称及属性 控件类型. 控件名称. 文本框. 组合框. 子窗体. 按钮. 属性值. 标题. 业务信息查询. 滚动条. 两者均无. 记录选定器. 否. 导航按钮. 否. 分隔线. 否. 自动调整. 否. 自动居中. 是. 边框样式. 对话框边框. 控制框. 是. 最大化、最小化按钮. 两者都有. 姓名. 标题. 姓名:. 编号. 标题. 编号:. 商品种类. 标题. 商品种类:. 订单号. 标题. 订单号:. 姓名. 控件来源. 编号. 控件来源. 订单号. 控件来源. 窗体. 标签. 控件属性. 行来源类型. 表/查询. 行来源. SELECT 客户业务.商品种类 FROM 客 户业务 GROUP BY [商品种类];. 绑定列. 1. 列表行数. 8. 列表宽度. 自动. 业务查询结果. 源对象. 业务信息查询子窗体. 查询. 标题. 查询. 打印查询结果. 标题. 打印查询结果. 取消. 标题. 取消. 商品种类. (1)设计窗体。 在数据库窗口中选择“窗体”对象,单击“新建”按钮,选择“设计视图”选项,如图 4-140 所示。 单击“确定”按钮,弹出窗体设计视图,如图 4-141 所示。 (2)在窗体上方加入一个框架,删除标题。再添加“姓名:”、“编号:”、“订单号:”三个 标签,“姓名”、“编号”、“订单号”三个文本框。 (3)添加“商品种类”组合框。.

(70) 实验四 客户管理系统. 141. 图 4-140 “业务信息查询”窗体设计步骤 1. 图 4-141 “业务信息查询”窗体设计步骤 2. 单击工具箱中的“组合框”按钮,在窗体中适当的位置拖动,松开鼠标后弹出“组合框 向导”对话框,如图 4-142 所示。. 图 4-142 “业务信息查询”窗体中的组合框设计步骤 1. 单击“下一步”按钮,在弹出的对话框中选择“表:客户业务”项,如图 4-143 所示。 单击“下一步”按钮,在弹出的对话框中,将左侧“可用字段: ”列表框中的“商品种类” 字段移到右侧“选定字段:”列表框中,如图 4-144 所示。.

參考文獻

相關文件

对于二元函数的自变量,我

1、电动力学 郭硕宏编 高等教育出版社 2、电动力学 尹真 编 南京大学出版社 3、Classical Electrodynamics J. Jackson

在【逐步解析 1】中,共需要輸入 2 個答案,為了避免「後面 輸入的答案(數學分數)」取代「前面的答案(國文分數)」,我 們要利用 2 個不同的變數來區別兩者,並以變數

Global Logistics and Supply Chain Management, 3rd Edition, John Wiley & Sons. Global Macrotrends and their Impact on Supply

蒲公英(水印木刻)  现代  吴凡 挤牛奶(石版画)  现代 

上述定理, 即 Dini, Lipschitz, Dirichlet 判别法, 给出函数能展开成 Fourier 级数的充分条件... 下面罗列几个例子,

衡量一个地区或一个国家水资源的丰歉 程度的指标:

Dim GAl1 As Double, GAh1 As Double, GAd1 As Double, GAd2 As Double Dim EAl1 As Double, EAh1 As Double, EAd1 As Double, EAd2 As Double Dim URl1 As Double, URh1 As Double, URd1