Windows系统没有目标位置的快捷方式及其目标文件获取

最近的项目需要解析Windows系统的快捷方式(.lnk),研究发现,虽然快捷方式的后缀都是(.lnk),但其实存在两种不同的格式,如图:

右侧的 QQ 快捷方式则是我们常见的那种,目标是指向一个 .exe,而左侧的 python 的快捷方式并没有目标位置,而且目标也不指向一个特定文件。

用 IShellLink 去解析 QQ 的快捷方式(一般的快捷方式)没有任何问题(网上搜代码一堆,这里就不贴了),但用它来获取 python 那种图标就不行了,IShellLink 解 python 快捷方式,返回的目标文件是存放在 %appdata%\Roaming\Microsoft\Installer\{DCD5B320-89D9-4C7C-9E8B-84496588744D}\python_icon.exe。

在 MSDN 折腾了半天,搜到了 stackoverflow 的这个:

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Access 2000数据库系统设计(PDF)---002目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试. 31.2.3 DAP设计模式 51.3 为Microsoft数据引擎创建 Access数据 项目 51.3.1 新的ADP工具和对象 61.3.2 NorthwindCS项目和da Vinci工具 箱的深入研究 61.4 OfficeVBA编辑器和Access的集成 91.5 DAP和DHTML的HTML源编辑器 101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库 相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动更正 151.8.5 与Office 2000相关的改进 151.9 安装Access 2000 171.9.1 Access 2000的初始安装 171.9.2 定制Access 2000 201.10 安装和配置Microsoft数据引擎 20 1.11 现实世界—为什么升级 23第2章 建立第一个Access 2000应用 252.1 理解Access的应用设计方法 252.2 从模板文件创建Access应用 262.3 熟悉联系管理应用 292.3.1 数据库窗口中的表对象 292.3.2 切换面板窗体 322.3.3 Access窗体 332.3.4 Access报表 352.3.5 Access模块 362.4 使用切换面板管理器 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化文档窗口 463.2.2 把文档窗口最小化为图标 473.2.3 表数据表视图中的工具栏 483.2.4 工具栏自定义 503.2.5 右击快捷方式菜单 523.3 使用功能键 533.3.1 全局功能键 533.3.2 字段、网格和文本框的功能键 分配 533.4 设置默认的选项 543.4.1 系统默认值 553.4.2 数据表视图的默认值 583.5 使用Access帮助 593.5.1 上下文相关的帮助 593.5.2 “帮助”菜单 603.5.3 Microsoft Access的帮助窗口 613.5.4 “Office助手” 643.6 使用“数据库实用工具” 663.6.1 压缩和修复数据库 673.6.2 将数据库转换为Access 2000格式 683.6.3 将数据库转换为Access 97格式 693.6.4 添加切换面板窗体 693.6.5 创建.mde文件 703.7 疑难解答 703.8 现实世界—HTML帮助或者障碍 71第4章 使用Access数据库和表 724.1 定义Access数据库的元素 724.2 理解关系型数据库 744.3 使用Access数据库文件和表 754.3.1 Access系统数据库 754.3.2 Access 库数据库 754.4 创建一个新数据库 754.5 理解表和字段的属性 774.6 选择字段数据类型、大小和格式 804.6.1 为数值和文本数据选择字段大小 814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中直接创建一个表 964.9 设置字段的默认值 964.10 使用关系、关键字字段和索引 974.10.1 建立表之间的关系 984.10.2 实施参照完整性 1004.10.3 选择一个主键 1014.10.4 往表中添加索引 1024.11 改变字段和关系 1044.11.1 重新安排表中字段的顺序 1044.11.2 改变字段数据类型和大小 1054.11.3 改变表之间的关系 1064.12 复制和粘贴表 1074.13 疑难解答 1084.14 现实世界—数据库战略和表战术 108第5章 输入、编辑和验证表中的数据 1105.1 在Access表中输入测试数据 1105.2 使用
Access 2000数据库系统设计(PDF)---002目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试. 31.2.3 DAP设计模式 51.3 为Microsoft数据引擎创建 Access数据 项目 51.3.1 新的ADP工具和对象 61.3.2 NorthwindCS项目和da Vinci工具 箱的深入研究 61.4 OfficeVBA编辑器和Access的集成 91.5 DAP和DHTML的HTML源编辑器 101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库 相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动更正 151.8.5 与Office 2000相关的改进 151.9 安装Access 2000 171.9.1 Access 2000的初始安装 171.9.2 定制Access 2000 201.10 安装和配置Microsoft数据引擎 20 1.11 现实世界—为什么升级 23第2章 建立第一个Access 2000应用 252.1 理解Access的应用设计方法 252.2 从模板文件创建Access应用 262.3 熟悉联系管理应用 292.3.1 数据库窗口中的表对象 292.3.2 切换面板窗体 322.3.3 Access窗体 332.3.4 Access报表 352.3.5 Access模块 362.4 使用切换面板管理器 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化文档窗口 463.2.2 把文档窗口最小化为图标 473.2.3 表数据表视图中的工具栏 483.2.4 工具栏自定义 503.2.5 右击快捷方式菜单 523.3 使用功能键 533.3.1 全局功能键 533.3.2 字段、网格和文本框的功能键 分配 533.4 设置默认的选项 543.4.1 系统默认值 553.4.2 数据表视图的默认值 583.5 使用Access帮助 593.5.1 上下文相关的帮助 593.5.2 “帮助”菜单 603.5.3 Microsoft Access的帮助窗口 613.5.4 “Office助手” 643.6 使用“数据库实用工具” 663.6.1 压缩和修复数据库 673.6.2 将数据库转换为Access 2000格式 683.6.3 将数据库转换为Access 97格式 693.6.4 添加切换面板窗体 693.6.5 创建.mde文件 703.7 疑难解答 703.8 现实世界—HTML帮助或者障碍 71第4章 使用Access数据库和表 724.1 定义Access数据库的元素 724.2 理解关系型数据库 744.3 使用Access数据库文件和表 754.3.1 Access系统数据库 754.3.2 Access 库数据库 754.4 创建一个新数据库 754.5 理解表和字段的属性 774.6 选择字段数据类型、大小和格式 804.6.1 为数值和文本数据选择字段大小 814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中直接创建一个表 964.9 设置字段的默认值 964.10 使用关系、关键字字段和索引 974.10.1 建立表之间的关系 984.10.2 实施参照完整性 1004.10.3 选择一个主键 1014.10.4 往表中添加索引 1024.11 改变字段和关系 1044.11.1 重新安排表中字段的顺序 1044.11.2 改变字段数据类型和大小 1054.11.3 改变表之间的关系 1064.12 复制和粘贴表 1074.13 疑难解答 1084.14 现实世界—数据库战略和表战术 108第5章 输入、编辑和验证表中的数据 1105.1 在Access表中输入测试数据 1105.2 使用键盘操作进行数据输入和编辑数据 1105.2.1 创建Northwind.mdb的试验用复本 1115.2.2 使用数据输入和编辑键 1115.2.3 用于Windows剪贴板操作的组合键 1125.2.4 在字段和文本框上使用快捷键 1135.2.5 设置数据输入选项 1145.3 向表中添加记录 1145.4 选择、追加、替换和删除表记录 1155.5 验证数据输入 1165.5.1 添加字段级有效性规则 1165.5.2 添加表级有效性规则和使用表达式 生成器 1185.6 向Personnel Actions表添加记录 1195.7 输入Personnel Actions表数据和测试 有效性规则 1205.8 疑难解答 1215.9 现实世界—批量数据输入 121第6章 排序、查找和筛选表中的数据 1236.1 理解排序和筛选的作用 1236.2 排序表的数据 1236.2.1 冻结表中某个字段的显示 1246.2.2 在单个字段上排序数据 1246.2.3 在多个字段上排序数据 1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段排序和复合筛选 准则 1326.5.5 使用复合准则 1346.5.6 将筛选保存为查询与筛选的加载 1356.6 定制数据表视图 1366.7 复制、导出和邮寄排序和筛选后的 数据 1386.8 疑难解答 1396.9 现实世界—基于计算机的排序和 搜索 139第7章 链接、导入和导出表 1417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件 格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC链接Visual FoxPro表 1457.2.4 处理外部文件中的图像 1487.2.5 将字段数据类型转换为Access数据 类型 1497.2.6 使用链接表管理器加载项重新 链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517.3.2 链接Excel工作表 1567.4 使用Microsoft Outlook和Exchange 文件夹 1567.4.1 用Outlook导出和导入Jet 4.0表 1577.4.2 使用Exchange/Outlook向导的链接 1597.5 导入文本文件 1607.5.1 使用导入文本向导 1617.5.2 导入文本向导的高级选项 1637.5.3 使用分隔文本文件 1657.5.4 处理宽度固定的文本文件 1667.5.5 追加文本数据到一个现有的表 1677.6 使用剪贴板导入数据 1677.6.1 向一个表粘贴新记录 1687.6.2 通过从剪贴板上粘贴来替换记录 1707.7 从Access表导出数据 1717.7.1 通过Windows剪贴板导出数据 1717.7.2 将数据导出为一个文本文件 1727.7.3 以其他文件格式导出数据 1737.8 疑难解答 1737.9 现实世界—Microsoft的付出与 回报 175第二部分 最大限度地利用查询第8章 设计Access 查询 1778.1 查询简介 1778.2 “简单查询向导”的使用 1778.3 使用查询设计窗口 1798.3.1 为查询选择字段 1808.3.2 按准则选择记录和排序显示 1828.3.3 创建更为复杂的查询 1838.3.4 改变查询列标题的名字 1848.3.5 将查询作为报表进行打印 1868.3.6 使用查询的数据 1878.4 创建其他的查询类型 1888.4.1 创建和使用简单的生成表操作 查询 1888.4.2 向生成表查询添加参数 1908.5 疑难解答 1918.6 现实世界—查询设计优化 191第9章 理解查询操作符和表达式 1939.1 编写表达式作为查询准则和数据验证 依据 1939.2 理解表达式中的元素 1949.2.1 操作符 1949.2.2 文字 1979.2.3 标识符 1989.2.4 函数 1989.2.5 固有的和命名常数 2059.3 创建Access表达式 2059.3.1 创建默认值的表达式 2069.3.2 使用表达式进行数据有效性验证 2069.3.3 作为查询准则的表达式 2069.3.4 计算查询字段值的表达式 2109.3.5 表达式的其他用途 2129.4 疑难解答 2129.5 现实世界—Access表达式代数学 212第10章 创建多表查询和交叉表查询 21410.1 介绍表的连接 21410.2 连接表以创建多表查询 21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择 唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加外部键下拉列表 22210.3.2 向一个表添加固定值查找列表 22510.4 向表或者查询添加子数据表 22610.4.1 表子数据表 22710.4.2 查询子数据表 22810.5 外连接、自连接和Theta连接 23010.5.1 创建外连接 23010.5.2 创建自连接 23110.5.3 创建带准则的不相等Theta连接 23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化 数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 23510.8.2 基于表中所有记录进行计算 23610.8.3 基于表中被选定的记录进行计算 23810.9 设计参数查询 24010.9.1 向月销售量查询添加一个参数 24010.9.2 指定参数的数据类型 24110.10 创建交叉表查询 24210.10.1 使用向导生成一个季度产品销售 交叉表查询 24210.10.2 设计一个月产品销售交叉表查询 24510.10.3 使用固定列标题的交叉表查询 24610.11 从其他数据库中的表创建查询 24710.12 疑难解答 24810.13 现实世界—优化多表查询 249第11章 用操作查询修改数据 25111.1 操作查询入门 25111.2 用生成表查询创建新表 25111.2.1 设计和测试选择查询 25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录的值 25811.6 测试级联删除和更新 26111.6.1 创建测试表和建立关系 26111.6.2 测试级联删除 26211.6.3 测试级联更新 26211.7 疑难解答 26311.8 现实世界—操作查询之外的选择 26311.8.1 浏览模式更新 26411.8.2 基于窗体的更新 26411.8.3 用SQL语句进行更新 26411.8.4 用SQL Server存储过程进行更新 265第三部分 设计窗体和报表第12章 创建和使用窗体 26712.1 理解Access窗体和控件的角色 26712.2 使用窗体向导创建事务处理窗体 26812.2.1 为窗体选择数据源 26812.2.2 用窗体向导创建基本窗体 26812.3 使用窗体设计窗口 27212.3.1 窗体设计窗口的元素 27312.3.2 窗体设计工具栏按钮和菜单 选择 27312.3.3 格式工具栏 27512.3.4 窗体的默认值 27512.3.5 使用自动套用格式 27612.3.6 改变对象的颜色 27712.4 选择、编辑、移动窗体元素和控件 28112.4.1 改变窗体页眉和窗体页脚的大小 28212.4.2 选择、移动和缩放单个控件 28212.4.3 将控件和网格对齐 28312.4.4 选择和移动多个控件 28312.4.5 对齐一组控件 28412.4.6 使用Windows 剪贴板和删除控件 28412.4.7 改变控件的颜色和边框样式 28512.4.8 改变控件的内容 28512.4.9 使用格式刷 28612.5 重新安排Personnel Actions窗体 28612.5.1 设置主窗体的属性 28712.5.2 设置子窗体的属性 28812.6 使用事务处理窗体 28912.6.1 窗体视图中的工具栏按钮 28912.6.2 使用Personnel Actions窗体 29012.6.3 向Personnel Actions表追加新记录 29012.6.4 编辑现有的数据 29212.6.5 提交和回退对表的改变 29212.7 在测试之后修改窗体或者控件的 属性 29212.7.1 为数据输入而改变字段的次序 29212.7.2 从Tab键次序中删除字段 29312.8 现实世界—窗体设计技巧 293第13章 设计自定义多表窗体 29613.1 扩展你的窗体设计技能 29613.2 了解Access工具箱 29613.2.1 控件分类 29613.2.2 工具箱 29713.2.3 Access的控件向导、生成器和 工具栏 29813.3 使用工具箱添加控件 30013.3.1 创建作为主窗体基础的查询 30113.3.2 创建一个具有页眉和页脚的空白 窗体 30213.3.3 向窗体页眉上添加一个标签 30313.3.4 格式化文本和调整文本控件的 大小 30413.3.5 创建绑定、多行、计算文本框 30513.3.6 改变属性的默认视图和获取帮助 30813.3.7 用向导添加选项组 30813.3.8 使用剪贴板复制控件到其他窗体 31113.3.9 使用组合和列表框 31213.3.10 创建一个组合框来查找特定的 记录 31813.3.11 创建选项卡控件 32013.3.12 改变控件类型 32413.4 完成主Personnel Actions Entry窗体 32413.5 使用子窗体/子报表向导创建子窗体 32613.6 修改连续窗体的设计 32813.7 覆盖表的字段属性 32913.8 为打印窗体添加页眉和页脚 33013.9 疑难解答 33013.10 现实世界—Access的向导化 331第14章 打印基本报表和邮件标签 33314.1 理解窗体和报表之间的关系 33314.2 Access 报表类型的分类 33414.3 用“报表向导”创建分组报表 33414.4 使用Access的报表窗口 33814.5 使用自动套用格式和自定义报表样式 34014.6 修改基本的“报表向导”报表 34014.6.1 删除、重新部署和编辑现有的 控件 34014.6.2 向报表添加计算控件 34514.6.3 对齐和格式化控件并调整行间距 34714.7 传统报表的边距调整和打印 35014.8 通过组的保持同页属性防止出现 孤立的记录 35114.9 将多列报表作为邮件标签打印 35214.10 疑难解答 35314.11 现实世界—虚拟的无纸办公室 354第15章 高级报表 35515.1 从头开始创建报表 35515.2 报表数据的分组与排序 35515.2.1 分组数据 35615.2.2 数据分组排序 35815.3 从空白报表开始 35915.3.1 将一个报表用作一个子报表 35915.3.2 创建Monthly Sales by Category 报表 36115.4 集成子报表 36415.4.1 向绑定报表添加链接子报表 36415.4.2 使用未链接子报表和未绑定报表 36615.5 自定义报表 36715.5.1 添加和删除报表的节 36715.5.2 分页控制以及打印页眉和页脚 36815.5.3 减少报表的长度 36815.6 向报表添加其他控件 36815.7 邮递报表快照 36915.8 疑难解答 37015.9 现实世界—报表设计的技巧 371第四部分 在Intranet和Internet上发布数据第16章 超级链接和HTML 37316.1 允许数据传送的Web页面 37316.2 Microsoft的Internet程序透视 37416.2.1 数字神经系统Windows DNA 37516.2.2 Microsoft的Internet相关的客户端 产品 37616.2.3 Microsoft的服务器方组件 37816.2.4 Microsoft支持Internet相关产品的 技术 37816.3 用超级链接在Web和Intranet中 导航 37916.4 理解Access 2000的超级链接字段数据 类型 38216.4.1 测试Northwind Orders表中的超级 链接 38216.4.2 编辑和插入传统的超级链接 38416.4.3 链接到一个Word文档的书签 38416.4.4 指定到Intranet Server或者Web上的 页面的超级链接 38716.4.5 为超级链接添加屏幕提示 38816.4.6 使用表超级链接打开一个Access 对象 38816.5 在Access控件上使用超级链接 38916.6 指定其他Internet URL 39016.7 疑难解答 39116.8 现实世界—到Internet或者不到 Internet 391第17章 从表和查询生成Web页面 39317.1 简化基于Web的决策支持方式 39317.2 将表和查询数据表导出到HTML 39317.2.1 创建一个非格式化的Web页面 39517.2.2 从一个查询创建 Web页面 39817.3 使用HTML模板 39917.3.1 使用包含在Office 2000中的Access HTML模板 39917.3.2 用模板导出一个查询数据表 40117.4 将报表导出到HTML 40217.5 从HTML表导入数据 40417.6 创建动态 Web页面 40617.6.1 理解ASP 40717.6.2 为ASP创建一个ODBC数据源 40817.6.3 将Access查询导出为ASP 40817.7 疑难解答 41017.8 现实世界—ASP和DAP 410第18章 设计数据访问页 41218.1 转向一个新的Access窗体模型 41218.2 理解Access的动态HTML实现 41318.2.1 支持DHTML和DAP的技术 41318.2.2 DOM HTML和DHTML 41418.3 DAP入门 41518.3.1 Review Products页 41518.3.2 Review Orders页 41818.3.3 HTML源代码编辑器 41918.3.4 Analyze Sales数据透视表页 42018.3.5 Sales页 42118.3.6 读写页 42318.4 使用“数据页向导”创建简单的DAP 42418.5 使用自动创建数据页创建纵栏式 DAP 42718.5.1 使用记录浏览控件的筛选和排序 特征 42818.5.2 修改自动创建数据页DAP的设计 42918.5.3 改变记录浏览控件的属性 43118.6 从头开始创建DAP 43218.6.1 用页字段列表添加一个数据 透视表 43218.6.2 数据透视表列表控件在IE 5.0中的 使用 43318.6.3 在IE5.0中更改透视表的属性 43418.7 用数据透视表列表向DAP添加图表 43518.7.1 为数据透视表列表创建一个查询 43518.7.2 添加和格式化数据透视表列表 43718.7.3 使用图表向导向数据透视表列表 绑定一个Office 图表 43818.8 生成分组页 44018.8.1 创建一个三级层次分组页结构 44018.8.2 填充明细内容 44218.8.3 添加相关表的字段和标题 44318.9 疑难解答 44418.10 现实世界—DAP准备好大展 宏图了吗? 444第五部分 集成Access与其他Office 2000应用程序第19章 往窗体和报表中添加图表和图形 44719.1 用图形丰富窗体和报表 44719.2 用Microsoft Graph 2000创建图形和 图表 44719.2.1 创建作为图形基础的查询 44819.2.2 使用“图表向导”创建非链接 图形 44919.2.3 更改图形的设计特征 45219.2.4 从交叉表查询中创建图形 45519.2.5 把图形链接到表或查询中的单个 记录上 45719.3 在页中使用图表Web控件 45819.3.1 为图表Web控件设计查询 45919.3.2 添加基于单数据列系列的office图表 45919.3.3 更改Office图表的属性 46219.4 往窗体或报表中添加未绑定对象 控件 46319.4.1 在Personnel Actions查询中包含 相片 46319.4.2 在Personnel Actions窗体中显示雇员 的图像 46319.4.3 缩放图形对象 46519.4.4 检查位图图像文件格式 46619.5 使用图像控件 46719.6 疑难解答 46819.7 现实世界—可视化数据 468第20章 与Microsoft Excel一起使用 Access 47020.1 用数据透视表切分数据 47020.2 使用Access的数据透视表向导 47020.2.1 为数据透视表创建查询 47120.2.2 用向导产生一个数据透视表窗体 47220.3 在Excel中处理数据透视表 47520.3.1 提高数据透视表的格式化程度 47520.3.2 用数据透视表切分数据 47720.3.3 通过筛选进行切分 47820.3.4 折叠或展开明细数据的显示 47920.3.5 更改维的坐标轴 48120.4 格式化数据透视表报表 48120.5 从数据透视表中创建数据透视图表 48220.6 把Excel用作OLE服务器 48420.6.1 在窗体中嵌入常规的Excel工作表 48420.6.2 从OLE对象中抽取值 48620.6.3 链接到Excel工作表中一定范围的 单元格 48720.7 疑难解答 48920.8 现实世界—OLAP和数据 透视表 489第21章 与Microsoft Word和邮件合并一起 使用Access 49221.1 集成Access 2000和Word 2000 49221.2 使用Access邮件合并向导 49221.2.1 创建和预览新套用信函 49221.2.2 使用已有的主合并文档及新 数据源 49421.3 与Access数据库一起使用Word 2000的 邮件合并功能 49721.3.1 用Microsoft查询和ODBC数据源来 创建新的邮件合并数据源 49721.3.2 从已有查询创建套用信函 50121.4 在Access表中嵌入或链接Word文档 50221.4.1 在表中嵌入或链接Word 2000文档 50321.4.2 创建窗体以显示被嵌入文档 50421.5 疑难解答 50621.6 现实世界—Microsoft查询和 OLE DB 506第六部分 使用高级Access技术第22章 关系数据库设计与实现的研究 50922.1 查看Access 2000新增的数据库设计 功能 50922.2 集成对象和关系数据库 51022.3 理解数据库系统 51022.3.1 数据库设计的目标 51022.3.2 数据库设计过程 51122.3.3 数据库设计的面向对象方法 51222.3.4 数据库术语 51422.3.5 关系数据库中表和关键字的类型 51522.4 数据建模 51522.4.1 应用数据库 51622.4.2 主题数据库 51622.4.3 图表化数据模型 51722.4.4 数据库模式 51722.5 把数据规范化到关系模型 51822.5.1 规范化规则 51822.5.2 关系类型 52222.6 使用Access 2000的“表分析器向导” 52522.7 用数据库文档管理器创建数据字典 52822.8 使用Access索引 52922.9 实施数据库完整性 53022.9.1 保证实体完整性和可审计性 53022.9.2 维护参照完整性 53322.10 疑难解答 53322.11 现实世界—为什么学习关系理论? 533第23章 结构化查询语言 53523.1 理解Access 2000中SQL的角色 53523.2 使用Access学习SQL 53623.3 理解SQL语法 53723.4 用SQL编写SELECT查询 53723.4.1 使用SQL标点号和符号 53923.4.2 使用SQL语句创建Access查询 53923.4.3 使用SQL聚集函数 54123.4.4 用SQL创建连接 54223.4.5 使用联合查询 54323.4.6 实现子查询 54523.5 编写操作和交叉表查询 54623.6 添加IN以使用其他数据库中的表 54623.6.1 操作其他Access数据库 54723.6.2 对其他数据库类型使用IN子句 54823.6.3 用Jet DDL创建表 54823.6.4 比较ANSI和Jet SQL 54923.6.5 Access中SQL保留字 54923.6.6 对应于SQL关键字的Jet SQL保留字 54923.6.7 用于替代ANSI SQL关键字的 Access函数和操作符 55023.6.8 不存在于ANSI SQL中的Jet SQL 保留字、操作符和函数 55123.6.9 Jet 的 DISTINCTROW 和 SQL 的 DISTINCT关键字 55223.6.10 Jet SQL保留字不支持的通用 ANSI SQL关键字和功能 55423.7 在窗体、报表和宏中使用SQL语句 55523.8 疑难解答 55523.9 现实世界—把SQL作为第二种语言 555第24章 多用户网络应用的安全 55824.1 网络化Access 2000应用程序 55824.2 在网络化环境下安装Access 55924.3 与其他用户共享你的Access数据库 文件 55924.3.1 为文件共享创建一个文件夹和系统 文件 55924.3.2 准备共享你的数据库文件 56224.3.3 为文件共享而拆分数据库 56224.3.4 修补链接、数据源和DAP的超链接 56424.3.5 用“工作组管理员”选择工作组 56524.4 使用命令行来打开共享数据库 56624.5 维护数据库安全 56824.5.1 指定局域网上数据库安全的原则: 56824.5.2 用密码保护单个数据库 56924.5.3 管理组和用户 57024.6 理解数据库对象所有权 57524.6.1 对象的所有者权限 57524.6.2 更改数据库对象的所有权 57524.7 授予和撤消对数据库对象的访问权限 57624.7.1 使用安全向导更改权限 57724.7.2 手工更改组权限 58024.7.3 给特定用户授予其他权限 58124.7.4 授予对其他工作组中某数据库的 访问权限 58124.8 在网络上共享数据库 58224.8.1 在Windows 9x网络上共享数据库 文件 58224.8.2 用户级安全共享文件 58324.8.3 共享来自网络服务器的数据库文件 58424.9 访问共享的工作组和数据文件 58424.9.1 粘附被共享的工作组系统文件 58524.9.2 刷新到共享数据文件的链接 58524.10 管理数据库和应用 58624.10.1 备份和恢复数据库 58624.10.2 压缩和修复数据库文件 58724.10.3 加密和解密数据库文件 58724.11 疑难解答 58824.12 现实世界—共享文件与客户/服务器 后端 588第25章 创建Access数据项目 59025.1 将Access转变成客户/服务器模式 59025.2 理解MSDE的作用 59125.2.1 SQL Server版本与特性 59125.2.2 MSDE的优点 59225.3 安装与启动MSDE 59225.4 熟悉ADP 59525.4.1 适应MSDE与SQL Server 7.0的特性 59525.4.2 启动Northwind CS示例工程 59625.5 使用项目设计器 59725.5.1 MSDE表操作 59825.5.2 浏览MSDE视图 60025.5.3 图形化表关系 60225.5.4 编写存储过程 60325.5.5 为表添加触发 60425.6 使用升迁向导来创建ADP 60525.6.1 运行Access升迁向导 60525.6.2 检查向导成功还是失败 60725.7 使用DTS向导压缩数据库 60825.8 连接远程MSDE数据库 61025.8.1 使用SQL Server客户网络实用工具 61025.8.2 验证与使用远程数据库 61125.8.3 建立MSDE安全 61225.9 疑难解答 61325.10 现实世界—尝试中的 ADP 61425.10.1 ADP的缺陷 61425.10.2 SQL Server 的优点:ADP、MSDE 和SQL Server 7.0 614第七部分 Access应用的程序设计和转换第26章 编写VBA代码 61726.1 理解VBA在Access中的作用 61726.2 介绍VBA 6.0 61826.2.1 在什么情况下使用VBA代码 61826.2.2 VBA命名习惯 61826.2.3 模块、函数和子过程 61926.2.4 模块元素 62026.2.5 VBA和Access模块的引用 62126.2.6 VBA中数据类型和数据库对象 62226.2.7 变量和命名习惯 62326.2.8 符号常量 62726.2.9 VBA命名的可选参数 62826.3 控制程序流 62826.3.1 转移和标号 62926.3.2 条件语句 62926.3.3 重复操作:循环 63126.4 处理运行错误 63326.4.1 使用Err对象查找错误类型 63426.4.2 在窗体或者报表模块中使用Error 事件 63426.5 浏览VBA编辑器 63526.5.1 模块窗口的工具栏 63526.5.2 模块快捷键 63626.5.3 VBA帮助系统 63726.6 检验实用工具函数模块 63726.6.1 向IsLoaded()函数中加一个断点 63826.6.2 用Debug对象把结果输出到立即窗口 63926.6.3 使用文本比较选项 64026.7 现实世界—宏的应用 640第27章 理解通用数据访问、OLE DB和 ADO 64227.1 透视Microsoft新的数据访问组件 64227.2 与多种数据源的接口 64327.2.1 用OLE DB自底向上重新设计 64327.2.2 将OLE DB接口映射到ADO 64527.2.3 比较ADO和DAO对象 64627.3 创建ADODB.Recordsets 64727.4 用代码将控件绑定到记录集 64927.5 使窗体可修改 65027.5.1 连接到NorthwindCS MSDE数据库 65127.5.2 用DAO3.6代替ADO2.1 65127.6 浏览顶层ADO属性、方法和事件 65227.7 与ADODB.Connection对象一起工作 65427.7.1 Connection的属性 65427.7.2 Errors集合和Error对象 65627.7.3 Connection的方法 65727.7.4 Connection事件 65927.8 使用ADODB.Command对象 66027.8.1 Command对象的属性 66027.8.2 Parameters集合 66127.8.3 Parameter对象 66127.8.4 Command方法 66327.8.5 把参数值传递给存储过程的代码 66427.9 理解ADODB.Recordset对象 66627.9.1 Recordset的属性 66627.9.2 Fields集合和Field对象 66927.9.3 Recordset的方法 67127.9.4 断开连接的Recordset 67427.9.5 Recordset事件 67427.10 疑难解答 67527.11 现实世界—努力学习和使用ADO 675第28章 用VBA6.0响应事件 67728.1 介绍事件驱动的编程 67728.2 理解类模块的角色 67728.2.1 Main Switchboard类模块 67828.2.2 在Main Switchboard窗体中的事件 处理代码 67928.3 在对象浏览器和项目浏览器中检查 工程类模块成员 68128.4 通过命令按钮向导添加事件处理代码 68228.5 用函数来响应事件 68428.6 理解Access 2000的事件指令集 68528.7 使用Access 2000的Docmd方法 68928.8 用命令条对象定制应用 69428.9 指定一个自定义CommandBar并 设置其他启动属性 69628.10 用VBA引用Access对象 69728.10.1 引用打开的窗体或报表及其属性 69728.10.2 引用控件及其属性 69828.10.3 引用子窗体或主窗体中的控件 69928.11 使用另一种集合语法 69928.12 响应由窗体和控件触发的数据事件 69928.13 疑难解答 70128.14 现实世界—处理事件驱动的编程 701第29章 组合框和列表框编程 70229.1 流线型决策支持前台 70229.2 用组合框约束查询选择 70229.2.1 设计决策支持查询 70329.2.2 创建窗体并添加列表框 70329.2.3 向窗体添加查询组合框 70429.3 添加代码生成查询的SQL语句 70729.4 将组合框窗体转换成Access数据项目 70929.4.1 导入并测试组合框窗体 71029.4.2 使“行来源”SQL语句与Transact- SQL语句一致 71029.5 详化一个列表框选择 71229.5.1 创建详化查询和添加列表框 71229.5.2 详化列表框编程 71329.6 给列表框和组合框添加新的特征 71429.6.1 重复列表框数据项和选择一个 数据项 71429.6.2 添加一个选项来选择所有国家 或产品 71529.7 向ADP转移时处理Jet专有函数 71829.8 疑难解答 71929.9 现实世界—Access组合框和列表框 720第30章 使用ADO记录集、窗体和控件 72130.1 利用VBA操纵记录集 72130.1.1 生成临时记录集 72130.1.2 应用Move方法 72330.1.3 在循环中使用EOF和BOF 72330.1.4 使用AbsolutePosition属性 72430.2 使用Find方法和书签 72430.3 修改记录集的记录 72630.3.1 编辑和增加记录 72630.3.2 删除记录 72630.4 由记录集填充组合框 72730.4.1 创建frmCombo2并改变组合框设计 72730.4.2 用代码填充组合框 72830.5 改变组合框列表的排序 72930.6 由记录集对象填充列表框 73130.7 格式化值列表组合框的列 73330.8 将frmComboVBA导出到一个Access 数据项目 73630.9 疑难解答 73730.10 现实世界—适应ADO 737第31章 Access 9x应用向Access 2000的 转换 73831.1 理解.mdb文件升级过程 73831.2 把不安全文件从Access 9x转换到 Access 2000 73831.2.1 在Access 2000中第一次打开 文件时升级 73831.2.2 在Access 2000中打开文件后升级 74031.3 转换安全的Access 9x文件 74131.3.1 在一个混合的Access 9x和Access 2000环境中进行升级 74131.3.2 升级后台数据库和工作组文件 74131.4 将Access 2.0应用文件.mdb升级为 Access 2000 74131.4.1 Win16函数调用转换为Win32函 数调用 74231.4.2 表上的32个索引限制 74331.4.3 将16位OLE控件转换为32位ActiveX 控件 74431.5 疑难解答 74431.6 现实世界—升级的诱惑 744
Access 2000数据库系统设计(PDF)---018目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试. 31.2.3 DAP设计模式 51.3 为Microsoft数据引擎创建 Access数据项目 51.3.1 新的ADP工具和对象 61.3.2 NorthwindCS项目和da Vinci工具箱的深入研究 61.4 OfficeVBA编辑器和Access的集成 91.5 DAP和DHTML的HTML源编辑器 101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动更正 151.8.5 与Office 2000相关的改进 151.9 安装Access 2000 171.9.1 Access 2000的初始安装 171.9.2 定制Access 2000 201.10 安装和配置Microsoft数据引擎 20 1.11 现实世界—为什么升级 23第2章 建立第一个Access 2000应用 252.1 理解Access的应用设计方法 252.2 从模板文件创建Access应用 262.3 熟悉联系管理应用 292.3.1 数据库窗口中的表对象 292.3.2 切换面板窗体 322.3.3 Access窗体 332.3.4 Access报表 352.3.5 Access模块 362.4 使用切换面板管理器 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化文档窗口 463.2.2 把文档窗口最小化为图标 473.2.3 表数据表视图中的工具栏 483.2.4 工具栏自定义 503.2.5 右击快捷方式菜单 523.3 使用功能键 533.3.1 全局功能键 533.3.2 字段、网格和文本框的功能键分配 533.4 设置默认的选项 543.4.1 系统默认值 553.4.2 数据表视图的默认值 583.5 使用Access帮助 593.5.1 上下文相关的帮助 593.5.2 “帮助”菜单 603.5.3 Microsoft Access的帮助窗口 613.5.4 “Office助手” 643.6 使用“数据库实用工具” 663.6.1 压缩和修复数据库 673.6.2 将数据库转换为Access 2000格式 683.6.3 将数据库转换为Access 97格式 693.6.4 添加切换面板窗体 693.6.5 创建.mde文件 703.7 疑难解答 703.8 现实世界—HTML帮助或者障碍 71第4章 使用Access数据库和表 724.1 定义Access数据库的元素 724.2 理解关系型数据库 744.3 使用Access数据库文件和表 754.3.1 Access系统数据库 754.3.2 Access 库数据库 754.4 创建一个新数据库 754.5 理解表和字段的属性 774.6 选择字段数据类型、大小和格式 804.6.1 为数值和文本数据选择字段大小 814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中直接创建一个表 964.9 设置字段的默认值 964.10 使用关系、关键字字段和索引 974.10.1 建立表之间的关系 984.10.2 实施参照完整性 1004.10.3 选择一个主键 1014.10.4 往表中添加索引 1024.11 改变字段和关系 1044.11.1 重新安排表中字段的顺序 1044.11.2 改变字段数据类型和大小 1054.11.3 改变表之间的关系 1064.12 复制和粘贴表 1074.13 疑难解答 1084.14 现实世界—数据库战略和表战术 108第5章 输入、编辑和验证表中的数据 1105.1 在Access表中输入测试数据 1105.2 使用键盘操作进行数据输入和编辑数据 1105.2.1 创建Northwind.mdb的试验用复本 1115.2.2 使用数据输入和编辑键 1115.2.3 用于Windows剪贴板操作的组合键 1125.2.4 在字段和文本框上使用快捷键 1135.2.5 设置数据输入选项 1145.3 向表中添加记录 1145.4 选择、追加、替换和删除表记录 1155.5 验证数据输入 1165.5.1 添加字段级有效性规则 1165.5.2 添加表级有效性规则和使用表达式生成器 1185.6 向Personnel Actions表添加记录 1195.7 输入Personnel Actions表数据和测试有效性规则 1205.8 疑难解答 1215.9 现实世界—批量数据输入 121第6章 排序、查找和筛选表中的数据 1236.1 理解排序和筛选的作用 1236.2 排序表的数据 1236.2.1 冻结表中某个字段的显示 1246.2.2 在单个字段上排序数据 1246.2.3 在多个字段上排序数据 1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段排序和复合筛选准则 1326.5.5 使用复合准则 1346.5.6 将筛选保存为查询与筛选的加载 1356.6 定制数据表视图 1366.7 复制、导出和邮寄排序和筛选后的数据 1386.8 疑难解答 1396.9 现实世界—基于计算机的排序和搜索 139第7章 链接、导入和导出表 1417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC链接Visual FoxPro表 1457.2.4 处理外部文件中的图像 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517.3.2 链接Excel工作表 1567.4 使用Microsoft Outlook和Exchange文件夹 1567.4.1 用Outlook导出和导入Jet 4.0表 1577.4.2 使用Exchange/Outlook向导的链接 1597.5 导入文本文件 1607.5.1 使用导入文本向导 1617.5.2 导入文本向导的高级选项 1637.5.3 使用分隔文本文件 1657.5.4 处理宽度固定的文本文件 1667.5.5 追加文本数据到一个现有的表 1677.6 使用剪贴板导入数据 1677.6.1 向一个表粘贴新记录 1687.6.2 通过从剪贴板上粘贴来替换记录 1707.7 从Access表导出数据 1717.7.1 通过Windows剪贴板导出数据 1717.7.2 将数据导出为一个文本文件 1727.7.3 以其他文件格式导出数据 1737.8 疑难解答 1737.9 现实世界—Microsoft的付出与回报 175第二部分 最大限度地利用查询第8章 设计Access 查询 1778.1 查询简介 1778.2 “简单查询向导”的使用 1778.3 使用查询设计窗口 1798.3.1 为查询选择字段 1808.3.2 按准则选择记录和排序显示 1828.3.3 创建更为复杂的查询 1838.3.4 改变查询列标题的名字 1848.3.5 将查询作为报表进行打印 1868.3.6 使用查询的数据 1878.4 创建其他的查询类型 1888.4.1 创建和使用简单的生成表操作查询 1888.4.2 向生成表查询添加参数 1908.5 疑难解答 1918.6 现实世界—查询设计优化 191第9章 理解查询操作符和表达式 1939.1 编写表达式作为查询准则和数据验证依据 1939.2 理解表达式中的元素 1949.2.1 操作符 1949.2.2 文字 1979.2.3 标识符 1989.2.4 函数 1989.2.5 固有的和命名常数 2059.3 创建Access表达式 2059.3.1 创建默认值的表达式 2069.3.2 使用表达式进行数据有效性验证 2069.3.3 作为查询准则的表达式 2069.3.4 计算查询字段值的表达式 2109.3.5 表达式的其他用途 2129.4 疑难解答 2129.5 现实世界—Access表达式代数学 212第10章 创建多表查询和交叉表查询 21410.1 介绍表的连接 21410.2 连接表以创建多表查询 21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加外部键下拉列表 22210.3.2 向一个表添加固定值查找列表 22510.4 向表或者查询添加子数据表 22610.4.1 表子数据表 22710.4.2 查询子数据表 22810.5 外连接、自连接和Theta连接 23010.5.1 创建外连接 23010.5.2 创建自连接 23110.5.3 创建带准则的不相等Theta连接 23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 23510.8.2 基于表中所有记录进行计算 23610.8.3 基于表中被选定的记录进行计算 23810.9 设计参数查询 24010.9.1 向月销售量查询添加一个参数 24010.9.2 指定参数的数据类型 24110.10 创建交叉表查询 24210.10.1 使用向导生成一个季度产品销售交叉表查询 24210.10.2 设计一个月产品销售交叉表查询 24510.10.3 使用固定列标题的交叉表查询 24610.11 从其他数据库中的表创建查询 24710.12 疑难解答 24810.13 现实世界—优化多表查询 249第11章 用操作查询修改数据 25111.1 操作查询入门 25111.2 用生成表查询创建新表 25111.2.1 设计和测试选择查询 25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录的值 25811.6 测试级联删除和更新 26111.6.1 创建测试表和建立关系 26111.6.2 测试级联删除 26211.6.3 测试级联更新 26211.7 疑难解答 26311.8 现实世界—操作查询之外的选择 26311.8.1 浏览模式更新 26411.8.2 基于窗体的更新 26411.8.3 用SQL语句进行更新 26411.8.4 用SQL Server存储过程进行更新 265第三部分 设计窗体和报表第12章 创建和使用窗体 26712.1 理解Access窗体和控件的角色 26712.2 使用窗体向导创建事务处理窗体 26812.2.1 为窗体选择数据源 26812.2.2 用窗体向导创建基本窗体 26812.3 使用窗体设计窗口 27212.3.1 窗体设计窗口的元素 27312.3.2 窗体设计工具栏按钮和菜单选择 27312.3.3 格式工具栏 27512.3.4 窗体的默认值 27512.3.5 使用自动套用格式 27612.3.6 改变对象的颜色 27712.4 选择、编辑、移动窗体元素和控件 28112.4.1 改变窗体页眉和窗体页脚的大小 28212.4.2 选择、移动和缩放单个控件 28212.4.3 将控件和网格对齐 28312.4.4 选择和移动多个控件 28312.4.5 对齐一组控件 28412.4.6 使用Windows 剪贴板和删除控件 28412.4.7 改变控件的颜色和边框样式 28512.4.8 改变控件的内容 28512.4.9 使用格式刷 28612.5 重新安排Personnel Actions窗体 28612.5.1 设置主窗体的属性 28712.5.2 设置子窗体的属性 28812.6 使用事务处理窗体 28912.6.1 窗体视图中的工具栏按钮 28912.6.2 使用Personnel Actions窗体 29012.6.3 向Personnel Actions表追加新记录 29012.6.4 编辑现有的数据 29212.6.5 提交和回退对表的改变 29212.7 在测试之后修改窗体或者控件的属性 29212.7.1 为数据输入而改变字段的次序 29212.7.2 从Tab键次序中删除字段 29312.8 现实世界—窗体设计技巧 293第13章 设计自定义多表窗体 29613.1 扩展你的窗体设计技能 29613.2 了解Access工具箱 29613.2.1 控件分类 29613.2.2 工具箱 29713.2.3 Access的控件向导、生成器和工具栏 29813.3 使用工具箱添加控件 30013.3.1 创建作为主窗体基础的查询 30113.3.2 创建一个具有页眉和页脚的空白窗体 30213.3.3 向窗体页眉上添加一个标签 30313.3.4 格式化文本和调整文本控件的大小 30413.3.5 创建绑定、多行、计算文本框 30513.3.6 改变属性的默认视图和获取帮助 30813.3.7 用向导添加选项组 30813.3.8 使用剪贴板复制控件到其他窗体 31113.3.9 使用组合和列表框 31213.3.10 创建一个组合框来查找特定的记录 31813.3.11 创建选项卡控件 32013.3.12 改变控件类型 32413.4 完成主Personnel Actions Entry窗体 32413.5 使用子窗体/子报表向导创建子窗体 32613.6 修改连续窗体的设计 32813.7 覆盖表的字段属性 32913.8 为打印窗体添加页眉和页脚 33013.9 疑难解答 33013.10 现实世界—Access的向导化 331第14章 打印基本报表和邮件标签 33314.1 理解窗体和报表之间的关系 33314.2 Access 报表类型的分类 33414.3 用“报表向导”创建分组报表 33414.4 使用Access的报表窗口 33814.5 使用自动套用格式和自定义报表样式 34014.6 修改基本的“报表向导”报表 34014.6.1 删除、重新部署和编辑现有的控件 34014.6.2 向报表添加计算控件 34514.6.3 对齐和格式化控件并调整行间距 34714.7 传统报表的边距调整和打印 35014.8 通过组的保持同页属性防止出现孤立的记录 35114.9 将多列报表作为邮件标签打印 35214.10 疑难解答 35314.11 现实世界—虚拟的无纸办公室 354第15章 高级报表 35515.1 从头开始创建报表 35515.2 报表数据的分组与排序 35515.2.1 分组数据 35615.2.2 数据分组排序 35815.3 从空白报表开始 35915.3.1 将一个报表用作一个子报表 35915.3.2 创建Monthly Sales by Category报表 36115.4 集成子报表 36415.4.1 向绑定报表添加链接子报表 36415.4.2 使用未链接子报表和未绑定报表 36615.5 自定义报表 36715.5.1 添加和删除报表的节 36715.5.2 分页控制以及打印页眉和页脚 36815.5.3 减少报表的长度 36815.6 向报表添加其他控件 36815.7 邮递报表快照 36915.8 疑难解答 37015.9 现实世界—报表设计的技巧 371第四部分 在Intranet和Internet上发布数据第16章 超级链接和HTML 37316.1 允许数据传送的Web页面 37316.2 Microsoft的Internet程序透视 37416.2.1 数字神经系统Windows DNA 37516.2.2 Microsoft的Internet相关的客户端产品 37616.2.3 Microsoft的服务器方组件 37816.2.4 Microsoft支持Internet相关产品的技术 37816.3 用超级链接在Web和Intranet中导航 37916.4 理解Access 2000的超级链接字段数据类型 38216.4.1 测试Northwind Orders表中的超级链接 38216.4.2 编辑和插入传统的超级链接 38416.4.3 链接到一个Word文档的书签 38416.4.4 指定到Intranet Server或者Web上的页面的超级链接 38716.4.5 为超级链接添加屏幕提示 38816.4.6 使用表超级链接打开一个Access对象 38816.5 在Access控件上使用超级链接 38916.6 指定其他Internet URL 39016.7 疑难解答 39116.8 现实世界—到Internet或者不到Internet 391第17章 从表和查询生成Web页面 39317.1 简化基于Web的决策支持方式 39317.2 将表和查询数据表导出到HTML 39317.2.1 创建一个非格式化的Web页面 39517.2.2 从一个查询创建 Web页面 39817.3 使用HTML模板 39917.3.1 使用包含在Office 2000中的AccessHTML模板 39917.3.2 用模板导出一个查询数据表 40117.4 将报表导出到HTML 40217.5 从HTML表导入数据 40417.6 创建动态 Web页面 40617.6.1 理解ASP 40717.6.2 为ASP创建一个ODBC数据源 40817.6.3 将Access查询导出为ASP 40817.7 疑难解答 41017.8 现实世界—ASP和DAP 410第18章 设计数据访问页 41218.1 转向一个新的Access窗体模型 41218.2 理解Access的动态HTML实现 41318.2.1 支持DHTML和DAP的技术 41318.2.2 DOM HTML和DHTML 41418.3 DAP入门 41518.3.1 Review Products页 41518.3.2 Review Orders页 41818.3.3 HTML源代码编辑器 41918.3.4 Analyze Sales数据透视表页 42018.3.5 Sales页 42118.3.6 读写页 42318.4 使用“数据页向导”创建简单的DAP 42418.5 使用自动创建数据页创建纵栏式DAP 42718.5.1 使用记录浏览控件的筛选和排序特征 42818.5.2 修改自动创建数据页DAP的设计 42918.5.3 改变记录浏览控件的属性 43118.6 从头开始创建DAP 43218.6.1 用页字段列表添加一个数据透视表 43218.6.2 数据透视表列表控件在IE 5.0中的使用 43318.6.3 在IE5.0中更改透视表的属性 43418.7 用数据透视表列表向DAP添加图表 43518.7.1 为数据透视表列表创建一个查询 43518.7.2 添加和格式化数据透视表列表 43718.7.3 使用图表向导向数据透视表列表绑定一个Office 图表 43818.8 生成分组页 44018.8.1 创建一个三级层次分组页结构 44018.8.2 填充明细内容 44218.8.3 添加相关表的字段和标题 44318.9 疑难解答 44418.10 现实世界—DAP准备好大展宏图了吗? 444第五部分 集成Access与其他Office 2000应用程序第19章 往窗体和报表中添加图表和图形 44719.1 用图形丰富窗体和报表 44719.2 用Microsoft Graph 2000创建图形和图表 44719.2.1 创建作为图形基础的查询 44819.2.2 使用“图表向导”创建非链接图形 44919.2.3 更改图形的设计特征 45219.2.4 从交叉表查询中创建图形 45519.2.5 把图形链接到表或查询中的单个记录上 45719.3 在页中使用图表Web控件 45819.3.1 为图表Web控件设计查询 45919.3.2 添加基于单数据列系列的office图表 45919.3.3 更改Office图表的属性 46219.4 往窗体或报表中添加未绑定对象控件 46319.4.1 在Personnel Actions查询中包含相片 46319.4.2 在Personnel Actions窗体中显示雇员的图像 46319.4.3 缩放图形对象 46519.4.4 检查位图图像文件格式 46619.5 使用图像控件 46719.6 疑难解答 46819.7 现实世界—可视化数据 468第20章 与Microsoft Excel一起使用Access 47020.1 用数据透视表切分数据 47020.2 使用Access的数据透视表向导 47020.2.1 为数据透视表创建查询 47120.2.2 用向导产生一个数据透视表窗体 47220.3 在Excel中处理数据透视表 47520.3.1 提高数据透视表的格式化程度 47520.3.2 用数据透视表切分数据 47720.3.3 通过筛选进行切分 47820.3.4 折叠或展开明细数据的显示 47920.3.5 更改维的坐标轴 48120.4 格式化数据透视表报表 48120.5 从数据透视表中创建数据透视图表 48220.6 把Excel用作OLE服务器 48420.6.1 在窗体中嵌入常规的Excel工作表 48420.6.2 从OLE对象中抽取值 48620.6.3 链接到Excel工作表中一定范围的单元格 48720.7 疑难解答 48920.8 现实世界—OLAP和数据透视表 489第21章 与Microsoft Word和邮件合并一起使用Access 49221.1 集成Access 2000和Word 2000 49221.2 使用Access邮件合并向导 49221.2.1 创建和预览新套用信函 49221.2.2 使用已有的主合并文档及新数据源 49421.3 与Access数据库一起使用Word 2000的邮件合并功能 49721.3.1 用Microsoft查询和ODBC数据源来创建新的邮件合并数据源 49721.3.2 从已有查询创建套用信函 50121.4 在Access表中嵌入或链接Word文档 50221.4.1 在表中嵌入或链接Word 2000文档 50321.4.2 创建窗体以显示被嵌入文档 50421.5 疑难解答 50621.6 现实世界—Microsoft查询和OLE DB 506第六部分 使用高级Access技术第22章 关系数据库设计与实现的研究 50922.1 查看Access 2000新增的数据库设计功能 50922.2 集成对象和关系数据库 51022.3 理解数据库系统 51022.3.1 数据库设计的目标 51022.3.2 数据库设计过程 51122.3.3 数据库设计的面向对象方法 51222.3.4 数据库术语 51422.3.5 关系数据库中表和关键字的类型 51522.4 数据建模 51522.4.1 应用数据库 51622.4.2 主题数据库 51622.4.3 图表化数据模型 51722.4.4 数据库模式 51722.5 把数据规范化到关系模型 51822.5.1 规范化规则 51822.5.2 关系类型 52222.6 使用Access 2000的“表分析器向导” 52522.7 用数据库文档管理器创建数据字典 52822.8 使用Access索引 52922.9 实施数据库完整性 53022.9.1 保证实体完整性和可审计性 53022.9.2 维护参照完整性 53322.10 疑难解答 53322.11 现实世界—为什么学习关系理论? 533第23章 结构化查询语言 53523.1 理解Access 2000中SQL的角色 53523.2 使用Access学习SQL 53623.3 理解SQL语法 53723.4 用SQL编写SELECT查询 53723.4.1 使用SQL标点号和符号 53923.4.2 使用SQL语句创建Access查询 53923.4.3 使用SQL聚集函数 54123.4.4 用SQL创建连接 54223.4.5 使用联合查询 54323.4.6 实现子查询 54523.5 编写操作和交叉表查询 54623.6 添加IN以使用其他数据库中的表 54623.6.1 操作其他Access数据库 54723.6.2 对其他数据库类型使用IN子句 54823.6.3 用Jet DDL创建表 54823.6.4 比较ANSI和Jet SQL 54923.6.5 Access中SQL保留字 54923.6.6 对应于SQL关键字的Jet SQL保留字 54923.6.7 用于替代ANSI SQL关键字的Access函数和操作符 55023.6.8 不存在于ANSI SQL中的Jet SQL保留字、操作符和函数 55123.6.9 Jet 的 DISTINCTROW 和 SQL 的DISTINCT关键字 55223.6.10 Jet SQL保留字不支持的通用 ANSI SQL关键字和功能 55423.7 在窗体、报表和宏中使用SQL语句 55523.8 疑难解答 55523.9 现实世界—把SQL作为第二种语言 555第24章 多用户网络应用的安全 55824.1 网络化Access 2000应用程序 55824.2 在网络化环境下安装Access 55924.3 与其他用户共享你的Access数据库文件 55924.3.1 为文件共享创建一个文件夹和系统文件 55924.3.2 准备共享你的数据库文件 56224.3.3 为文件共享而拆分数据库 56224.3.4 修补链接、数据源和DAP的超链接 56424.3.5 用“工作组管理员”选择工作组 56524.4 使用命令行来打开共享数据库 56624.5 维护数据库安全 56824.5.1 指定局域网上数据库安全的原则: 56824.5.2 用密码保护单个数据库 56924.5.3 管理组和用户 57024.6 理解数据库对象所有权 57524.6.1 对象的所有者权限 57524.6.2 更改数据库对象的所有权 57524.7 授予和撤消对数据库对象的访问权限 57624.7.1 使用安全向导更改权限 57724.7.2 手工更改组权限 58024.7.3 给特定用户授予其他权限 58124.7.4 授予对其他工作组中某数据库的访问权限 58124.8 在网络上共享数据库 58224.8.1 在Windows 9x网络上共享数据库文件 58224.8.2 用户级安全共享文件 58324.8.3 共享来自网络服务器的数据库文件 58424.9 访问共享的工作组和数据文件 58424.9.1 粘附被共享的工作组系统文件 58524.9.2 刷新到共享数据文件的链接 58524.10 管理数据库和应用 58624.10.1 备份和恢复数据库 58624.10.2 压缩和修复数据库文件 58724.10.3 加密和解密数据库文件 58724.11 疑难解答 58824.12 现实世界—共享文件与客户/服务器后端 588第25章 创建Access数据项目 59025.1 将Access转变成客户/服务器模式 59025.2 理解MSDE的作用 59125.2.1 SQL Server版本与特性 59125.2.2 MSDE的优点 59225.3 安装与启动MSDE 59225.4 熟悉ADP 59525.4.1 适应MSDE与SQL Server 7.0的特性 59525.4.2 启动Northwind CS示例工程 59625.5 使用项目设计器 59725.5.1 MSDE表操作 59825.5.2 浏览MSDE视图 60025.5.3 图形化表关系 60225.5.4 编写存储过程 60325.5.5 为表添加触发 60425.6 使用升迁向导来创建ADP 60525.6.1 运行Access升迁向导 60525.6.2 检查向导成功还是失败 60725.7 使用DTS向导压缩数据库 60825.8 连接远程MSDE数据库 61025.8.1 使用SQL Server客户网络实用工具 61025.8.2 验证与使用远程数据库 61125.8.3 建立MSDE安全 61225.9 疑难解答 61325.10 现实世界—尝试中的 ADP 61425.10.1 ADP的缺陷 61425.10.2 SQL Server 的优点:ADP、MSDE和SQL Server 7.0 614第七部分 Access应用的程序设计和转换第26章 编写VBA代码 61726.1 理解VBA在Access中的作用 61726.2 介绍VBA 6.0 61826.2.1 在什么情况下使用VBA代码 61826.2.2 VBA命名习惯 61826.2.3 模块、函数和子过程 61926.2.4 模块元素 62026.2.5 VBA和Access模块的引用 62126.2.6 VBA中数据类型和数据库对象 62226.2.7 变量和命名习惯 62326.2.8 符号常量 62726.2.9 VBA命名的可选参数 62826.3 控制程序流 62826.3.1 转移和标号 62926.3.2 条件语句 62926.3.3 重复操作:循环 63126.4 处理运行错误 63326.4.1 使用Err对象查找错误类型 63426.4.2 在窗体或者报表模块中使用Error事件 63426.5 浏览VBA编辑器 63526.5.1 模块窗口的工具栏 63526.5.2 模块快捷键 63626.5.3 VBA帮助系统 63726.6 检验实用工具函数模块 63726.6.1 向IsLoaded()函数中加一个断点 63826.6.2 用Debug对象把结果输出到立即窗口 63926.6.3 使用文本比较选项 64026.7 现实世界—宏的应用 640第27章 理解通用数据访问、OLE DB和ADO 64227.1 透视Microsoft新的数据访问组件 64227.2 与多种数据源的接口 64327.2.1 用OLE DB自底向上重新设计 64327.2.2 将OLE DB接口映射到ADO 64527.2.3 比较ADO和DAO对象 64627.3 创建ADODB.Recordsets 64727.4 用代码将控件绑定到记录集 64927.5 使窗体可修改 65027.5.1 连接到NorthwindCS MSDE数据库 65127.5.2 用DAO3.6代替ADO2.1 65127.6 浏览顶层ADO属性、方法和事件 65227.7 与ADODB.Connection对象一起工作 65427.7.1 Connection的属性 65427.7.2 Errors集合和Error对象 65627.7.3 Connection的方法 65727.7.4 Connection事件 65927.8 使用ADODB.Command对象 66027.8.1 Command对象的属性 66027.8.2 Parameters集合 66127.8.3 Parameter对象 66127.8.4 Command方法 66327.8.5 把参数值传递给存储过程的代码 66427.9 理解ADODB.Recordset对象 66627.9.1 Recordset的属性 66627.9.2 Fields集合和Field对象 66927.9.3 Recordset的方法 67127.9.4 断开连接的Recordset 67427.9.5 Recordset事件 67427.10 疑难解答 67527.11 现实世界—努力学习和使用ADO 675第28章 用VBA6.0响应事件 67728.1 介绍事件驱动的编程 67728.2 理解类模块的角色 67728.2.1 Main Switchboard类模块 67828.2.2 在Main Switchboard窗体中的事件处理代码 67928.3 在对象浏览器和项目浏览器中检查工程类模块成员 68128.4 通过命令按钮向导添加事件处理代码 68228.5 用函数来响应事件 68428.6 理解Access 2000的事件指令集 68528.7 使用Access 2000的Docmd方法 68928.8 用命令条对象定制应用 69428.9 指定一个自定义CommandBar并设置其他启动属性 69628.10 用VBA引用Access对象 69728.10.1 引用打开的窗体或报表及其属性 69728.10.2 引用控件及其属性 69828.10.3 引用子窗体或主窗体中的控件 69928.11 使用另一种集合语法 69928.12 响应由窗体和控件触发的数据事件 69928.13 疑难解答 70128.14 现实世界—处理事件驱动的编程 701第29章 组合框和列表框编程 70229.1 流线型决策支持前台 70229.2 用组合框约束查询选择 70229.2.1 设计决策支持查询 70329.2.2 创建窗体并添加列表框 70329.2.3 向窗体添加查询组合框 70429.3 添加代码生成查询的SQL语句 70729.4 将组合框窗体转换成Access数据项目 70929.4.1 导入并测试组合框窗体 71029.4.2 使“行来源”SQL语句与Transact-SQL语句一致 71029.5 详化一个列表框选择 71229.5.1 创建详化查询和添加列表框 71229.5.2 详化列表框编程 71329.6 给列表框和组合框添加新的特征 71429.6.1 重复列表框数据项和选择一个数据项 71429.6.2 添加一个选项来选择所有国家或产品 71529.7 向ADP转移时处理Jet专有函数 71829.8 疑难解答 71929.9 现实世界—Access组合框和列表框 720第30章 使用ADO记录集、窗体和控件 72130.1 利用VBA操纵记录集 72130.1.1 生成临时记录集 72130.1.2 应用Move方法 72330.1.3 在循环中使用EOF和BOF 72330.1.4 使用AbsolutePosition属性 72430.2 使用Find方法和书签 72430.3 修改记录集的记录 72630.3.1 编辑和增加记录 72630.3.2 删除记录 72630.4 由记录集填充组合框 72730.4.1 创建frmCombo2并改变组合框设计 72730.4.2 用代码填充组合框 72830.5 改变组合框列表的排序 72930.6 由记录集对象填充列表框 73130.7 格式化值列表组合框的列 73330.8 将frmComboVBA导出到一个Access数据项目 73630.9 疑难解答 73730.10 现实世界—适应ADO 737第31章 Access 9x应用向Access 2000的转换 73831.1 理解.mdb文件升级过程 73831.2 把不安全文件从Access 9x转换到Access 2000 73831.2.1 在Access 2000中第一次打开文件时升级 73831.2.2 在Access 2000中打开文件后升级 74031.3 转换安全的Access 9x文件 74131.3.1 在一个混合的Access 9x和Access2000环境中进行升级 74131.3.2 升级后台数据库和工作组文件 74131.4 将Access 2.0应用文件.mdb升级为Access 2000 74131.4.1 Win16函数调用转换为Win32函数调用 74231.4.2 表上的32个索引限制 74331.4.3 将16位OLE控件转换为32位ActiveX控件 74431.5 疑难解答 74431.6 现实世界—升级的诱惑 744
《.net程序设计》 大作业 学生姓名: 郝琛 学 号: 12 学 院: 电子与计算机科学技术学院 专 业: 网络工程 题 目: 图书管理系统 成 绩: 指导教师: 王素红 2010 年 11 月 22 日 1.设计目的 1.对图书资源进行分类,发布到网上,以供读者阅读。 2.为读者提供图书检索功能; 3.读者能方便地阅览电子图书; 4. 读者能方便地建立书签; 5. 读者能对书目进行评论; 6. 对读者的用户名、密码及权限进行管理。 2.设计内容 (1)系统应符合图书馆信息管理的规定,满足图书馆日常管理的工作需要,并达到操作过程中的直观、方便、实用、安全等要求; (2)系统采用模块化程序设计方法,即便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。 (3)系统应具备数据库维护功能,及时根据用户需求进行数据的添加,删除,修改等操作。 3.需求描述 整个软件生命周期中,开发所占的费用和时间都很小。后期维护工作一般要占整个软件生命周期的80% 以上。所以系统分析很重要,一个好的系统分析可以减少很多后期维护工作。 下面以一所学校的图书馆为例子进行分析,画出图书馆的组织结构图如下: 图1.1 图书馆的组织结构图 该图书馆各个部门负责的主要业务如下: (1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加数量。 (2)目录厅主要负责读者查询工作,包括可借图书(按图书名称或关键字查询); (3)借阅组主要负责图书流通、查询统计、借阅查询等工作。 (4)阅览室、工具书室主要负责读者阅览工作,包括:阅览各种杂志、报纸、阅览各种工具书。 下面绘制出图书馆流通业务中借书的流程图: (1)读者在目录厅查阅索引卡; (2)读者写出所借图书的分类号、种次号、交给图书管理员,并出示本人的借书证; (3)图书管理员根据图书的分类号、种次号到书库找书; (4)将图书交给读者,并由读者填写所借图书的借书卡。 (5)图书管理员把借书卡保存到写有该读者借书证号的口袋里。 得出该图书馆业务流程图如下所示: 图1.2 图书馆业务流程图 4.系统详细分析设计 数据库设计是计算机管理信息系统中很重要的部分,设计质量的好坏、数据结构的优劣将直接影响到管理系统的成败。数据库设计的基本原则是在MIS总体信息方案的指导下,各个库应当为它所支持的管理目标服务,在设计数据库系统时,应当重点考虑以下几个因素: (1)数据库必须层次分明,布局合理。 (2)数据库必须高度结构化,保证数据的结构化、规范化和标准化。这是建立数据库和进行信息交换的基础。数据结构的设计应该遵循国家标准和行业标准,尤其是应重视编码的应用。 (3)在设计数据库时,一方面要尽可能的减少冗余度,减少存储空间的占用,降低数据的一致性问题发生的可能性;另一方面,还要考虑适当的冗余,以提高运行速度、降低开发难度。 (4)必须维护数据的正确性和一致性,在MIS中,多个用户共享数据库,由于并行开发操作,可能影响数据的一致性,因此必须用加锁等办法保证数据的一致性。 (5)设定相应的安全机制,由于数据库的信息对特定用户有特殊的保密要求,保密机制必不可少。 数据库需求分析 根据以上的需求分析和数据组织,开始设计数据结构,即根据需求勾画出实体/关系图(E/R)。在概念上,E/R图代表的是系统需要的数据及其这些数据之间的关系。如图所示的实体/关系图。 实体/关系图 从图中可以看出,在这个系统中实际存在的实体:图书和借阅人,其中借阅人和图书是多对多关系,针对本系统,通过对图书借阅管理的内容和数据流程分析,设计数据项和数据结构如下: (1)图书基本信息,其数据项有图书编号、图书名称、作者、出版社等。 (2)借阅人基本信息,其数据项有借阅人编号、借阅人姓名、电话等。 (3)图书借阅登记,其数据项有借阅序号、借阅图书编号、借阅人编号等。 为了实现图书信息录入的方便性与规范性以及相关的统计功能,还应增加出版社信息与图书分类信息。 (4)出版社信息,其数据项有出版社编号、出版社名称、地址、电话、传真等。 (5)图书分类信息,其数据项有分类编号、分类名称、同一类型图书数目。 同时针对于本系统的多用户使用特点,增加用户信息表: (6)管理员信息表,其数据项有用户名、密码。 为了实现图书借阅超期罚款制度,还应增设罚金规则表: (7)罚金规则表,其数据项包括免费使用天数、罚金费率、借阅数量。 数据库逻辑结构设计 数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。如果程序运行过程中需要总金额,可以实时计算。不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。这就是所谓的第四范式。数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。 另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成INT或BIT型。建议实际应用中定义成INT字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的 值来解决,这样就避免了修改数据库结构。 数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使当时没有用到,也要将它留在数据库中作为备用字段以便将来扩充。 程序一旦开始编码,就应该尽量避免再修改数据库。因为如果数据库结构一旦改变,所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。错误越改越多,越改越乱,最终导致程序的失败。 (1)规划有效的索引 a.在组合表的列中创建索引,包括主关键字和外部关键字所在的列。 b.在列或类组合中创建唯一的索引能增强唯一性。 c.浏览索引并卸载不使用的索引。索引需要一定硬盘空间和时间来维护。具有较高数据插入操作频率的数据库最好不要索引。有较高读操作频率的数据库应该有更多的索引。 d.避免在簇索引中包括不必要的列。在可能的情况下,使用较小的数据类型,例如用varchar替代char。 e.考虑使用簇索引来支持排序和范围化查询。在为数据检索优化表时,簇索引必须支持数据的分组索引。为簇关键字选择列或列组,簇关键字以经常需要的顺序排序数据或以必须被一起访问的记录而分组记录。 f.创建支持一般查询的查找参数索引。具有高选择性的列是索引的最好候选列。具有高密度的列是索引糟糕的候选列。 (2)使用约束实现数据的完整性 PRIMARY KEY约束在表中定义了主关键字,它是行唯一的标识符,它可以强制实体完整性。在使用PRIMARY KEY约束时考虑以下事实: a. 每个表只能有一个PRIMARY KEY约束。 b. 键入的值必须是唯一的。 c. 不允许有空值。 d. PRIMARY KEY约束在指定的列创建唯一的索引,可以指定簇索引和非簇索引(如果非簇索引先前并不存在,簇索引是默认的)。 UNIQUE约束指定,在一列中的两行不能有相同的值。该约束使用唯一的索引来强制实体的完整性。在已有一个主关键字时UNIQUE约束很有用,例如雇员号,但是必须保证其他标识符(例如,雇员驾驶证号)也是唯一的。在使用UNIQUE约束时,考虑以下事实; a. 允许有空值。 b. 在一个表中可以设置多个UNIQUE约束。 c. 可以将UNIQUE约束运用于具有唯一值的单列或多列,但不能用于表的主关键字。 d. 通过在指定的列或列组中创建唯一的索引,可以使UNIQUE索引得到强制 系统主要功能模块的创建 本系统是功能结构完整的图书管理系统,程序涉及的窗体和模块相对较多。在详细介绍各个窗体之前,首先把本系统的主要功能模块汇总如下: (1)用户登录模块设计(index_book.aspx) 用户登录模块主要根据用户登录的信息,与数据库中信息成功匹配后,获得其相应的操作权限。用户也可以不进行登录,但只能浏览书籍的基本信息,不能进行借书等操作功能。 (2) 用户信息模块设计(Regedit.aspx) 为了减轻图书管理员的工作压力,允许读者自己填写相关信息,管理员只要在后台对相关读者信息进行审核即可。 (3) 图书详细信息模块设计(Book_Info.aspx) 读者可以查看具体书籍的信息,包括这本书是否已经借出等相关信息,登录的用户还可以对未借出的书籍进行在线借阅。 (4)图书搜索模块(Book_class.aspx) 读者可以在左边菜单栏内对图书名称或关键字进行模糊查询,根据搜索结果会显示出相关信息,单击相应的名称还可以查看具体书籍的信息 (5)图书管理员后台登录模块(Book_admin/Login.aspx) 图书管理员可以登录此后台进行相关业务的管理,包括书籍的添加,读者信息审核,读者书籍归还等操作 (6)用户类别管理(Book_admin/Mem_Class.aspx) 对用户权限的设置,可以对不同用户进行分类,可以设置不同的属性 (7)书籍类别的管理(Book_admin/Book_Class.aspx) 对不同的图书进行分类,使用户更好的查找,也便于图书的维护。 (8)出版社信息管理(Book_admin/Pub_Class.aspx) 考虑到出版社的有限,也是为了能更好的维护出版社信息,作揖作为独立一个模块进行维护,能大量减少管理员的工作。 (9)注册用户管理(Book_admin/index.aspx) 对注册读者的信息进行审核,核实读者信息的正确性,管理员可以修改注册用户的信息及审核的一些状态。(只有通过审核的读者才能借阅书籍) (10)图书信息的管理(Book_admin/Manage_Book.aspx) 管理员可以添加,修改,删除书籍,并且可以时时进行维护 (11)图书归还管理(Book_admin/Borw_Book.aspx) 后台页面将显示用户还未归还书籍的相关信息,管理员也可以通过模糊或精确查询查询有关用户未还书的信息,可以查看具体借书的信息及超时,罚款等信息。 建立应用程序层次结构 在介绍系统中各个主要功能实现模块之前,首先把本系统的整个层次结构归纳如下(为了制图方便有些功能模块已合并,这里只是简单的对整个系统有初步印象,使用户操作起来更方便)见图4-1所示: 图4.1 系统运行层次结构图 图书基本情况的录入、修改、删除等基本操作。 办理借书卡模块。 实现借书功能。 实现还书功能。 能方便的对图书进行查询。 对超期的情况能自动给出提示信息。 具有数据备份和数据恢复功能。 4.1开发工具及系统运行环境 开发工具: MDAC,ASP.NET,IIS 5.1,SQL Server 2000数据库,Microsoft Visual Studio 2008 运行环境: 在开始进行ASP.NET编程之前,要了解一下运行ASP.NET的环境需求。首先需要安装Web服务器IIS,如果没有安装过MDAC,还要安装MDAC,最后安装ASP.NET的运行环境.NET Framework。 IIS是ASP.NET惟一可以使用的Web服务器,所以,为了能够运行ASP.NET,就一定要安装IIS。 (1) IIS的安装 如果使用的是Windows 2000操作系统,那么安装的IIS的版本是IIS 5.0;如果使用的是Windows XP操作系统,那么安装的IIS的版本是IIS 5.1。 IIS是随操作系统一起提供的,如果已经安装过了IIS,那么就可以在控制面板的管理工具中找到它(在英文的版本中,它的名字是Internet Information Services;在中文的版本中,它的名字是Internet服务管理器)。如果没有找到IIS,那么就需要安装。 首先打开控制面板,使用它的“增加/删除程序”功能,选择“添加/删除Windows组件”功能,显示“Windows组件向导”对话框,如图B-1所示。 图B-1 “Windows组件向导”对话框 在此对话框的“组件”列表框中选中“Internet信息服务”复选框,并单击“详细信息”按钮,选择需要安装的IIS子组件,如图B-2所示。在所有选择都完成之后,单击“确定”按钮开始安装。 图B-2 “Internet信息服务”对话框 安装成功之后,只要启动Windows,IIS就会自动启动。IIS的大部分程序都安装在\winnt\system32\inetsrv中,同时创建了一个\InetPub目录用于存放Web网页文件。 (2) 使用IIS 由于IIS是在Windows启动的时候自动启动的,所以,如果没有特别设置,一旦进入Windows,IIS就是开启的状态。为了使用IIS,可以在控制面板的管理工具中找到Internet服务管理器。它的管理界面如图B-3所示。 图B-3 IIS管理界面 为了测试现在IIS是否工作,可以在浏览器中输入“http://cindyking/ localstart.asp”、“http://127.0.0.1/localstart.asp”(这里127.0.0.1是本机默认的IP地址)或者“http://localhost/ localstart.asp”等URL,如果Windows 2000附带的一个测试页localstart.asp可以成功显示,那么表示IIS安装成功。 (3)目录管理 为了能够访问到IIS管理的页面,需要把编制好的页面和程序放置在一个目录中,这个目录对于IIS来说就是主目录。主目录中存放着HTTP请求所需要的资源。所以,在使用IIS之前还要做的一件事情就是设置主目录。 用右击Internet服务器管理程序中的默认Web站点,从弹出的快捷菜单中选择“属性”命令,显示图B-4所示的对话框。在“主目录”选项卡中可以看到,IIS允许有三种信息来源:此计算机上的目录、另一计算机的共享位置和重定向到URL。选择不同的选项,就可以在下面的文本框中输入相应的信息来获取相应的主目录。 图B-4 设置主目录 2.数据库安装 本系统采用的数据库是SQL Server 2000数据库,如本地机器没有安装SQL Server 2000数据库,请先安装SQL Server 2000数据库(SQL Server 2000试用软件请到“http://www.microsoft.com./china/sql/evaluation/trial/”下载),然后将本实例中的数据库附加到企业管理器中。附加数据库的具体方法如下: (1).单击“开始”菜单,在“所有程序”目录下选择“Microsoft SQL Server/企业管理器”选项,打开SQL Server 2000中的“企业管理器”,然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中,选择“所有任务”/“附加数据库”菜选项,如图B-5所示。 图B-5在企业管理器中附加数据库 (2).将弹出“附加数据库”对话框,如图B-6所示,单击“要附加数据库的MDF文件”文本框后的【…】按钮,弹出“浏览现有文件对话框”,在浏览现有文件对话框中选择数据库文件POS.MDF,如图B-6所示。 图B-6 附加数据库 (3).单击【确定】按钮,将弹出“附加数据库顺利完成”提示对话框,单击【确定】按钮,即可完成数据库的附加操作。 注意:登录SQL Server 2000的用户名为sa,密码为空。 由于本系统采用的是ADO连接数据库方法,而且系统中又有相应的配置服务器窗口,所以只要安装好SQL Server2000及数据库的附加(就是步骤2的配置);用户可以直接运行Manager.exe执行文件,可以操作本系统的功能。 3. 第三方控件的安装 如果用户想在本程序的基础上继续开发新的功能,需要安装第三方控件,因为在本系统中使用了大量的第三方控件,想要顺利的通过程序的编译,必需安装控件,否则将通不过编译,也无法继续完善新的功能。 本系统使用到的所有控件放在源代码同一目录下,在“bin”文件目录下面,主要包括Ajax.dll,aspnetpager.dll和FreeTextBox.dll。 打开Microsoft Visual Studio 2008开发环境,打开页面,在左边的“工具箱”中打开“Web窗体”空白处右击点“添加/移除项…”见下图B-7 4.2系统实现 可以写上程序的界面及相关程序,必须要有对界面及代码的解释内容,不能代码原样拷贝。 5.系统测试 5.1测试方法 (1)逻辑覆盖法。 (2)等价划分法。 (3)边值分析法。 (4)因过图法。 (5)错误猜测法。 (6)综合分析法。 5.2测试环境 5.3测试用例及测试结果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值