如何显示每页小计和最后页总计

Sunnyyuan 2003-03-04 05:21:58
我需要分多页显示数据,不知如何处理每页小计和最后页总计
数据来自查询数据库表。
我通过调用自定义过程display来格式化输出网页。
网页中用table插入每行记录。
<center><font face="仿宋_GB2312" size="5">帐户当前余额查询结果</font> 
<p>

<%Rs.pagesize=15
RowCount =Rs.pagesize
call display
%>
<table border="1" cellspacing="0" cellpadding="4" width="687" >
<td align="center" width="48" ><font size="3">帐户号</font><td align="center" width="55"><font size="3">帐户简称</font><td align="center" width="86"><font size="3">上次余额(元)</font>
<td align="center" width="84"><font size="3">当前余额(元)</font><td align="center" width="100"><font size="3">开户行</font>
<td align="center" width="48"><font size="3">帐户性质</font>
<td align="center" width="88"><font size="3">最后一次发生额</font>
<td align="center" width="70"><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;
font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman";mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;
mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">当天交易数<td align="center" width="132"><font size="3">最后变动日期</font>
<tr>
<%do while not rs.eof AND RowCount>0%>
<td align="center" height="1" width="48"><%Response.Write "<a href='act_bal_info1.asp?act_no="& rs("act_no") &"' target=blank>"%><%response.write rs("act_bank_no")%>
<td align="center" width="55"><%response.write rs("act_name2")%>  
<td align="center" height="1" width="86"><%response.write unencrypt(trim(rs("act_old_bal")))%>  
<td align="center" width="84"><%response.write unencrypt(rs("act_cur_bal"))%>  
<td align="center" width="100" ><%response.write rs("bank_name")%>  
<td align="center" width="48" ><%response.write rs("act_qua")%>  

<td align="center" width="88" ><%response.write unencrypt(rs("act_amt"))%>
<td align="center" width="70" ><%response.write rs("act_count")%>  
<td align="center" width="132" ><%response.write rs("act_date")%>  
<tr>

<%
Rs.MoveNext
RowCount=RowCount-1
Loop
if request("design")<>"" then
call query_log
design=""
end if
else%>

</table>
</center>

<%
if request("cost")="" then
response.write "暂时没有数据!"
else
%>

' 以下是display过程


<%
sub display ' 翻页显示
rs.absolutepage=1

if request("page11")<>"" then
Rs.AbsolutePage =Request("page11")
end if

if request("sign_syh")=011 then
Rs.AbsolutePage =rs.pagecount
end if

if request("sign_syh")=000 then
Rs.AbsolutePage =1
end if

if request("sign_syh")=010 then
if Rs.AbsolutePage <>rs.pagecount then Rs.AbsolutePage=Rs.AbsolutePage+1
end if

if request("sign_syh")=001 then
if Rs.AbsolutePage <>1 then Rs.AbsolutePage=Rs.AbsolutePage-1
end if

dim len_i,len_p,len_q,len_j
dim design_s
design_s=1

if request("sign_syh")=101 then
if trim(request.form("page"))<>"" then
len_i=len(trim(request.form("page")))
for len_p=1 to len_i
if (57<asc(mid(trim(request.form("page")),len_p,1))) or (asc(mid(trim(request.form("page")),len_p,1))<48) then
design_s=0
end if
next
if asc(mid(trim(request.form("page")),1,1))=48 then design_s=0
if design_s=1 then
len_q=int(trim(request.form("page")))
len_j=rs.pagecount

if (len_q<=len_j) then
if len_q>0 then
rs.absolutepage=len_q
end if
end if
end if
end if
end if

i=rs.absolutepage

response.write " "
response.write " "
response.write " "
response.write " "
response.write " "
response.write "共"
response.write rs.pagecount
response.write "页"

response.write " "

response.write "第"
response.write Rs.AbsolutePage
response.write "页"

