经过一番的研究,左联接所得结果的记录数与左边表的记录数相同. 右联接所得结果的记录数与右边表的记录数相同.

lettermail4 2004-04-30 01:46:26
经过一番的研究,左联接所得结果的记录数与左边表的记录数相同. 右联接所得结果的记录数与右边表的记录数相同. 完全联接的记录数小于两个表的记录数之和
(一般情况下)
请问是不是这样的?
...全文
58 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
imsam 2004-04-30
  • 打赏
  • 举报
回复
未必,如果两个表中都有相关的NULL值。
ghosthjt 2004-04-30
  • 打赏
  • 举报
回复
左联接时,假设连接条件是t1.ID=t2.ID
如果t2.id中有10条id相同的记录,则结果集中就有10条记录
右联接时原理也是一样的,结果集中有几条记录关键在于两个表记录在条件下是否是唯一一条
lettermail4 2004-04-30
  • 打赏
  • 举报
回复
吸"星"大法之---吸收功
realgz 2004-04-30
  • 打赏
  • 举报
回复
elect 1.id,t1.name,t2.monicker
from t1 left join t2
on t1.id=t2.id and charindex(t1.name,t2.monicker)<>0
我们运行下这个查询,然后我们可以自己体会到“原样保留”这4个字的意思是不删除,也不放大查询中指定不按照Join条件进行过滤筛选的结果。

单独的join 使用威力终究有限,与group by 的往往才是 快乐查询/提高效率的 源泉。

--接下去要介绍的东西太多,我就没头绪了,只能到此为止。
gzapu 2004-04-30
  • 打赏
  • 举报
回复
学习
lynx1111 2004-04-30
  • 打赏
  • 举报
回复
谢谢!学习ing......
realgz 2004-04-30
  • 打赏
  • 举报
回复
要做事了,先废话这么多。
realgz 2004-04-30
  • 打赏
  • 举报
回复
在join 的时候其实可以充分发挥你的想象力,我们不仅可以使用任何可能使用的可以出现逻辑结果的运算符号,还可以使用任何确定/不确定/运算出来的列值进行join
看看这个例子(从老文章里抄的):
emp_no name
001 Tom
002 Green
003 Sam
004 Sun
005 Hale
想变成两列显示
emp_no1 name1 emp_no2 name2
001 Tom 004 Sun
002 Green 005 Hale
003 Sam

于是有了
select e1.name as name1,e1.emp_no as emp_no1,e2.name as name2,e2.emp_no as emp_no2
from
(select emp.* ,(select count(*) from emp x where x.emp_no<=emp.emp_no) as cnt from emp) e1,
(select emp.* ,(select count(*) from emp x where x.emp_no<=emp.emp_no) as cnt from emp) e2,
where (e1.cnt-((select count(*) from emp)/2))*=e2.cnt
现在,你对join 的可以发挥想象力的能力还有多少怀疑?

所谓的 outer join 其实是放宽 Join 筛选条件,——会有这样的效果:按照原样保持不符合筛选条件的行集,但是对于不保留的方面,全部用NULL值表示状态未知。
realgz 2004-04-30
  • 打赏
  • 举报
回复
由于多表连接可以有层次理解,最终也可以简化成2表连接的关系,就不多说了。
join 在数学的理解上可以认为是对两个表的笛卡儿积进行筛选,换句话说,join 能得到的最大集是笛卡儿积,最小集是0行的结果集。
为了讨论,我们先假设有表
t1:
id name
1 Tom
2 Sum
3 Lee
t2:
id monicker
1 Fat Tom
1 Picker
2 Heller

查询
select 1.id,t1.name,t2.monicker from t1, t2 ( select 1.id,t1.name,t2.monicker from t1 cross join t2)
就是返回两个表的笛卡儿积,将返回一个9行的数据,这个9行数据的成因是什么呢?自然是因为对于t1的每行数据在t2 里都有3种跟他join 的可能性。
但是我们承认这样的查询除了获得体育彩票之外,在绝大部分情况下都不是我们需要的查询。
最常用的筛选符号自然是“=”号把上面的语句改成:
select 1.id,t1.name,t2.monicker from t1 join t2
on t1.id=t2.id
(select t1.id,t1.name,t2.monicker from t1, t2
where t1.id=t2.id)
就是我们最常用的join 类型了。
但请注意,我们说过我们“进行筛选”,但是没有说过用什么符号进行筛选,看看下面这个查询
select 1.id,t1.name,t2.monicker from t1 join t2
on 1=1
结果就相当于cross join 了
那请思考一下下面这个 查询有什么效果

select 1.id,t1.name,t2.monicker
from t1 join t2
on t1.id=t2.id and charindex(t1.name,t2.monicker)<>0

先想想,然后看有什么效果
internetcsdn 2004-04-30
  • 打赏
  • 举报
回复
进来,
学习
realgz 2004-04-30
  • 打赏
  • 举报
回复
反正不想工作我来讲讲吧,说错了不要揍我。
lynx1111 2004-04-30
  • 打赏
  • 举报
回复
进来学习一下。

连接的机制和原理是什么?谁能讲讲?
8992026 2004-04-30
  • 打赏
  • 举报
回复
哈哈,全错了(我)

找个地方躲起来
realgz 2004-04-30
  • 打赏
  • 举报
回复
太 Easy
realgz 2004-04-30
  • 打赏
  • 举报
回复
select count(*) from sysobjects
select count(*) from syscolumns
select count(*) from sysobjects s left join syscolumns c on s.id=c.id
8992026 2004-04-30
  • 打赏
  • 举报
回复
哈,楼上喜欢唱反调,你找个例子看看
realgz 2004-04-30
  • 打赏
  • 举报
回复
未必
,很未必,除非保证一一对应。
8992026 2004-04-30
  • 打赏
  • 举报
回复
如果不加条件,是
《计算机安全技术》15春在线作业2 一、单选题(共 10 道试题,共 40 分。) 1. 下列对web服务器置于防火墙之内的描述不正确的是___。 A. 能够很好的保护web服务器 B. 不易被黑客侵入 C. 易被外界所用 D. 不利用企业宣传 正确答案:C 2. 据链路层可以采用___和加密技术,由于不同的链路层协议的帧格式都有区别厂所以在 加密时必须区别不同的链路层协议。 A. 路由选择 B. 入侵检测 C. 字签名 D. 。访问控制 正确答案:B 3. 下列算法属于非对称加密算法的是___。 A. DES B. IDEA C. RSA D. MD5 正确答案:C 4. 公要加密体制中,没有公开的是 A. 明文 B. 密文 C. 算法 D. 密钥 正确答案:D 5. 等级保护五级的安全功能要素增加了___。 A. 据完整性 B. 可信恢复 C. 强制访问控制、标记 正确答案:B 6. 网络监控的主动性现为___。 A. 及时发现、报警、勘察、处置 B. 及时查找、记录、分析、处理 C. 及时发现、记录、报警、处理 正确答案:C 7. 篡改信息攻击破坏信息的___。 A. 可靠性 B. 可用性 C. 完整性 D. 保密性 正确答案:C 8. 网络管理中配置管理通常包括___。 A. 网络、自动发现、诊断管理 B. 自动发现、网络分析、诊断管理 C. 自动发现、网络拓扑、资源管理 正确答案:C 9. 发现计算机病毒后,比较彻底的清除方式是___ A. 删除磁盘文件 B. 用查毒软件处理 C. 格式化磁盘 D. 用杀毒软件处理 正确答案:C 10. 计算机系统的软件完整性措施不包括___ A. 保护访问软件的口令 B. 使软件具有唯一的标识 C. 使软件具有抗分析能力和完整性手段 D. 对软件进行加密处理 正确答案:A 《计算机安全技术》15春在线作业2 二、多选题(共 5 道试题,共 20 分。) 1. Oracle据库错误的主要分类包括___。 A. SQL语句失败 B. 线程失败 C. 实例失败 D. 用户操作失败 E. 存储设备失败 正确答案:ABCDE 2. 安全对策的行政管理包括___。 A. 人员的教育和培训 B. 健全机构 C. 健全岗位设置 D. 健全规章制度 正确答案:ABCD 3. 实体及硬件的安全防护中的"三防"通常是指___。 A. 防火 B. 防水 C. 防盗 D. 防电磁干扰 E. 防静电 F. 防辐射 正确答案:ABC 4. 网络级防火墙的优点有___。 A. 能够监控通过防火墙的联接状态 B. 快速且透明的防火墙 C. 容易实现 D. 具有较高的性价比 正确答案:ABCD 5. 据库故障类型包括___。 A. 事务内部故障 B. 系统范围内故障 C. 介质故障 D. 计算机病毒 E. 黑客 正确答案:ABCDE 《计算机安全技术》15春在线作业2 三、判断题(共 10 道试题,共 40 分。) 1. 文件被字签名后,只有签名的所有者可以修改其签名。 A. 错误 B. 正确 正确答案:A 2. 据库的据保护是据库保护主要是指据库的安全性、完整性、并发控制和据库 恢复。 A. 错误 B. 正确 正确答案:B 3. 目前学术界研究字水印大多是明文水印。 A. 错误 B. 正确 正确答案:A 4. 一般采用防火墙技术在内部网和外部网的连接处进行隔离,以确保内部网的安全。 A. 错误 B. 正确 正确答案:B 5. 双宿主机模式的防火墙将一台堡垒主机和一个隔离式过滤器组合成一台机器,使得既能 保护web服务器又能允许访问一些堡垒应用。 A. 错误 B. 正确 正确答案:B 6. 电子邮件是一种"终端到终端"的服务,是被称为"存储转发式"服务。 A. 错误 B. 正确 正确答案:B 7. 一个摘要算法对不同长度的文字进行运算所得的结果长度是不同的。 A. 错误 B. 正确 正确答案:A 8. 计算机安全分为两部分,一个是主机安全,一个是网络安全,二者合称为主机网络安全 。 A. 错误 B. 正确 正确答案:A 9. 网络的发展促进了人们的交流,同时带来了相应的安全问题。 A. 错误 B. 正确 正确答案:B 10. 计算机犯罪指一切借助计算机技术构成的不法行为。 A. 错误 B. 正确 正确答案:B ----------------------- 兰大《计算机安全技术》15春在线作业2-答案全文共4页,当前为第1页。 兰大《计算机安全技术》15春在线作业2-答案全文共4页,当前为第2页。 兰大《计算机安全技术》15春在线作业2-答案全文共4页,当前为第3页。 兰大《计算机安全技术》15春在线作业2-答案全文共4页,当前为第4页。
Access2000中文版高级编程 目录 第一部分 编程基础 1 第1章 宏与代码 3 1.1 何时使用代码代替宏 4 1.1.1 何时用宏 4 1.1.2 何时用代码 4 1.2 宏到代码的转换 5 1.2.1 使用DoCmd对象 5 1.2.2 与宏命令等价的代码 7 1.3 将现有宏转换为代码 8 1.4 小 结 12 第2章 使用VBA编写代码 13 2.1 编程初步 13 2.1.1 使用代码模块 14 2.1.2 声明变量 17 2.1.3 声明过程 21 2.1.4 控制程序流 27 2.1.5 代码注释 30 2.1.6 错误处理 30 2.1.7 本书的编程风格 31 2.2 VBA初步 31 2.2.1 对象基础 31 2.2.2 使用对象浏览器 32 2.3 使用对象编程 34 2.3.1 关键字Public 35 2.3.2 关键字Private 35 2.4 使用属性和方法 35 2.4.1 使用现有的属性 35 2.4.2 使用现有的方法 38 2.4.3 使用命名参 38 2.4.4 将对象赋值给变量 39 2.5 使用集合 41 2.5.1 计算元素的量 42 2.5.2 访问集合元素 42 2.5.3 对集合元素循环 43 2.6 定制窗体 44 2.6.1 编写定制的属性 45 2.6.2 编写值为对象的属性 48 2.6.3 编写定制的方法 48 2.7 编写类模块 49 2.7.1 创建外界支持的对象 49 2.7.2 创建类模块 50 2.7.3 使用类模块 52 2.8 小 结 54 第3章 做出选择:MDB或ADP,DAO或ADO 55 3.1 使用MDB还是ADP 55 3.1.1 两者各自用到的对象 56 3.2 使用DAO还是ADO 58 3.3 小 结 60 第4章 使用Access集合 61 4.1 创建定制的集合 61 4.1.1 定义新集合 62 4.1.2 添加集合元素 62 4.1.3 删除集合元素 63 4.2 比较定制的集合和组 64 4.2.1 创建整集合 64 4.2.2 创建整组 65 4.2.3 集合的高级用法 66 4.3 访问Access对象模型 66 4.3.1 使用Application对象 67 4.3.2 使用References集合 80 4.3.3 使用Forms和Reports集合 80 4.4 通过编程实现同一窗体的多个副本 83 4.4.1 支持多窗体实例 84 4.4.2 检查Employees窗体的代码 84 4.4.3 自动关闭Employees窗体 86 4.5 小 结 87 第5章 使用DAO 88 5.1 理解DAO 88 5.1.1 了解据库的内部构造 89 5.1.2 DAO初步 90 5.1.3 进入据库 90 5.1.4 检查据库 92 5.1.5 检查的属性 93 5.1.6 检查查询类型 94 5.2 使用DAO创建据库 95 5.2.1 创建Database对象 96 5.2.2 复制结构 99 5.2.3 使用Field对象 102 5.2.4 复制查询 102 5.2.5 复制关系 104 5.2.6 复制据 106 5.3 使用事务加快处理速度 108 5.4 使用定制的属性 109 5.5 小 结 111 第6章 ActiveX据库对象 112 6.1 查看对象模型 112 6.1.1 ADODB 2.1对象模型 114 6.1.2 ADOX 2.1 for DDL and Security对象模型 115 6.1.3 JRO 2.1对象模型 115 6.2 引用类型库 115 6.3 打开据库的连接 118 6.3.1 与当前据库连接 118 6.3.2 与另一个据库连接 119 6.4 使用ADO创建记录集 120 6.4.1 打开简单的记录集 120 6.4.2 循环搜索和编辑记录集 122 6.4.3 创建永久记录集 124 6.4.4 使用RecordCount, BOF和EOF属性 125 6.4.5 检查记录集支持的操作 126 6.4.6 复制记录集 126 6.4.7 书签 126 6.5 使用ADO查询 127 6.5.1 创建新查询 127 6.5.2 创建参查询 128 6.5.3 针对参查询打开记录集 128 6.5.4 执行批量查询 129 6.5.5 修改现有的查询 130 6.5.6 删除查询 131 6.6 用ADO操作 131 6.6.1 查看Tables集合 131 6.6.2 使用字段和索引创建新 133 6.6.3 通过加入索引来修改现有 136 6.7 小 结 136 第7章 使用VBA处理Access中的错误 138 7.1 Access中的错误消息 138 7.2 使用错误处理程序的不同方法 139 7.3 Access运行阶段时的错误处理 139 7.3.1 使用On Error命令 139 7.3.2 使用Exit Sub|Function命令 141 7.3.3 使用Resume, Resume Next和Resume LineLabel 141 7.4 使用ERR和 ERROR对象 145 7.4.1 Err对象的Clear方法 145 7.4.2 Err对象的Raise方法 146 7.5 使用Errors集合 149 7.6 创建用户定义的错误 154 7.7 使用定制的错误日志追踪错误 156 7.7.1 错误日志例程的声明节 156 7.7.2 调用错误日志的错误处理程序的示例 157 7.7.3 每个错误的跟踪信息 158 7.7.4 检查实际的错误日志代码 159 7.7.5 首先记录到后端,必要时记录到前端 162 7.7.6 使用错误处理程序更新后端 163 7.8 创建集中式错误处理例程 165 7.9 错误处理问题的最后回顾 171 7.9.1 注意环境开关 171 7.9.2 使用错误处理程序回卷事务 174 7.9.3 使用窗体的On Error事件 175 7.9.4 嵌套错误处理程序 177 7.9.5 错误处理的新选项 177 7.10 小 结 178 第二部分 操作和显示据 179 第8章 用查询最大限度地利用据 181 8.1 Access使用查询的位置 181 8.1.1 在窗体或报记录源属性中使用查询 182 8.1.2 设置用户使用查询的权限 183 8.1.3 使用命名约定和查询文档 185 8.2 运用选择查询:使用查询设计网格 187 8.2.1 联接 188 8.2.2 同一个使用两次(自联接) 189 8.2.3 使用Access的自动查阅功能 191 8.3 运用操作查询:力量的源泉 193 8.3.1 生成查询(SELECT INTO) 193 8.3.2 追加查询 194 8.3.3 更新查询(UPDATE..SET) 195 8.3.4 删除查询(DELETE) 195 8.4 使用高级的查询操作 195 8.4.1 总计查询 195 8.4.2 在单独或所有选项中使用联合查询 198 8.4.3 嵌套查询 198 8.4.4 子查询 200 8.4.5 产生关于对象的查询(DDL) 200 8.5 用VBA增强功能 200 8.5.1 用VBA创建更快的查询 200 8.5.2 窗体查询 201 8.5.3 生成临时的查询对象QueryDef 210 8.5.4 使用DoCmd对象的RunSQL方法 211 8.5.5 在VBA中实现参查询 211 8.6 用查询产生报与窗体 212 8.7 用查询解决问题 213 8.7.1 分组以获得百分比 213 8.7.2 查找并删除重复的记录 215 8.7.3 用组的嵌套彻底解决问题 217 8.7.4 区分新旧记录 217 8.7.5 在交叉查询中使用“总计”行 220 8.8 查询过程的结构 224 8.8.1 定义查询 224 8.8.2 编译 224 8.8.3 准备执行计划(优化) 225 8.9 Jet的优化方法 225 8.9.1 应用Rushmore技术 225 8.9.2 检查群聚的基本索引 226 8.9.3 使用预读功能 228 8.9.4 用SetOption命令在注册中设置Jet 228 8.10 优化技术 230 8.10.1 用关系提高性能 230 8.10.2 添加索引 230 8.10.3 改变据库结构以提高性能 231 8.10.4 优化联接性能 232 8.11 使用非常规的优化技术 232 8.11.1 性能调整的陷阱 232 8.11.2 诊断慢速查询 232 8.11.3 用查询设计网格以解决模糊字段的引用问题 233 8.12 使用分析器向导 233 8.12.1 分析器向导 234 8.12.2 性能分析器向导 234 8.12.3 文档管理器 236 8.13 小 结 236 第9章 创建功能强大的窗体 237 9.1 增强窗体性能 237 9.1.1 增强窗体性能 237 9.2 使用Access 2000最新的窗体特性 238 9.2.1 使用窗体的记录集属性 238 9.2.2 使用Dirty事件 240 9.3 利用其他窗体特性 241 9.3.1 指定启动的Splash Screen窗体 241 9.3.2 使用窗体的背景属性 241 9.4 利用Openargs和tab属性重用窗体执行标准任务 244 9.5 增强选项卡窗体的性能 254 9.6 小 结 256 第10章 用控件扩展窗体的功能 257 10.1 为窗体中的字段设置查阅属性 257 10.2 充分利用组合框 259 10.2.1 使用组合框向导 259 10.2.2 在向导外对组合框编程 261 10.2.3 使用联合查询以显示一个或所有记录 263 10.2.4 在子窗体中使用SQL的UNION语句查询所有记录 266 10.2.5 在组合框控件外显示组合框的列 268 10.2.6 根据用户的输入添加新的组合框选项 271 10.3 使用本机的Access选项卡控件 273 10.3.1 本机的选项卡控件概述 273 10.3.2 创建并编辑新的选项卡控件 275 10.3.3 在选项卡控件中移动页 277 10.3.4 在选项卡页上添加控件 278 10.3.5 为选项卡控件编程 279 10.4 更改Access控件 280 10.4.1 在窗体设计的时候,更改Access控件 281 10.4.2 在运行的时候,使用VBA更改控件 281 10.5 对多重选择列框编程 284 10.5.1 与多重选择有关的列框属性 284 10.5.2 在多重选择列框中使用VBA来操作选中项 285 10.6 使用子窗体、子报向导 291 10.7 对控件提供电子格的光标移动方式 292 10.7.1 研究问题 292 10.7.2 解决问题 293 10.8 用代码操纵控件 297 10.8.1 检查选项组菜单窗体的组成 297 10.8.2 ManipulatingControlsExample窗体 298 10.8.3 查看窗体后面的代码 299 10.9 小 结 304 第11章 创建强大的报 305 11.1 对汇总、细节以及综合这二者的报建立同一报 305 11.2 用按窗体查询来创建同一报的动态分组 312 11.3 复杂的特征:创建迂回报 316 11.3.1 查看前面的报 318 11.3.2 "列”页面的属性 318 11.3.3 报之后的工作 320 11.4 用动态列创建交叉查询的报 320 11.4.1 报使用的按窗体查询 321 11.4.2 报使用的交叉查询 323 11.4.3 DynamicColumnsExample报 325 11.5 使用多项选择列框选择多项打印主题 329 11.5.1 MultiSelectCategoryExample报 329 11.5.2 多项选择列框窗体 330 11.5.3 多项选择列框窗体的程序清单 331 11.6 为选择分组依据项创建类似向导的界面 336 11.6.1 核心:WizExReports和WizExElements 338 11.6.2 使用WizExReports窗体 339 11.6.3 为新报使用组元素向导 348 11.7 动态格式化报 350 11.7.1 DynamicFormattingExample报 350 11.7.2 报的条件格式化 352 11.8 小 结 356 第12章 处理据访问页 358 12.1 为什么使用据访问页 358 12.1.1 理解据访问页的结构化方式 359 12.1.2 浏览控件 361 12.1.3 据访问页与窗体和报的比较 362 12.1.4 哪类用户需要据访问页 364 12.2 省时的据访问页向导 364 12.2.1 使用“自动创建据页:纵栏式” 364 12.2.2 使用据页向导 365 12.3 创建及完善简单的据访问页 369 12.3.1 据访问页的字段列 369 12.3.2 添加超级链接 370 12.3.3 在据访问页中使用达式 374 12.3.4 使用绑定的组合框和列框 375 12.3.5 使用主题格式化 378 12.3.6 据访问页所使用的其他控件 378 12.4 分组的据访问页:Web报 380 12.4.1 创建基本页 380 12.4.2 在据访问页中创建关系 380 12.4.3 升级分组级别 381 12.4.4 添加页眉节 382 12.4.5 在分区带显示的据访问页中查看据层次 383 12.4.6 使用组筛选控件的组合框 383 12.5 查找其他资源 385 12.6 小 结 385 第三部分 利用互操作性来扩展Access 387 第13章 用自动化功能和DDE驱动Office应用程序 389 13.1 理解自动化功能 389 13.2 检查Office产品的对象模型 390 13.3 应用自动化功能 391 13.3.1 在VBA中声明对象变量 392 13.3.2 使用CreateObject()函 394 13.3.3 使用GetObject()函 394 13.4 应用自动化功能从Access运行其他应用程序 395 13.4.1 在Access中调用Word 396 13.4.2 在Access中调用Excel 402 13.4.3 在Access中调用Microsoft Graph 404 13.4.4 在Access中调用Microsoft Project 407 13.5 使用自动化功能在Microsoft Project中驱动Access 410 13.6 应用自动化功能在Access中调用Outlook 415 13.6.1 创建Outlook邮件项目 416 13.6.2 在Access中创建Outlook任务项 417 13.6.3 从Access中向Outlook中输入联系人 419 13.6.4 从Access中删除Outlook中的联系人 423 13.6.5 从Access中创建Outlook日历条目 424 13.7 用DDE调用其他应用程序 425 13.7.1 理解Access中用到的DDE命令 426 13.7.2 用DDE执行复杂的Word示例 429 13.8 小 结 432 第14章 编程实现ActiveX控件功能 433 14.1 理解ActiveX Windows通用控件 433 14.1.1 使用TabStrip控件 434 14.1.2 使用Access选项卡和使用ActiveX TabStrip控件的区别 436 14.2 ImageList控件详述 438 14.2.1 在设计阶段添加图像 438 14.2.2 在运行阶段向ImageList控件中添加图像 441 14.3 用ListView控件仿效Windows 95的资源管理器 443 14.3.1 查看ListView控件的不同视图 443 14.3.2 查看ListView控件的主要属性组 444 14.3.3 人工设置ListView控件 445 14.3.4 使用VBA创建和填充ListView控件 446 14.4 应用ProgressBar控件显示任务的进程 448 14.4.1 使用SysCmd()显示Access进度条 448 14.4.2 使用ActiveX ProgressBar控件 450 14.5 使用Slider控件在运行阶段设置文本框尺寸 452 14.6 应用Microsoft Rich TextBox控件提供所见即所得的功能 455 14.6.1 Rich Textbox控件的属性 456 14.6.2 Microsoft Rich Textbox控件的代码 456 14.7 用StatusBar控件创建单独窗体的状态栏 459 14.7.1 StatusBar Panels集合的属性 460 14.7.2 在运行阶段设置StatusBar属性 461 14.8 用ToolBar控件丰富窗体上的工具栏 462 14.9 应用TreeView控件查看据文件管理器的样式 465 14.10 小 结 469 第15章 使用API调用来扩展Access功能 470 15.1 理解动态链接库 471 15.1.1 执行链接 471 15.1.2 内存管理 471 15.1.3 常用的DLL 471 15.2 检查API调用的语法 471 15.3 查找API的声明 474 15.4 查看可能的API调用 475 15.4.1 使用API Viewer定位调用 475 15.4.2 剪切和粘贴API Viewer中的调用 476 15.4.3 在Win32api.txt文件中查找API调用 477 15.5 使用API调用的注意事项 479 15.5.1 从头开始创建自己的API声明 479 15.5.2 将16位API调用转换为32位API调用 479 15.6 API调用的例子 480 15.6.1 查找可执行应用程序的文件 481 15.6.2 查看所使用的窗体 481 15.6.3 在Access中连接和断开网络驱动器 486 15.6.4 显示当前用户和计算机名 492 15.7 在应用程序中显示相关的文件夹 494 15.8 使用Open File对话框的API调用 497 15.9 小 结 502 第16章 使用类模块和集合来扩展VBA的库功能 503 16.1 第一个方案 503 16.1.1 Bookmark Tracker的特性 504 16.1.2 Bookmark Tracker的基本对象 505 16.1.3 开始使用类模块 506 16.1.4 用Bookmark Tracker来包装 519 16.2 管理同一窗体的多个实例 519 16.2.1 查看特征集 519 16.2.2 打开相同窗体的副本所使用的窗体 520 16.2.3 检查隔离相同窗体的多个副本所使用的代码 521 16.3 小 结 524 第17章 创建向导和加载项 525 17.1 理解Access向导、生成器和加载项 525 17.2 查看向导和加载项的注册条目 526 17.3 创建自己的加载项 528 17.3.1 使用Bookmark Tracker Wizard 529 17.3.2 在Access 2000中安装加载项 532 17.3.3 对Bookmark Tracker Wizard编程 535 17.3.4 结束向导 546 17.4 使用Access代码库 553 17.4.1 代码库的优缺点 553 17.4.2 考虑库据库的位置 553 17.4.3 设置库的引用 554 17.4.4 在“对象浏览器”中查看库例程 555 17.4.5 库编码问题 555 17.5 小 结 557 第18章 使用VBA操作注册 558 18.1 Windows注册的历史 558 18.1.1 在应用程序中使用Windows注册 559 18.1.2 组成注册的部分 561 18.1.3 操作注册的工具 562 18.2 使用VBA中的注册命令 564 18.3 用注册的API调用来执行任务 570 18.3.1 处理多个后端据库 571 18.3.2 样本应用程序 571 18.3.3 使用实际代码 573 18.4 小 结 588 第19章 Access的Internet应用 589 19.1 Access的超级链接特征 589 19.1.1 操作未绑定的超级链接控件 590 19.1.2 维护据库的超级链接基础 594 19.1.3 查看超级链接据类型 594 19.1.4 使用IsHyperlink属性向界面添加超级链接 596 19.1.5 通过编程用Follow、FollowHyperlink以及HyperlinkPart方法使用超级链接……597 19.2 Access超级链接选项 601 19.3 向HTML文档导入和导出Access对象的简便方法 602 19.3.1 使用“导出”来导出到HTML 602 19.3.2 导入和链接HTML文件 605 19.4 发布为其他Web文件格式 607 19.5 小 结 608 第四部分 添加专业外观和分布应用程序 609 第20章 编程Office命令栏和Office助手 611 20.1 使用命令栏 611 20.1.1 "自定义”对话框的“工具栏”页 612 20.1.2 "自定义”对话框的“命令”页 613 20.1.3 "自定义”对话框的“选项”选项卡 614 20.1.4 通过用户界面创建工具栏 615 20.1.4 添加命令栏到窗体 620 20.2 通过VBA使用命令栏 621 20.2.1 检查命令栏对象模型 622 20.2.2 编程修改命令栏 622 20.3 使用Office助手 629 20.3.1 Office助手对象模型 631 20.3.2 使用Office助手作为窗体的帮助 631 20.4 FileSearch对象 639 20.4.1 使用简单的例子 640 20.4.2 使用FileSearch属性 641 20.4.3 使用PropertyTests集合 642 20.4.4 使用Property对象的复杂例子 644 20.5 小 结 647 第21章 应用程序安全性 648 21.1 保护应用程序安全的目的 648 21.1.1 保护敏感据 649 21.1.2 保护开发人员的代码 649 21.2 Access 2000的安全性 649 21.2.1 system.mdw的模型和函 649 21.2.2 共享级安全:据库密码 650 21.2.3 用户级安全:Access真正的安全系统 651 21.2.4 用户和组 652 21.2.5 权限 652 21.2.6 我有权限吗 654 21.2.7 理解所有者 654 21.2.8 为添加的保护加密据库 654 21.2.9 System.mdw文件 656 21.3 安全性用户界面 657 21.3.1 使用PID、SID、WID和密码 657 21.3.2 创建新用户 659 21.3.3 创建新工作组 660 21.3.4 删除用户和组 661 21.3.5 向组中添加用户 661 21.3.6 为用户帐号添加密码 662 21.3.7 从用户帐号中删除密码 662 21.3.8 设置对象权限 663 21.3.9 保护VBE中的模块 664 21.3.10 设置据库权限 665 21.3.11 改变对象的所有者 665 21.3.12 加密据库 667 21.3.13 创建工作组信息文件 667 21.3.14 手工保护据库 668 21.3.15 设置哪些权限 670 21.3.16 取消据库安全保护 671 21.4 Access安全性的便利工具 671 21.4.1 使用安全性向导 672 21.4.2 在Access中打印用户和组 672 21.4.3 读取安全性白皮书 672 21.4.4 使用其他安全性资源 673 21.5 避免Access安全性的常见陷阱 673 21.5.1 设计安全 673 21.5.2 用默认帐号创建对象 673 21.5.3 多用户环境中保护链接 674 21.5.4 用所有者权限运行 674 21.5.5 同步复制环境的安全性 675 21.5.6 用Microsoft Office Developer发布安全的应用程序 675 21.5.7 创建.mde文件发布安全的应用程序 676 21.6 用代码管理安全性 676 21.6.1 使用DAO进行安全性编程 676 21.6.2 通过代码创建新用户 678 21.6.3 通过代码删除用户 679 21.6.4 通过代码设置据库密码 680 21.6.5 通过代码创建组 681 21.6.6 通过代码删除组 682 21.6.7 通过代码添加用户到组 683 21.6.8 通过代码创建对象的所有者 685 21.6.9 通过代码为对象设置权限 686 21.6.10 通过代码检查权限 687 21.6.11 通过代码确定登录身份 689 21.6.12 拒绝用户创建据库的能力 689 21.6.13 拒绝和查询对象的创建 691 21.6.14 通过代码压缩、加密和解密据库 692 21.6.15 通过代码禁用特殊键 692 21.7 使用安全的样本据库:Chap21s.mdb 694 21.8 小 结 694 第五部分 管理据库 697 第22章 处理多用户环境 699 22.1 多用户术语 699 22.2 Access多用户处理 700 22.2.1 默认记录锁定 701 22.2.2 默认打开模式:共享与独占 701 22.2.3 更新重试的次 703 22.2.4 ODBC刷新间隔 703 22.2.5 刷新间隔 704 22.2.6 更新重试时间间隔 704 22.3 一两个据库包容器:知道放置的位置 704 22.3.1 各组件去向概述 704 22.3.2 拆分据库的优缺点 705 22.3.3 手工拆分据库 707 22.3.4 使用据库拆分器向导 707 22.4 内建锁定模式 708 22.4.1 使用记录与页级锁定 709 22.4.2 锁定所有记录 710 22.4.3 锁定编辑记录 710 22.4.4 使用“不锁定”锁定模式 711 22.4.5 在VBA中使用锁定模式 711 22.4.6 使用可选锁定方案 712 22.5 在VBA中使用非绑定窗体 713 22.5.1 为处理非绑定窗体创建例程 714 22.5.2 使用样本窗体的步骤 716 22.5.3 使用支持例程 718 22.5.4 处理DAO版本 720 22.5.5 设置样本应用程序的ADO版本 736 22.6 多用户错误处理编程 747 22.7 用ADO获取登录用户列 751 22.8 小 结 753 第23章 据库同步复制 755 23.1 据库同步复制的概念 756 23.1.1 同步复制设计目标 756 23.1.2 典型的同步复制应用程序 757 23.2 Jet同步复制工具 757 23.2.1 公文包 757 23.2.2 Access菜单 759 22.2.3 Replication Manager 760 23.2.4 JRO编程 761 23.3 据库转换为副本 761 23.4 同步副本 766 23.4.1 设计母版和副本 767 23.4.2 恢复设计母版 768 23.4.3 同步复制可视化 768 23.4.4 同步复制系统的列、及其他问题 769 23.4.5 使用副本集 770 23.5 副本集拓扑 771 23.5.1 单连接列 771 23.5.2 星型和中心拓扑 771 23.6 星型和中心自动同步 772 23.7 分布可同步复制的应用程序 774 23.7.1 使用可同步复制的和非可同步复制的对象 774 23.7.2 部分副本 775 23.8 同步复制后端和前端应用程序 778 23.9 处理同步复制冲突 779 23.9.1 据冲突 779 23.9.2 使用Access冲突解决器 780 23.9.3 使用另一个冲突解决算法 782 23.9.4 各种同步复制冲突 785 23.10 复制同步器 786 23.10.1 同步阶段 791 23.10.2 直接和间接同步 791 23.10.3 预定和随选同步 791 23.10.4 在Internet上同步副本 792 23.10.5 处理计字段 792 23.10.6 使用同步复制的只读属性 793 23.10.7 执行同步复制鉴别修正 794 23.10.8 使用最后的同步伙伴 794 23.10.9 对同步复制的据库使用压缩工具 795 23.10.10 确定是否备份副本 795 23.11 副本集从Access 97升级为Access 2000 795 23.12 保护同步复制的应用程序 796 23.13 同步复制据库使用MDE文件 796 23.14 创建成功的同步复制应用程序 796 23.15 小 结 797 第24章 应用程序移到客户/服务器 798 24.1 了解客户/服务器 798 24.1.1 客户/服务器术语解释 799 24.1.2 利用ODBC 799 24.1.3 客户/服务器中使用Access的原因 800 24.2 迁移到客户/服务器的考虑因素 801 24.2.1 据量 801 24.2.2 据库的使用和用处 803 24.2.3 据库设计 803 24.2.4 同时使用及用户量 803 24.2.5 备份与恢复 803 24.2.6 安全性 804 24.2.7 应用程序间的据共享 804 24.2.8 网络传输 804 24.2.9 记录集合 805 24.2.10 选择合适的系统 805 24.3 制订客户/服务器计划 805 24.3.1 字段和的名称 806 24.3.2 保留字 806 24.3.3 区分字母大小写 807 24.3.4 服务器上的查询处理 807 24.4 应用程序开发过程的注意事项 808 24.4.1 限定据 809 24.4.2 使用组合框 809 24.4.3 使用Access特定函和用户自定义函 810 24.4.4 创建异构联接及交叉据库联接 810 24.4.5 处理OLE对象 810 24.4.6 使用本地获取静态信息 811 24.5 转换现有的应用程序 811 24.5.1 从设计合理的据库开始 811 24.5.2 使用时间戳字段 812 24.5.3 清理查询 812 24.5.4 重做窗体 813 24.5.5 开发高级应用程序 814 24.5.6 利用当前的Access安全性 817 24.5.7 升迁Access据库 817 24.5.8 使用升迁工具 821 24.6 分布客户/服务器解决方案 824 24.6.1 编程设置ODBC据源 825 24.6.2 用服务器脚本重新创建SQL据库 828 24.6.3 向SQL Server加载现有的据 829 24.7 Access和SQL Server的注意事项 829 24.8 小 结 830 第25章 用ADPs开发SQL Server项目 831 25.1 项目文件结构 832 25.1.1 介绍OLE DB 832 25.1.2 链接到据 832 25.1.3 据链接和Access项目 833 25.1.4 据链接和VBA代码 834 25.1.5 Microsoft据引擎 837 25.1.6 SQL Server上的对象 837 25.2 创建过程 839 25.2.1 创建新项目 839 25.2.2 项目属性 842 25.2.3 确保项目安全 843 25.3 创建客户/服务器应用程序 844 25.3.1 使用 845 25.3.2 对象的命名约定 847 25.3.3 SQL Server的据类型 848 25.3.4 使用约束 850 25.3.5 使用触发器 856 25.3.6 优化据访问 858 25.4 使用视图 859 25.5 使用存储过程 862 25.5.1 创建存储过程 863 25.5.2 比较存储过程和Access语法 866 25.6 小 结 868 第六部分 添加最终的交互 869 第26章 使用DAO的启动检查系统例程 871 26.1 执行启动系统检查 872 26.2 使用定制据库属性 877 26.2.1 通过用户界面创建据库属性 877 26.2.2 从VBA访问定制据库属性 878 26.3 通知和记录用户退出应用程序 879 26.3.1 启动时让用户退出 880 26.3.2 在应用程序运行中记录用户退出 881 26.3.3 设置标志文件让用户退出后端 885 26.3.4 启动时测试链接的链接 888 26.4 通过VBA链接和解除链接 889 26.4.1 链接和解除链接位于应用程序文件夹中Jet后端的 890 26.4.2 用OpenFile API调用查找Jet后端 894 26.5 测试和修复损坏的Jet后端据库 897 26.6 检查并通知用户新版本的情况 904 26.7 小 结 907 第27章 使用ADO的启动检查系统例程 908 27.1 执行启动系统检查 909 27.2 采用ADO设置和检索系统的设置 914 27.3 在启动时测试链接的连接 915 27.4 通过VBA和ADO链接 917 27.5 测试和修复损坏的Jet后端据库 921 27.6 使用ADO复制代码 925 27.7 小 结 929 第28章 创建维护例程 930 28.1 创建导出对话框导出应用程序的 930 28.1.1 实用工具的演示 930 28.1.2 查看组成导出实用工具的部件 931 28.1.3 查看创建导出实用工具的代码 935 28.2 根据需要压缩和修复后端 937 28.3 创建通用代码编辑器 942 28.4 后端复制到前端以获取更好的性能 944 28.4.1 创建复制编辑器 945 28.4.2 复制半静态据的启动例程 954 28.5 小 结 960 第七部分 附录 961 附录A 在Access 2000中调试代码 963 A.1 设置正确的模块选项以发挥最大的调试能力 963 A.2 利用立即窗口 967 A.2.1 从应用程序向立即窗口显示据 967 A.2.2 在立即窗口中显示据 968 A.2.3 在立即窗口中给变量和对象赋值 968 A.2.4 从立即窗口运行代码 969 A.3 终止程序运行 970 A.3.1 使用Stop语句 971 A.3.2 使用断点 971 A.3.3 使用Debug.Assert 972 A.4 单步调试 972 A.4.1 按行“逐语句”运行代码 972 A.4.2 用“逐过程”越过代码 973 A.4.3 用“跳出”命令离开例程 973 A.4.4 "运行到光标处”命令略过已检验的代码 973 A.5 查看过程调用顺序 973 A.6 程序运行期间监视达式 974 A.6.1 本地窗口 975 A.6.2 用“快速监视”对话框快速监视 977 A.6.3 在监视窗口中添加和查看达式 978 A.6.4 设置断点条件和编辑达式 979 A.7 用条件编译命令控制代码 981 A.8 小 结 983 附录B ActiveX初步 984 B.1 使用ActiveX控件 984 B.1.1 Access附带的ActiveX控件 985 B.1.2 在窗体上放置ActiveX控件 985 B.1.3 设计期间设置ActiveX控件的属性 987 B.2 用日历控件计算天 988 B.2.1 日历ActiveX控件的属性 989 B.2.2 用日历控件设计VBA 992 B.3 通过Common Dialog ActiveX控件使用标准界面 994 B.3.1 用Common Dialog 控件查找文件 996 B.3.2 用Common Dialog ActiveX控件改变默认的系统打印机 997 B.4 小 结 998 附录C Access 2000和Jet4的错误 999 附录D Microsoft Access LESZYNSKI命名约定 1076 D.1 命名约定初步 1077 D.2 Access对象类型 1078 D.3 对象名的结构 1079 D.3.1 什么是前缀 1079 D.3.2 什么是标记 1080 D.3.3 什么是基本名称 1080 D.3.4 什么是限定符 1080 D.3.5 什么是后缀 1081 D.4 创建据库对象基本名称 1081 D.4.1 基本名称规则 1082 D.4.2 基本名称长度限制 1082 D.4.3 复合基本名称 1083 D.4.4 字段基本名称 1083 D.4.5 基本名称元素的顺序 1085 D.5 据库对象的命名约定 1085 D.5.1 据库窗口对象的标记 1086 D.5.2 窗体和报控件对象的标记 1088 D.5.3 据库对象的前缀 1091 D.5.4 使用菜单宏 1092 D.5.5 据库对象名样例 1093 D.6 创建VBA对象基本名称 1093 D.6.1 VBA对象基本名称的规则 1094 D.6.2 VBA对象基本名称长度 1094 D.6.3 复合VBA 对象基本名称 1094 D.7 VBA对象的命名约定 1095 D.7.1 变量的标记 1095 D.7.2 变量的前缀 1100 D.7.3 常量命名 1101 D.7.4 过程的标记和前缀 1102 D.7.5 用宏代替VBA 1102 D.7.6 Visual Basic对象名示例 1103 D.8 创建自己的标记 1103 D.9 VBA编码约定 1105 D.9.1 编码注释 1105 D.9.2 处理错误 1105 D.10 标准缩写 1106 D.11 标准术语 1108 D.12 LNC的补充信息 1109 D.12.1 如何得到LNC 1109 D.12.2 发送反馈 1109 D.12.3 作者简介 1109 光盘使用约定 1111 配套光盘内容 1113
Access2000中文版高级编程 目录 第一部分 编程基础 1 第1章 宏与代码 3 1.1 何时使用代码代替宏 4 1.1.1 何时用宏 4 1.1.2 何时用代码 4 1.2 宏到代码的转换 5 1.2.1 使用DoCmd对象 5 1.2.2 与宏命令等价的代码 7 1.3 将现有宏转换为代码 8 1.4 小 结 12 第2章 使用VBA编写代码 13 2.1 编程初步 13 2.1.1 使用代码模块 14 2.1.2 声明变量 17 2.1.3 声明过程 21 2.1.4 控制程序流 27 2.1.5 代码注释 30 2.1.6 错误处理 30 2.1.7 本书的编程风格 31 2.2 VBA初步 31 2.2.1 对象基础 31 2.2.2 使用对象浏览器 32 2.3 使用对象编程 34 2.3.1 关键字Public 35 2.3.2 关键字Private 35 2.4 使用属性和方法 35 2.4.1 使用现有的属性 35 2.4.2 使用现有的方法 38 2.4.3 使用命名参 38 2.4.4 将对象赋值给变量 39 2.5 使用集合 41 2.5.1 计算元素的量 42 2.5.2 访问集合元素 42 2.5.3 对集合元素循环 43 2.6 定制窗体 44 2.6.1 编写定制的属性 45 2.6.2 编写值为对象的属性 48 2.6.3 编写定制的方法 48 2.7 编写类模块 49 2.7.1 创建外界支持的对象 49 2.7.2 创建类模块 50 2.7.3 使用类模块 52 2.8 小 结 54 第3章 做出选择:MDB或ADP,DAO或ADO 55 3.1 使用MDB还是ADP 55 3.1.1 两者各自用到的对象 56 3.2 使用DAO还是ADO 58 3.3 小 结 60 第4章 使用Access集合 61 4.1 创建定制的集合 61 4.1.1 定义新集合 62 4.1.2 添加集合元素 62 4.1.3 删除集合元素 63 4.2 比较定制的集合和组 64 4.2.1 创建整集合 64 4.2.2 创建整组 65 4.2.3 集合的高级用法 66 4.3 访问Access对象模型 66 4.3.1 使用Application对象 67 4.3.2 使用References集合 80 4.3.3 使用Forms和Reports集合 80 4.4 通过编程实现同一窗体的多个副本 83 4.4.1 支持多窗体实例 84 4.4.2 检查Employees窗体的代码 84 4.4.3 自动关闭Employees窗体 86 4.5 小 结 87 第5章 使用DAO 88 5.1 理解DAO 88 5.1.1 了解据库的内部构造 89 5.1.2 DAO初步 90 5.1.3 进入据库 90 5.1.4 检查据库 92 5.1.5 检查的属性 93 5.1.6 检查查询类型 94 5.2 使用DAO创建据库 95 5.2.1 创建Database对象 96 5.2.2 复制结构 99 5.2.3 使用Field对象 102 5.2.4 复制查询 102 5.2.5 复制关系 104 5.2.6 复制据 106 5.3 使用事务加快处理速度 108 5.4 使用定制的属性 109 5.5 小 结 111 第6章 ActiveX据库对象 112 6.1 查看对象模型 112 6.1.1 ADODB 2.1对象模型 114 6.1.2 ADOX 2.1 for DDL and Security对象模型 115 6.1.3 JRO 2.1对象模型 115 6.2 引用类型库 115 6.3 打开据库的连接 118 6.3.1 与当前据库连接 118 6.3.2 与另一个据库连接 119 6.4 使用ADO创建记录集 120 6.4.1 打开简单的记录集 120 6.4.2 循环搜索和编辑记录集 122 6.4.3 创建永久记录集 124 6.4.4 使用RecordCount, BOF和EOF属性 125 6.4.5 检查记录集支持的操作 126 6.4.6 复制记录集 126 6.4.7 书签 126 6.5 使用ADO查询 127 6.5.1 创建新查询 127 6.5.2 创建参查询 128 6.5.3 针对参查询打开记录集 128 6.5.4 执行批量查询 129 6.5.5 修改现有的查询 130 6.5.6 删除查询 131 6.6 用ADO操作 131 6.6.1 查看Tables集合 131 6.6.2 使用字段和索引创建新 133 6.6.3 通过加入索引来修改现有 136 6.7 小 结 136 第7章 使用VBA处理Access中的错误 138 7.1 Access中的错误消息 138 7.2 使用错误处理程序的不同方法 139 7.3 Access运行阶段时的错误处理 139 7.3.1 使用On Error命令 139 7.3.2 使用Exit Sub|Function命令 141 7.3.3 使用Resume, Resume Next和Resume LineLabel 141 7.4 使用ERR和 ERROR对象 145 7.4.1 Err对象的Clear方法 145 7.4.2 Err对象的Raise方法 146 7.5 使用Errors集合 149 7.6 创建用户定义的错误 154 7.7 使用定制的错误日志追踪错误 156 7.7.1 错误日志例程的声明节 156 7.7.2 调用错误日志的错误处理程序的示例 157 7.7.3 每个错误的跟踪信息 158 7.7.4 检查实际的错误日志代码 159 7.7.5 首先记录到后端,必要时记录到前端 162 7.7.6 使用错误处理程序更新后端 163 7.8 创建集中式错误处理例程 165 7.9 错误处理问题的最后回顾 171 7.9.1 注意环境开关 171 7.9.2 使用错误处理程序回卷事务 174 7.9.3 使用窗体的On Error事件 175 7.9.4 嵌套错误处理程序 177 7.9.5 错误处理的新选项 177 7.10 小 结 178 第二部分 操作和显示据 179 第8章 用查询最大限度地利用据 181 8.1 Access使用查询的位置 181 8.1.1 在窗体或报记录源属性中使用查询 182 8.1.2 设置用户使用查询的权限 183 8.1.3 使用命名约定和查询文档 185 8.2 运用选择查询:使用查询设计网格 187 8.2.1 联接 188 8.2.2 同一个使用两次(自联接) 189 8.2.3 使用Access的自动查阅功能 191 8.3 运用操作查询:力量的源泉 193 8.3.1 生成查询(SELECT INTO) 193 8.3.2 追加查询 194 8.3.3 更新查询(UPDATE..SET) 195 8.3.4 删除查询(DELETE) 195 8.4 使用高级的查询操作 195 8.4.1 总计查询 195 8.4.2 在单独或所有选项中使用联合查询 198 8.4.3 嵌套查询 198 8.4.4 子查询 200 8.4.5 产生关于对象的查询(DDL) 200 8.5 用VBA增强功能 200 8.5.1 用VBA创建更快的查询 200 8.5.2 窗体查询 201 8.5.3 生成临时的查询对象QueryDef 210 8.5.4 使用DoCmd对象的RunSQL方法 211 8.5.5 在VBA中实现参查询 211 8.6 用查询产生报与窗体 212 8.7 用查询解决问题 213 8.7.1 分组以获得百分比 213 8.7.2 查找并删除重复的记录 215 8.7.3 用组的嵌套彻底解决问题 217 8.7.4 区分新旧记录 217 8.7.5 在交叉查询中使用“总计”行 220 8.8 查询过程的结构 224 8.8.1 定义查询 224 8.8.2 编译 224 8.8.3 准备执行计划(优化) 225 8.9 Jet的优化方法 225 8.9.1 应用Rushmore技术 225 8.9.2 检查群聚的基本索引 226 8.9.3 使用预读功能 228 8.9.4 用SetOption命令在注册中设置Jet 228 8.10 优化技术 230 8.10.1 用关系提高性能 230 8.10.2 添加索引 230 8.10.3 改变据库结构以提高性能 231 8.10.4 优化联接性能 232 8.11 使用非常规的优化技术 232 8.11.1 性能调整的陷阱 232 8.11.2 诊断慢速查询 232 8.11.3 用查询设计网格以解决模糊字段的引用问题 233 8.12 使用分析器向导 233 8.12.1 分析器向导 234 8.12.2 性能分析器向导 234 8.12.3 文档管理器 236 8.13 小 结 236 第9章 创建功能强大的窗体 237 9.1 增强窗体性能 237 9.1.1 增强窗体性能 237 9.2 使用Access 2000最新的窗体特性 238 9.2.1 使用窗体的记录集属性 238 9.2.2 使用Dirty事件 240 9.3 利用其他窗体特性 241 9.3.1 指定启动的Splash Screen窗体 241 9.3.2 使用窗体的背景属性 241 9.4 利用Openargs和tab属性重用窗体执行标准任务 244 9.5 增强选项卡窗体的性能 254 9.6 小 结 256 第10章 用控件扩展窗体的功能 257 10.1 为窗体中的字段设置查阅属性 257 10.2 充分利用组合框 259 10.2.1 使用组合框向导 259 10.2.2 在向导外对组合框编程 261 10.2.3 使用联合查询以显示一个或所有记录 263 10.2.4 在子窗体中使用SQL的UNION语句查询所有记录 266 10.2.5 在组合框控件外显示组合框的列 268 10.2.6 根据用户的输入添加新的组合框选项 271 10.3 使用本机的Access选项卡控件 273 10.3.1 本机的选项卡控件概述 273 10.3.2 创建并编辑新的选项卡控件 275 10.3.3 在选项卡控件中移动页 277 10.3.4 在选项卡页上添加控件 278 10.3.5 为选项卡控件编程 279 10.4 更改Access控件 280 10.4.1 在窗体设计的时候,更改Access控件 281 10.4.2 在运行的时候,使用VBA更改控件 281 10.5 对多重选择列框编程 284 10.5.1 与多重选择有关的列框属性 284 10.5.2 在多重选择列框中使用VBA来操作选中项 285 10.6 使用子窗体、子报向导 291 10.7 对控件提供电子格的光标移动方式 292 10.7.1 研究问题 292 10.7.2 解决问题 293 10.8 用代码操纵控件 297 10.8.1 检查选项组菜单窗体的组成 297 10.8.2 ManipulatingControlsExample窗体 298 10.8.3 查看窗体后面的代码 299 10.9 小 结 304 第11章 创建强大的报 305 11.1 对汇总、细节以及综合这二者的报建立同一报 305 11.2 用按窗体查询来创建同一报的动态分组 312 11.3 复杂的特征:创建迂回报 316 11.3.1 查看前面的报 318 11.3.2 "列”页面的属性 318 11.3.3 报之后的工作 320 11.4 用动态列创建交叉查询的报 320 11.4.1 报使用的按窗体查询 321 11.4.2 报使用的交叉查询 323 11.4.3 DynamicColumnsExample报 325 11.5 使用多项选择列框选择多项打印主题 329 11.5.1 MultiSelectCategoryExample报 329 11.5.2 多项选择列框窗体 330 11.5.3 多项选择列框窗体的程序清单 331 11.6 为选择分组依据项创建类似向导的界面 336 11.6.1 核心:WizExReports和WizExElements 338 11.6.2 使用WizExReports窗体 339 11.6.3 为新报使用组元素向导 348 11.7 动态格式化报 350 11.7.1 DynamicFormattingExample报 350 11.7.2 报的条件格式化 352 11.8 小 结 356 第12章 处理据访问页 358 12.1 为什么使用据访问页 358 12.1.1 理解据访问页的结构化方式 359 12.1.2 浏览控件 361 12.1.3 据访问页与窗体和报的比较 362 12.1.4 哪类用户需要据访问页 364 12.2 省时的据访问页向导 364 12.2.1 使用“自动创建据页:纵栏式” 364 12.2.2 使用据页向导 365 12.3 创建及完善简单的据访问页 369 12.3.1 据访问页的字段列 369 12.3.2 添加超级链接 370 12.3.3 在据访问页中使用达式 374 12.3.4 使用绑定的组合框和列框 375 12.3.5 使用主题格式化 378 12.3.6 据访问页所使用的其他控件 378 12.4 分组的据访问页:Web报 380 12.4.1 创建基本页 380 12.4.2 在据访问页中创建关系 380 12.4.3 升级分组级别 381 12.4.4 添加页眉节 382 12.4.5 在分区带显示的据访问页中查看据层次 383 12.4.6 使用组筛选控件的组合框 383 12.5 查找其他资源 385 12.6 小 结 385 第三部分 利用互操作性来扩展Access 387 第13章 用自动化功能和DDE驱动Office应用程序 389 13.1 理解自动化功能 389 13.2 检查Office产品的对象模型 390 13.3 应用自动化功能 391 13.3.1 在VBA中声明对象变量 392 13.3.2 使用CreateObject()函 394 13.3.3 使用GetObject()函 394 13.4 应用自动化功能从Access运行其他应用程序 395 13.4.1 在Access中调用Word 396 13.4.2 在Access中调用Excel 402 13.4.3 在Access中调用Microsoft Graph 404 13.4.4 在Access中调用Microsoft Project 407 13.5 使用自动化功能在Microsoft Project中驱动Access 410 13.6 应用自动化功能在Access中调用Outlook 415 13.6.1 创建Outlook邮件项目 416 13.6.2 在Access中创建Outlook任务项 417 13.6.3 从Access中向Outlook中输入联系人 419 13.6.4 从Access中删除Outlook中的联系人 423 13.6.5 从Access中创建Outlook日历条目 424 13.7 用DDE调用其他应用程序 425 13.7.1 理解Access中用到的DDE命令 426 13.7.2 用DDE执行复杂的Word示例 429 13.8 小 结 432 第14章 编程实现ActiveX控件功能 433 14.1 理解ActiveX Windows通用控件 433 14.1.1 使用TabStrip控件 434 14.1.2 使用Access选项卡和使用ActiveX TabStrip控件的区别 436 14.2 ImageList控件详述 438 14.2.1 在设计阶段添加图像 438 14.2.2 在运行阶段向ImageList控件中添加图像 441 14.3 用ListView控件仿效Windows 95的资源管理器 443 14.3.1 查看ListView控件的不同视图 443 14.3.2 查看ListView控件的主要属性组 444 14.3.3 人工设置ListView控件 445 14.3.4 使用VBA创建和填充ListView控件 446 14.4 应用ProgressBar控件显示任务的进程 448 14.4.1 使用SysCmd()显示Access进度条 448 14.4.2 使用ActiveX ProgressBar控件 450 14.5 使用Slider控件在运行阶段设置文本框尺寸 452 14.6 应用Microsoft Rich TextBox控件提供所见即所得的功能 455 14.6.1 Rich Textbox控件的属性 456 14.6.2 Microsoft Rich Textbox控件的代码 456 14.7 用StatusBar控件创建单独窗体的状态栏 459 14.7.1 StatusBar Panels集合的属性 460 14.7.2 在运行阶段设置StatusBar属性 461 14.8 用ToolBar控件丰富窗体上的工具栏 462 14.9 应用TreeView控件查看据文件管理器的样式 465 14.10 小 结 469 第15章 使用API调用来扩展Access功能 470 15.1 理解动态链接库 471 15.1.1 执行链接 471 15.1.2 内存管理 471 15.1.3 常用的DLL 471 15.2 检查API调用的语法 471 15.3 查找API的声明 474 15.4 查看可能的API调用 475 15.4.1 使用API Viewer定位调用 475 15.4.2 剪切和粘贴API Viewer中的调用 476 15.4.3 在Win32api.txt文件中查找API调用 477 15.5 使用API调用的注意事项 479 15.5.1 从头开始创建自己的API声明 479 15.5.2 将16位API调用转换为32位API调用 479 15.6 API调用的例子 480 15.6.1 查找可执行应用程序的文件 481 15.6.2 查看所使用的窗体 481 15.6.3 在Access中连接和断开网络驱动器 486 15.6.4 显示当前用户和计算机名 492 15.7 在应用程序中显示相关的文件夹 494 15.8 使用Open File对话框的API调用 497 15.9 小 结 502 第16章 使用类模块和集合来扩展VBA的库功能 503 16.1 第一个方案 503 16.1.1 Bookmark Tracker的特性 504 16.1.2 Bookmark Tracker的基本对象 505 16.1.3 开始使用类模块 506 16.1.4 用Bookmark Tracker来包装 519 16.2 管理同一窗体的多个实例 519 16.2.1 查看特征集 519 16.2.2 打开相同窗体的副本所使用的窗体 520 16.2.3 检查隔离相同窗体的多个副本所使用的代码 521 16.3 小 结 524 第17章 创建向导和加载项 525 17.1 理解Access向导、生成器和加载项 525 17.2 查看向导和加载项的注册条目 526 17.3 创建自己的加载项 528 17.3.1 使用Bookmark Tracker Wizard 529 17.3.2 在Access 2000中安装加载项 532 17.3.3 对Bookmark Tracker Wizard编程 535 17.3.4 结束向导 546 17.4 使用Access代码库 553 17.4.1 代码库的优缺点 553 17.4.2 考虑库据库的位置 553 17.4.3 设置库的引用 554 17.4.4 在“对象浏览器”中查看库例程 555 17.4.5 库编码问题 555 17.5 小 结 557 第18章 使用VBA操作注册 558 18.1 Windows注册的历史 558 18.1.1 在应用程序中使用Windows注册 559 18.1.2 组成注册的部分 561 18.1.3 操作注册的工具 562 18.2 使用VBA中的注册命令 564 18.3 用注册的API调用来执行任务 570 18.3.1 处理多个后端据库 571 18.3.2 样本应用程序 571 18.3.3 使用实际代码 573 18.4 小 结 588 第19章 Access的Internet应用 589 19.1 Access的超级链接特征 589 19.1.1 操作未绑定的超级链接控件 590 19.1.2 维护据库的超级链接基础 594 19.1.3 查看超级链接据类型 594 19.1.4 使用IsHyperlink属性向界面添加超级链接 596 19.1.5 通过编程用Follow、FollowHyperlink以及HyperlinkPart方法使用超级链接……597 19.2 Access超级链接选项 601 19.3 向HTML文档导入和导出Access对象的简便方法 602 19.3.1 使用“导出”来导出到HTML 602 19.3.2 导入和链接HTML文件 605 19.4 发布为其他Web文件格式 607 19.5 小 结 608 第四部分 添加专业外观和分布应用程序 609 第20章 编程Office命令栏和Office助手 611 20.1 使用命令栏 611 20.1.1 "自定义”对话框的“工具栏”页 612 20.1.2 "自定义”对话框的“命令”页 613 20.1.3 "自定义”对话框的“选项”选项卡 614 20.1.4 通过用户界面创建工具栏 615 20.1.4 添加命令栏到窗体 620 20.2 通过VBA使用命令栏 621 20.2.1 检查命令栏对象模型 622 20.2.2 编程修改命令栏 622 20.3 使用Office助手 629 20.3.1 Office助手对象模型 631 20.3.2 使用Office助手作为窗体的帮助 631 20.4 FileSearch对象 639 20.4.1 使用简单的例子 640 20.4.2 使用FileSearch属性 641 20.4.3 使用PropertyTests集合 642 20.4.4 使用Property对象的复杂例子 644 20.5 小 结 647 第21章 应用程序安全性 648 21.1 保护应用程序安全的目的 648 21.1.1 保护敏感据 649 21.1.2 保护开发人员的代码 649 21.2 Access 2000的安全性 649 21.2.1 system.mdw的模型和函 649 21.2.2 共享级安全:据库密码 650 21.2.3 用户级安全:Access真正的安全系统 651 21.2.4 用户和组 652 21.2.5 权限 652 21.2.6 我有权限吗 654 21.2.7 理解所有者 654 21.2.8 为添加的保护加密据库 654 21.2.9 System.mdw文件 656 21.3 安全性用户界面 657 21.3.1 使用PID、SID、WID和密码 657 21.3.2 创建新用户 659 21.3.3 创建新工作组 660 21.3.4 删除用户和组 661 21.3.5 向组中添加用户 661 21.3.6 为用户帐号添加密码 662 21.3.7 从用户帐号中删除密码 662 21.3.8 设置对象权限 663 21.3.9 保护VBE中的模块 664 21.3.10 设置据库权限 665 21.3.11 改变对象的所有者 665 21.3.12 加密据库 667 21.3.13 创建工作组信息文件 667 21.3.14 手工保护据库 668 21.3.15 设置哪些权限 670 21.3.16 取消据库安全保护 671 21.4 Access安全性的便利工具 671 21.4.1 使用安全性向导 672 21.4.2 在Access中打印用户和组 672 21.4.3 读取安全性白皮书 672 21.4.4 使用其他安全性资源 673 21.5 避免Access安全性的常见陷阱 673 21.5.1 设计安全 673 21.5.2 用默认帐号创建对象 673 21.5.3 多用户环境中保护链接 674 21.5.4 用所有者权限运行 674 21.5.5 同步复制环境的安全性 675 21.5.6 用Microsoft Office Developer发布安全的应用程序 675 21.5.7 创建.mde文件发布安全的应用程序 676 21.6 用代码管理安全性 676 21.6.1 使用DAO进行安全性编程 676 21.6.2 通过代码创建新用户 678 21.6.3 通过代码删除用户 679 21.6.4 通过代码设置据库密码 680 21.6.5 通过代码创建组 681 21.6.6 通过代码删除组 682 21.6.7 通过代码添加用户到组 683 21.6.8 通过代码创建对象的所有者 685 21.6.9 通过代码为对象设置权限 686 21.6.10 通过代码检查权限 687 21.6.11 通过代码确定登录身份 689 21.6.12 拒绝用户创建据库的能力 689 21.6.13 拒绝和查询对象的创建 691 21.6.14 通过代码压缩、加密和解密据库 692 21.6.15 通过代码禁用特殊键 692 21.7 使用安全的样本据库:Chap21s.mdb 694 21.8 小 结 694 第五部分 管理据库 697 第22章 处理多用户环境 699 22.1 多用户术语 699 22.2 Access多用户处理 700 22.2.1 默认记录锁定 701 22.2.2 默认打开模式:共享与独占 701 22.2.3 更新重试的次 703 22.2.4 ODBC刷新间隔 703 22.2.5 刷新间隔 704 22.2.6 更新重试时间间隔 704 22.3 一两个据库包容器:知道放置的位置 704 22.3.1 各组件去向概述 704 22.3.2 拆分据库的优缺点 705 22.3.3 手工拆分据库 707 22.3.4 使用据库拆分器向导 707 22.4 内建锁定模式 708 22.4.1 使用记录与页级锁定 709 22.4.2 锁定所有记录 710 22.4.3 锁定编辑记录 710 22.4.4 使用“不锁定”锁定模式 711 22.4.5 在VBA中使用锁定模式 711 22.4.6 使用可选锁定方案 712 22.5 在VBA中使用非绑定窗体 713 22.5.1 为处理非绑定窗体创建例程 714 22.5.2 使用样本窗体的步骤 716 22.5.3 使用支持例程 718 22.5.4 处理DAO版本 720 22.5.5 设置样本应用程序的ADO版本 736 22.6 多用户错误处理编程 747 22.7 用ADO获取登录用户列 751 22.8 小 结 753 第23章 据库同步复制 755 23.1 据库同步复制的概念 756 23.1.1 同步复制设计目标 756 23.1.2 典型的同步复制应用程序 757 23.2 Jet同步复制工具 757 23.2.1 公文包 757 23.2.2 Access菜单 759 22.2.3 Replication Manager 760 23.2.4 JRO编程 761 23.3 据库转换为副本 761 23.4 同步副本 766 23.4.1 设计母版和副本 767 23.4.2 恢复设计母版 768 23.4.3 同步复制可视化 768 23.4.4 同步复制系统的列、及其他问题 769 23.4.5 使用副本集 770 23.5 副本集拓扑 771 23.5.1 单连接列 771 23.5.2 星型和中心拓扑 771 23.6 星型和中心自动同步 772 23.7 分布可同步复制的应用程序 774 23.7.1 使用可同步复制的和非可同步复制的对象 774 23.7.2 部分副本 775 23.8 同步复制后端和前端应用程序 778 23.9 处理同步复制冲突 779 23.9.1 据冲突 779 23.9.2 使用Access冲突解决器 780 23.9.3 使用另一个冲突解决算法 782 23.9.4 各种同步复制冲突 785 23.10 复制同步器 786 23.10.1 同步阶段 791 23.10.2 直接和间接同步 791 23.10.3 预定和随选同步 791 23.10.4 在Internet上同步副本 792 23.10.5 处理计字段 792 23.10.6 使用同步复制的只读属性 793 23.10.7 执行同步复制鉴别修正 794 23.10.8 使用最后的同步伙伴 794 23.10.9 对同步复制的据库使用压缩工具 795 23.10.10 确定是否备份副本 795 23.11 副本集从Access 97升级为Access 2000 795 23.12 保护同步复制的应用程序 796 23.13 同步复制据库使用MDE文件 796 23.14 创建成功的同步复制应用程序 796 23.15 小 结 797 第24章 应用程序移到客户/服务器 798 24.1 了解客户/服务器 798 24.1.1 客户/服务器术语解释 799 24.1.2 利用ODBC 799 24.1.3 客户/服务器中使用Access的原因 800 24.2 迁移到客户/服务器的考虑因素 801 24.2.1 据量 801 24.2.2 据库的使用和用处 803 24.2.3 据库设计 803 24.2.4 同时使用及用户量 803 24.2.5 备份与恢复 803 24.2.6 安全性 804 24.2.7 应用程序间的据共享 804 24.2.8 网络传输 804 24.2.9 记录集合 805 24.2.10 选择合适的系统 805 24.3 制订客户/服务器计划 805 24.3.1 字段和的名称 806 24.3.2 保留字 806 24.3.3 区分字母大小写 807 24.3.4 服务器上的查询处理 807 24.4 应用程序开发过程的注意事项 808 24.4.1 限定据 809 24.4.2 使用组合框 809 24.4.3 使用Access特定函和用户自定义函 810 24.4.4 创建异构联接及交叉据库联接 810 24.4.5 处理OLE对象 810 24.4.6 使用本地获取静态信息 811 24.5 转换现有的应用程序 811 24.5.1 从设计合理的据库开始 811 24.5.2 使用时间戳字段 812 24.5.3 清理查询 812 24.5.4 重做窗体 813 24.5.5 开发高级应用程序 814 24.5.6 利用当前的Access安全性 817 24.5.7 升迁Access据库 817 24.5.8 使用升迁工具 821 24.6 分布客户/服务器解决方案 824 24.6.1 编程设置ODBC据源 825 24.6.2 用服务器脚本重新创建SQL据库 828 24.6.3 向SQL Server加载现有的据 829 24.7 Access和SQL Server的注意事项 829 24.8 小 结 830 第25章 用ADPs开发SQL Server项目 831 25.1 项目文件结构 832 25.1.1 介绍OLE DB 832 25.1.2 链接到据 832 25.1.3 据链接和Access项目 833 25.1.4 据链接和VBA代码 834 25.1.5 Microsoft据引擎 837 25.1.6 SQL Server上的对象 837 25.2 创建过程 839 25.2.1 创建新项目 839 25.2.2 项目属性 842 25.2.3 确保项目安全 843 25.3 创建客户/服务器应用程序 844 25.3.1 使用 845 25.3.2 对象的命名约定 847 25.3.3 SQL Server的据类型 848 25.3.4 使用约束 850 25.3.5 使用触发器 856 25.3.6 优化据访问 858 25.4 使用视图 859 25.5 使用存储过程 862 25.5.1 创建存储过程 863 25.5.2 比较存储过程和Access语法 866 25.6 小 结 868 第六部分 添加最终的交互 869 第26章 使用DAO的启动检查系统例程 871 26.1 执行启动系统检查 872 26.2 使用定制据库属性 877 26.2.1 通过用户界面创建据库属性 877 26.2.2 从VBA访问定制据库属性 878 26.3 通知和记录用户退出应用程序 879 26.3.1 启动时让用户退出 880 26.3.2 在应用程序运行中记录用户退出 881 26.3.3 设置标志文件让用户退出后端 885 26.3.4 启动时测试链接的链接 888 26.4 通过VBA链接和解除链接 889 26.4.1 链接和解除链接位于应用程序文件夹中Jet后端的 890 26.4.2 用OpenFile API调用查找Jet后端 894 26.5 测试和修复损坏的Jet后端据库 897 26.6 检查并通知用户新版本的情况 904 26.7 小 结 907 第27章 使用ADO的启动检查系统例程 908 27.1 执行启动系统检查 909 27.2 采用ADO设置和检索系统的设置 914 27.3 在启动时测试链接的连接 915 27.4 通过VBA和ADO链接 917 27.5 测试和修复损坏的Jet后端据库 921 27.6 使用ADO复制代码 925 27.7 小 结 929 第28章 创建维护例程 930 28.1 创建导出对话框导出应用程序的 930 28.1.1 实用工具的演示 930 28.1.2 查看组成导出实用工具的部件 931 28.1.3 查看创建导出实用工具的代码 935 28.2 根据需要压缩和修复后端 937 28.3 创建通用代码编辑器 942 28.4 后端复制到前端以获取更好的性能 944 28.4.1 创建复制编辑器 945 28.4.2 复制半静态据的启动例程 954 28.5 小 结 960 第七部分 附录 961 附录A 在Access 2000中调试代码 963 A.1 设置正确的模块选项以发挥最大的调试能力 963 A.2 利用立即窗口 967 A.2.1 从应用程序向立即窗口显示据 967 A.2.2 在立即窗口中显示据 968 A.2.3 在立即窗口中给变量和对象赋值 968 A.2.4 从立即窗口运行代码 969 A.3 终止程序运行 970 A.3.1 使用Stop语句 971 A.3.2 使用断点 971 A.3.3 使用Debug.Assert 972 A.4 单步调试 972 A.4.1 按行“逐语句”运行代码 972 A.4.2 用“逐过程”越过代码 973 A.4.3 用“跳出”命令离开例程 973 A.4.4 "运行到光标处”命令略过已检验的代码 973 A.5 查看过程调用顺序 973 A.6 程序运行期间监视达式 974 A.6.1 本地窗口 975 A.6.2 用“快速监视”对话框快速监视 977 A.6.3 在监视窗口中添加和查看达式 978 A.6.4 设置断点条件和编辑达式 979 A.7 用条件编译命令控制代码 981 A.8 小 结 983 附录B ActiveX初步 984 B.1 使用ActiveX控件 984 B.1.1 Access附带的ActiveX控件 985 B.1.2 在窗体上放置ActiveX控件 985 B.1.3 设计期间设置ActiveX控件的属性 987 B.2 用日历控件计算天 988 B.2.1 日历ActiveX控件的属性 989 B.2.2 用日历控件设计VBA 992 B.3 通过Common Dialog ActiveX控件使用标准界面 994 B.3.1 用Common Dialog 控件查找文件 996 B.3.2 用Common Dialog ActiveX控件改变默认的系统打印机 997 B.4 小 结 998 附录C Access 2000和Jet4的错误 999 附录D Microsoft Access LESZYNSKI命名约定 1076 D.1 命名约定初步 1077 D.2 Access对象类型 1078 D.3 对象名的结构 1079 D.3.1 什么是前缀 1079 D.3.2 什么是标记 1080 D.3.3 什么是基本名称 1080 D.3.4 什么是限定符 1080 D.3.5 什么是后缀 1081 D.4 创建据库对象基本名称 1081 D.4.1 基本名称规则 1082 D.4.2 基本名称长度限制 1082 D.4.3 复合基本名称 1083 D.4.4 字段基本名称 1083 D.4.5 基本名称元素的顺序 1085 D.5 据库对象的命名约定 1085 D.5.1 据库窗口对象的标记 1086 D.5.2 窗体和报控件对象的标记 1088 D.5.3 据库对象的前缀 1091 D.5.4 使用菜单宏 1092 D.5.5 据库对象名样例 1093 D.6 创建VBA对象基本名称 1093 D.6.1 VBA对象基本名称的规则 1094 D.6.2 VBA对象基本名称长度 1094 D.6.3 复合VBA 对象基本名称 1094 D.7 VBA对象的命名约定 1095 D.7.1 变量的标记 1095 D.7.2 变量的前缀 1100 D.7.3 常量命名 1101 D.7.4 过程的标记和前缀 1102 D.7.5 用宏代替VBA 1102 D.7.6 Visual Basic对象名示例 1103 D.8 创建自己的标记 1103 D.9 VBA编码约定 1105 D.9.1 编码注释 1105 D.9.2 处理错误 1105 D.10 标准缩写 1106 D.11 标准术语 1108 D.12 LNC的补充信息 1109 D.12.1 如何得到LNC 1109 D.12.2 发送反馈 1109 D.12.3 作者简介 1109 光盘使用约定 1111 配套光盘内容 1113

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