response.write "<input type='submit' value='第一页' name='bfirst' onclick='change_value(this)'>"
response.write "<input type='submit' value='上一页' name='bup' onclick='change_value(this)'>"
response.write "<input type='submit' value='下一页' name='bnext' onclick='change_value(this)'>"
response.write "<input type='submit' value='最末页' name='blast' onclick='change_value(this)'>"
response.write "<input type='submit' value='查 询' name='bquit' onclick='change_value(this)'>"
response.write "<input type='submit' value='最新记录' name='bnew' onclick='bal_open(this)'>"
response.write "第"
response.write "<input type=text name=page size='3'>"
response.write "页"
response.write "<input name='query' type='submit' value='查 看' onclick='change_value(this)'>"
response.write "<input type='hidden' value='00' name='sign_syh' >"

item_term1=request("item_term1")
item_select1=request("item_select1")
cost=request("cost")
item_term2=request("item_term2")
item_select2=request("item_select2")
cost1=request("cost1")
item_term3=request("item_term3")
item_select3=request("item_select3")
cost2=request("cost2")

response.write "<input type='hidden' value= '"& item_term1 &"' name='item_term1' >"
response.write "<input type='hidden' value= '"& item_select1 &"' name='item_select1' >"
response.write "<input type='hidden' value= '"& cost &"' name='cost' >"

response.write "<input type='hidden' value= '"& item_term2 &"' name='item_term2' >"
response.write "<input type='hidden' value= '"& item_select2 &"' name='item_select2' >"
response.write "<input type='hidden' value= '"& cost1 &"' name='cost1' >"

response.write "<input type='hidden' value= '"& item_term3 &"' name='item_term3' >"
response.write "<input type='hidden' value= '"& item_select3 &"' name='item_select3' >"
response.write "<input type='hidden' value= '"& cost2 &"' name='cost2' >"
response.write "<input type='hidden' name='page11' value='"& i &"'>"
end sub%>


现在无法实现在每页中显示小计金额和最后页中显示总计金额
帮帮我啊!!
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunnyyuan 2003-03-05
  • 打赏
  • 举报
回复
楼上最好给一段示例代码,先多谢了
cdsun 2003-03-04
  • 打赏
  • 举报
回复
你怎么写得这么长啊?

分页不用你这么麻烦啊!
Sunnyyuan 2003-03-04
  • 打赏
  • 举报
回复
尽量不要改动display过程,因为还有其他网页调用
excel常用函数公式及技巧搜集 从身份证号码中提取出生年月日 从身份证号码中提取出性别 从身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格中自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、中、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏中的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序列 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名列产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 中国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名 无并列排名 有并列分段排名 无并列分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序列号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N列中列出A1:L9中每列都存在的数值 自动为性别编号的问题 【文本与面设置】 EXCEL中如何删除*号 将字符串中的星号“*”替换为其它字符 去空格函数如何去掉字符和单元格里的空格 怎样快速去除表中不同行和列的空格 如何禁止输入空格 代替单元格中字符串 把单元格中的数字转变成为特定的字符格式 把有六百多个单元格的一列,变成一的多列 将N列变M列公式归纳为 一列变四列 四列变一列 重复四次填充 多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号中的小写字母变成大写字母 让姓名左右对齐 数字居中而小数点又对齐 计算指定单元格编号组中非空单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一列的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格中,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置码 Excel表格里如何插入码的? 如何设置脚首为第5 表格的脚问题 无拘无束的眉 打印表头 Excel打印中如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel中插入空白行 快速删除工作表中的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签去掉的? 去掉默认的表格线(网线)表格的框线 列标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行列快速转换 将原有列中的内容倒置过来 快速回到A1单元格 复制粘贴中回车键的妙用 一次选中批注单元格 一次在所有单位格中插入批注 在公式中插入批注 不连续单元格填充同一数据 空白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel中鼠标双击妙用 Excel中快速定位的技巧实例 在Excel中插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字中间的数 三个数中,如何取出中间那个 取数值后三位公式 取数函数 如何把单元格中的数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容中字符串 如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉最后一个字 讨如何去掉单元格中的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一列已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格中的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格中 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格中的数全部变成万元表示 有何办法实现将一张表中的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel中设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a列动态求和 动态求和公式 列的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔列将相同项目进行求和 隔行或隔列加总 请问如何在一百行内做隔行相加 如何将间隔一定的列的数据相加呢 隔列求和(A、B列) 隔列求和的公式 隔列求和 关于隔行、隔列求和的问题 EXCEL中求两列的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10中的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计中的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表中 统计最大的连续次数3个“不重复”个数统计在一列有重复的姓名中,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据中发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格中字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或中间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或中间值)平均数怎么弄 去掉其中两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值中去掉最高与最低然后求平均值 求最大值(n列) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组中最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格中包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一列中最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据中自动获取最后一个数据 两列数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一列中不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C列中输入工号在D列显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效性
excel常用函数公式及技巧搜集 从身份证号码中提取出生年月日 从身份证号码中提取出性别 从身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格中自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、中、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏中的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序列 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名列产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 中国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名 无并列排名 有并列分段排名 无并列分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序列号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N列中列出A1:L9中每列都存在的数值 自动为性别编号的问题 【文本与面设置】 EXCEL中如何删除*号 将字符串中的星号“*”替换为其它字符 去空格函数如何去掉字符和单元格里的空格 怎样快速去除表中不同行和列的空格 如何禁止输入空格 代替单元格中字符串 把单元格中的数字转变成为特定的字符格式 把有六百多个单元格的一列,变成一的多列 将N列变M列公式归纳为 一列变四列 四列变一列 重复四次填充 多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号中的小写字母变成大写字母 让姓名左右对齐 数字居中而小数点又对齐 计算指定单元格编号组中非空单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一列的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格中,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置码 Excel表格里如何插入码的? 如何设置脚首为第5 表格的脚问题 无拘无束的眉 打印表头 Excel打印中如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel中插入空白行 快速删除工作表中的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签去掉的? 去掉默认的表格线(网线)表格的框线 列标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行列快速转换 将原有列中的内容倒置过来 快速回到A1单元格 复制粘贴中回车键的妙用 一次选中批注单元格 一次在所有单位格中插入批注 在公式中插入批注 不连续单元格填充同一数据 空白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel中鼠标双击妙用 Excel中快速定位的技巧实例 在Excel中插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字中间的数 三个数中,如何取出中间那个 取数值后三位公式 取数函数 如何把单元格中的数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容中字符串 如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉最后一个字 讨如何去掉单元格中的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一列已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格中的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格中 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格中的数全部变成万元表示 有何办法实现将一张表中的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel中设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a列动态求和 动态求和公式 列的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔列将相同项目进行求和 隔行或隔列加总 请问如何在一百行内做隔行相加 如何将间隔一定的列的数据相加呢 隔列求和(A、B列) 隔列求和的公式 隔列求和 关于隔行、隔列求和的问题 EXCEL中求两列的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10中的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计中的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表中 统计最大的连续次数3个“不重复”个数统计在一列有重复的姓名中,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据中发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格中字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或中间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或中间值)平均数怎么弄 去掉其中两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值中去掉最高与最低然后求平均值 求最大值(n列) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组中最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格中包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一列中最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据中自动获取最后一个数据 两列数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一列中不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C列中输入工号在D列显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效性
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
Report Machine 2.4 =================== 这是一个报表控件包,For Borland Delphi Versions 3,4,5,6.100% 源码. 最后更新日期:2002.05.25. 目录 ----- 说明 特点 最后更新 历史 安装 Demo程序 版权说明 注册 说明 ---- Report Machine是一个报表控件包, Report Machine is reporting tool component. It consists of report engine,designer and preview. Its capabilities comparable with in QuickReport,ReportBuilder. It written on 100% Object Pascal and can be installed in Delphi 2/3/4/5/6 and C++Builder 1/3/4/5/6. 特点 ---- 复杂的报表?在report machine面前,还会有什么复杂的报表存在吗? 不,不会有的,因为这是一个功能强大,完全自动化、完全自由设计的报表控件。 对于一般的主从表,单表,你甚至只需要点动鼠标次数=你的数据字段个数就可以 完成一个完全自定义的,并且支持用户进行格式修改加工,重新设计格式的报表! 想想fast report 吧,report machine会fast report会的,还会它不会的! 这是一个完全中文化报表控件,支持delphi3到delphi6,BCB3到BCB6。 它的最大优点就是:强大与自由! report machine目前主要能做的: 一、支持屏幕打印,控制方法多样,可以打印全部rxlib控件 全部InfoPower控件,TDBGrid,TStringGrid,TImage,TEdit等,TDBGridEh,f1book, TDecisionGrid等等众多控件。 二、支持最终用户设计、修改报表,只需连接相关的数据源,指出数据的位 置(设置报表样式),无论是主从表,子报表,套表,都可迅速生成。开发 一个报表只需几分钟的时间。 三、报表样式可以保存为rmf格式,下次可通过读入使用(配合SQL脚本就可以生成 报表)。并可以把带数据的报表保存为rmp格式,在任何机器上都可以浏览、打印, 而不需要数据库。 四、生成后的报表支持修改,包括字体的设置,边框的设置,修改内容等。 五、报表编辑器内自带ado,bde,ibx,Diamond dao,dbisam等数据访问控件,可以 通过这些控件开发独立的报表制作工具。其使用方法和delphi中的控件是一样的。 六、完全、自由自定义面、边距、字体,标题和脚,并可以在自认合适的 地方插入函数来实现当前日期,合计,总合计等功能,合计字段可以放在头,分 组头,并支持条件合计,对分组合计,分合计,总计等只需简单地设置属性即可。 七、完全支持d3--d6,c3--c6。 八、报表中可以在自认合适的事件(on beforeprint,on afterprint等)中加入程 序脚本,以控制、或实现更复杂的打印效果。 九、更新迅速,可根据使用人员与用户的意见,不断的加入新的功能。 十、首家支持缩放打印功能,可以根据打印时选择的纸张自动缩放报表。 十一、多种格式转换,可以把做出的报表转换为html,xml,bmp,jpeg等等格式。 十二、自动对超长记录折行,超长的内容也会自动折行。 十三、最新增加GridView,类似于电子表格,非常非常适合制作复杂报表 最新更新和问题解答请访问论坛:www.pcjingning.com 最后更新 -------- 新版本:2002/05/25更新,欢迎下载(有免费版下载) --FormReport可以打印ListView --TRMReport增加DefaultDictionaryFile属性,可以设置默认数据字典 v.2.2(Build 2002/01/28) - 完善缩放打印功能 - TRMCrossView去掉一些BUG v.2.2(Build 2002/01/11) - 增加缩放打印功能, - TRMFormReport打印StringGrid,DBGrid等Grid时,对超宽Grid增加分功能, - MemoView增加属性CalcValue,可以访问MemoView中的内容, - CalcMemoView增加TotalCalc属性,现在CalcMemoView科轻松实现小计累计, 总计,并且可以放在头,栏目头,分组头,数据头。 v.2.2(Build 2001/12/10) - 修正一些BUG, - 增加了导出到BMP,GIF,JPEG文件功能, - Designer增加最近打开文件功能, - 添加字段的时候可以选择不要在字段名前附加表名。 v.2.1(Build 2001/11/29) - 修正了几个BUG. v.2.1(Build 2001/11/22) - 修正了几个BUG. - 增加多语言功能. v.2.1(Build 2001/11/15) - 修正了几个BUG. v.2.1(Build 2001/11/12) - TRMBandView增加属性LinesPerPage,可以设置打印记录数, - TRMBandView增加属性PrintColFirst,当Column>;1时,可以选择先列后行还是 先行后列打印, - 修正没有安装打印机时的错误, - 打印预览功能有些改变和增强. v.2.1(Build 2001/11/07) - EHLib可以打印Footer了, - TRMFormReport增加分组功能, - TRMCalcMemoView可以放在GroupHeader上了, - TRMCalcMemoView增加Filter属性,之计算满足条件的纪录, - 其他一些细节上的改变. v.2.1(Build 2001/11/01) - TRMFormReport中增加了数据对齐方式,数据显示格式. v.2.1(Build 2001/10/30) - 修正预览时,面设置的错误. v.2.1(Build 2001/10/25) - TRMFormReport可以打印Rx,InfowPower全系列控件, - TRMFormReport可以打印EHLib, - 可以打印多个PageFooter,方便制作小计. v.2.1(Build 2001/10/18) - 大大增强了TRMFormReport功能,可以与ScreenReport, Dev ExpressPrinting System媲美; - TRMFormReport增加了表格的自动缩放功能.可根据纸张的大小自动进行水平或 垂直方向的表格缩放.也就是说程序员不必再为迁就打印宽度和高度而反复调 整屏幕格式和字体大小,而且对于屏幕上带横向滚动杆的任意超宽表格都可以 缩放到指定大小的纸上.再也不用考虑打印超出纸张的问题了,也不会为迁就 打印而影响屏幕格式的美观而感到遗憾!使得表格打印更直接更方便,最大程 度地减少您的工作量; - TRMFormReport增加一个事件OnPrintObject,在这个事件内程序员可自行编制 TRMFormReport不直接支持打印的任意控件;; - 请注意:TRMDBGridReport,TRMwwDBGridReport等已不再维护,因为TRMFormReport 具有以上几个GridReport的所有功能,并且更强. v.2.1(Build 2001/10/08) - 改掉了几个BUG;; - 增加TRMAngledLabel,可以打印倾斜角度的文字;; - TRMGridReport,TRMFormReport等做了一些改进. v.2.1(Build 2001/09/25) - 改掉了几个BUG;; - 背景图片增加Top,Left属性;; - TRMPictureView增加支持GIF格式图片. v.2.1(Build 2001/09/21) - 增加TRMStringGridReport,直接打印TStringGrid,TDrawGrid等继承自TCustomGrid的Grid;; - 增加TRMDecisionGridReport,直接打印TDecisitonGrid;; - 增加背景图片功能,可以实现套打. v.2.1(Build 2001/09/17) - 修正TRMOLEView只能缩放显示的错误,现在可以按实际大小,居中等显示. - 增加TRXWWRichView,可以打印InfowPowwer中的TwwDBRichView. v.2.1(Build 2001/09/14) - 修正TRMRxRichView插入字段的错误. v2.1 - 改掉一些BUG - 增加属性PrintFrame,PrintVisible,可以实现套打;; - 报表增加选项(布缩放边框宽度),可以防止表格线变粗;; - Printer单元作了大量修改,Windows2000下支持自定义纸张. v1.1 - 对DataManger作了大量修改,现支持各种数据存取控件(直接支持BDE,ADO,IBX,Diamond);; - 增加Query Designer;; - 增加Report Explorer. v1.0 Preview 4 - Bug fixes;; - Added RX DateEdit control to the Dialog controls;; - Added possibility to excluding particular dataset or entire datamodule from all db-related lists (see TfrDataDictionary.DisabledDatasets and code of main demo);; - Added OnBeforePrint property to the report page (see Object Inspector) and OnActivate event to the dialog form;; - Now you can tune export options in the export components (TfrTextExport and etc);; - TRMFormReport做了修改,可以增加TRMFormReport不支持的控件;; - 其它功能增强或修改. v1.0 Preview 3. - Bug fixes;; - Added Data dictionary;; - Some changes in interface;; - 增加Auto Append Blank - TGridReport(TwwGridReport)改进,支持颜色,对齐方式.下一版本将支持分组,合计功能. - 下一版本将增加一个组件TFormReport,直接打印Form,类似于Screen Report. v1.0 Preview 2. - Fixed old bugs, added new;; - 一些性能改善; - 对备注内容处理更完善;; - Added mouse wheel support in designer and preview (D4 and above);; - Object Inspector now looks like Delphi OI;; - Added expression builder;; - More options for ";Text"; object: line and char spacing, top and left gaps, ";Suppress repeated values"; option;; (可是设置行距,字距) - Now you can turn off variable processing in the ";Text"; and ";RichText"; objects. See ";Text only"; option of these objects;; - Added TRMReport.OnObjectClick event. This event fires when user clicks on any object when previewing report;; - Added new Child band;; - Improved export filters (frames export in TXT, tables in RTF, pictures in HTML);; added more export options;; - Added paper bins support;; - Added component for printing table;; - Added ";Columns"; property for data-bands. See last report in the demo;; - Code changed: TfrReport.OnEnterRect now called OnBeforePrint;; - Added TRMDesigner.OnLoadReport, OnSaveReport and CloseQuery properties. 历史记录 -------- 2001.08.30 Report Machine 2.1 2000.05.10 Report Machine 1.1 2000.03.17 Report Machine 1.0正式版 2000.02.21 Report Machine 1.0 Preview 3. 2000.02.12 Report Machine 1.0 Preview 2. 2000.01.25 Report Machine 1.0 Preview 1. Report Machine的第一版. 安装 ----- 1.如果没有安装RxLib 2.60及以上版本,请打开RM.INC文件, 将";{$DEFINE RX}";改为";{$DEFINE RX}"; 2.如果没有安装InfoPower及以上版本,请打开RM.INC文件, 将";{$DEFINE InfoPower}";改为";{$DEFINE InfoPower}"; 3.Delphi 6.X 从Delphi IDE中卸载以前的Report Machine版本。 打开菜单";FileOpen...";打开DclRMachine6.DPK,选择";Install"; 4.Delphi 5.X 从Delphi IDE中卸载以前的Report Machine版本。 打开菜单";FileOpen...";打开DclRMachine5.DPK,选择";Install"; 5.Delphi 4.X 从Delphi IDE中卸载以前的Report Machine版本。 打开所有的DFM文件,选择保存。(因为我是在Delphi 5.0中完成的,DFM文件 与4.X有些不兼容) 打开菜单";FileOpen...";打开DclRMachine4.DPK,选择";Install"; 6.Delphi 4.X 从Delphi IDE中卸载以前的Report Machine版本。 打开所有的DFM文件,选择保存。(因为我是在Delphi 5.0中完成的,DFM文件 与3.X有些不兼容) 打开菜单";FileOpen...";打开DclRMachine3.DPK,选择";Install"; Demo程序 --------- Report Machine包含一些例子,这是学习使用Report Machine的最快途径。 http://rmachine.8u8.com/download/demos.rar 需要用BDE Administrator建立一个Database Alias: 名称: RMachineDemo Path: 版权说明 ---------- Report Machine可免费应用于非商业应用,如果应用于商业用途,请与作者联系。 付费 ------------------ Report Machine是共享控件,如果你做了东西,赚到了money,并且认为Report Machine还不错,请赞助我, 以便作者有动力开发出更好的产品,如果只是拿来玩玩,不需注册. 参考价格:(这只是参考价格,多少你看着办) 个人:40元人民币 公司:200元人民币 现在提供下载的是免费版本,这是个免费版,与标准版相比少了一些控件,包含源码。 网上付费:http://rmachine.y365.com/html/register.htm 汇款地址:天津市蓟县供电局计算站 王海丰 301900 如果你在使用中有什么问题或建议,或发现BUG,请与作者联系,谢谢!!! Report Machine WWW: http://rmachine.yeah.net http://reportmachine.delphibbs.com 作者: wanghaifeng_1@163.net

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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