如何是WORD的宏编辑器中确定光标当前的位置

qingz 2003-12-11 10:48:26
我在WORD中录制一个宏,想根据光标的当前位置进行一些操作,但不知怎样确定光标当前的位置(相对于本行,处在第几个字符后或前)
另外,怎样得到当前行或某行的字符
...全文
103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liugmwx 2004-03-17
  • 打赏
  • 举报
回复
v好
OFFICE之门 2003-12-12
  • 打赏
  • 举报
回复
selection.Information(wdFirstCharacterColumnNumber )
selection.Information(wdFirstCharacterLineNumber )
(1) 分数的输入如果直接输入“1/5”,系统会将其变为“1月5日”,解决办法是:先输入“0”,然后输入空格,再输入分数“1/5”。(2) 序列“001”的输入如果直接输入“001”,系统会自动判断001为数据1,解决办法是:首先输入“'”(西文单引号),然后输入“001”。(3) 日期的输入如果要输入“4月5日”,直接输入“4/5”,再敲回车就行了。如果要输入当前日期,按一下“Ctrl+;”键。(4) 填充条纹如果想在工作簿加入漂亮的横条纹,可以利用对齐方式的填充功能。先在一单元格内填入“*”或“~”等符号,然后单击此单元格,向右拖动鼠标,选横向若干单元格,单击“格式”菜单,选“单元格”命令,在弹出的“单元格格式”菜单,选择“对齐”选项卡,在水平对齐下拉列表选择“填充”,单击“确定”按钮(如图1)。图1(5) 多张工作表输入相同的内容几个工作表同一位置填入同一数据时,可以选一张工作表,然后按住Ctrl键,再单击窗口左下角的Sheet1、Sheet2......来直接选择需要输入相同内容的多个工作表,接着在其的任意一个工作表输入这些相同的数据,此时这些数据会自动出现在选的其它工作表之。输入完毕之后,再次按下键盘上的Ctrl键,然后使用鼠标左键单击所选择的多个工作表,解除这些工作表的联系,否则在一张表单输入的数据会接着出现在选的其它工作表内。(6) 不连续单元格填充同一数据选一个单元格,按住Ctrl键,用鼠标单击其他单元格,就将这些单元格全部都选了。在编辑区输入数据,然后按住Ctrl键,同时敲一下回车,在所有选的单元格都出现了这一数据。(7) 在单元格显示公式如果工作表的数据多数是由公式生成的,想要快速知道每个单元格的公式形式,以便编辑修改,可以这样做:用鼠标左键单击“工具”菜单,选取“选项”命令,出现“选项”对话框,单击“视图”选项卡,接着设置“窗口选项”栏下的“公式”项有效,单击“确定”按钮(如图2)。这时每个单元格的分工就显示出来了。如果想恢复公式计算结果的显示,就再设置“窗口选项”栏下的“公式”项失效即可。图2(8) 利用Ctrl+*选取文本如果一个工作表有很多数据表格时,可以通过选定表格某个单元格,然后按下Ctrl+*键可选定整个表格。Ctrl+*选定的区域为:根据选定单元格向四周辐射所涉及到的有数据单元格的最大区域。这样我们可以方便准确地选取数据表格,并能有效避免使用拖动鼠标方法选取较大单元格区域时屏幕的乱滚现象。(9) 快速清除单元格的内容如果要删除内容的单元格的内容和它的格式和批注,就不能简单地应用选定该单元格,然后按Delete键的方法了。要彻底清除单元格,可用以下方法:选定想要清除的单元格或单元格范围;单击“编辑”菜单“清除”项的“全部”命令,这些单元格就恢复了本来面目。2、单元格内容的合并根据需要,有时想把B列与C列的内容进行合并,如果行数较少,可以直接用“剪切”和“粘贴”来完成操作,但如果有几万行,就不能这样办了。解决办法是:在C行后插入一个空列(如果D列没有内容,就直接在D列操作),在D1输入“=B1&C1;”,D1列的内容就是B、C两列的和了。选D1单元格,用鼠标指向单元格右下角的小方块“■”,当光标变成"+"后,按住鼠标拖动光标向下拖到要合并的结尾行处,就完成了B列和C列的合并。这时先不要忙着把B列和C列删除,先要把D列的结果复制一下,再用“选择性粘贴”命令,将数据粘贴到一个空列上。这时再删掉B、C、D列的数据。下面是一个“&”实际应用的例子。用AutoCAD绘图时,有人喜欢在EXCEL存储坐标点,在绘制曲线时调用这些参数。存放数据格式为“x,y”的形式,首先在Excel输入坐标值,将x坐标值放入A列,y坐标值放入到B列,然后利用“&”将A列和B列合并成C列,在C1输入:=A1&","&B1;,此时C1的数据形式就符合要求了,再用鼠标向下拖动C1单元格,完成对A列和B列的所有内容的合并(如图3-4)。合并不同单元格的内容,还有一种方法是利用CONCATENATE函数,此函数的作用是将若干文字串合并到一个字串,具体操作为“=CONCATENATE(B1,C1)”。比如,假设在某一河流生态调查工作表,B2包含“物种”、B3包含“河鳟鱼”,B7包含总数45,那么: 输入“=CONCATENATE("本次河流生态调查结果:",B2,"",B3,"为",B7,"条/公里。")” 计算结果为:本次河流生态调查结果:河鳟鱼物种为45条/公里。图3图43、条件显示我们知道,利用If函数,可以实现按照条件显示。一个常用的例子,就是教师在统计学生成绩时,希望输入60以下的分数时,能显示为“不及格”;输入60以上的分数时,显示为“及格"。这样的效果,利用IF函数可以很方便地实现。 假设成绩在A2单元格,判断结果在A3单元格。那么在A3单元格输入公式: =if(A2<60,“不及格”,“及格”) 同时,在IF函数还可以嵌套IF函数或其它函数。例如,如果输入: =if(A2<60,“不及格”,if(A2<=90,“及格”,“优秀")) 就把成绩分成了三个等级。如果输入=if(A2<60,“差",if(A2<=70,“”,if(A2<90,“良”,“优”))) 就把成绩分为了四个等级。再比如,公式: =if(SUM(A1:A5>0,SUM(A1:A5),0) 此式就利用了嵌套函数,意思是,当A1至A5的和大于0时,返回这个值,如果小于0,那么就返回0。 还有一点要提醒你注意:以上的符号均为半角,而且IF与括号之间也不能有空格。4、自定义格式Excel预设了很多有用的数据格式,基本能够满足使用的要求,但对一些特殊的要求,如强调显示某些重要数据或信息、设置显示条件等,就要使用自定义格式功能来完成。 Excel的自定义格式使用下面的通用模型:正数格式,负数格式,零格式,文本格式,在这个通用模型,包含三个数字段和一个文本段:大于零的数据使用正数格式;小于零的数据使用负数格式;等于零的数据使用零格式;输入单元格的正文使用文本格式。 我们还可以通过使用条件测试,添加描述文本和使用颜色来扩展自定义格式通用模型的应用。(1)使用颜色 要在自定义格式的某个段设置颜色,只需在该段增加用方括号括住的颜色名或颜色编号。Excel识别的颜色名为:[黑色]、[红色]、[白色]、[蓝色]、[绿色]、[青色]和[洋红]。Excel也识别按[颜色X]指定的颜色,其X是1至56之间的数字,代表56种颜色(如图5)。图5(2)添加描述文本 要在输入数字数据之后自动添加文本,使用自定义格式为:"文本内容"@;要在输入数字数据之前自动添加文本,使用自定义格式为:@"文本内容"。@符号的位置决定了Excel输入的数字数据相对于添加文本的位置。(3)创建条件格式 可以使用六种逻辑符号来设计一个条件格式:>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、=(等于)、<>(不等于),如果你觉得这些符号不好记,就干脆使用“>”或“>=”号来表示。由于自定义格式最多只有3个数字段,Excel规定最多只能在前两个数字段包括2个条件测试,满足某个测试条件的数字使用相应段指定的格式,其余数字使用第3段格式。如果仅包含一个条件测试,则要根据不同的情况来具体分析。自定义格式的通用模型相当于下式:[>;0]正数格式;[<;0]负数格式;零格式;文本格式。下面给出一个例子:选一列,然后单击“格式”菜单的“单元格”命令,在弹出的对话框选择“数字”选项卡,在“分类”列表选择“自定义”,然后在“类型”文本框输入“"正数:"($#,##0.00);"负数:"($ #,##0.00);"零";"文本:"@”,单击“确定”按钮,完成格式设置。这时如果我们输入“12”,就会在单元格显示“正数:($12.00)”,如果输入“-0.3”,就会在单元格显示“负数:($0.30)”,如果输入“0”,就会在单元格显示“零”,如果输入文本“this is a book”,就会在单元格显示“文本:this is a book”。 如果改变自定义格式的内容,“[红色]"正数:"($#,##0.00);[蓝色]"负数:"($ #,##0.00);[黄色]"零";"文本:"@”,那么正数、负数、零将显示为不同的颜色。如果输入“; ;[Yellow];[Green]”,那么正数、负数、零和文本将分别显示上面的颜色(如图6)。图6 再举一个例子,假设正在进行帐目的结算,想要用蓝色显示结余超过$50,000的帐目,负数值用红色显示在括号,其余的值用缺省颜色显示,可以创建如下的格式: “[蓝色][>50000] $#,##0.00_);[红色][<0]( $#,##0.00); $#,##0.00_)” 使用条件运算符也可以作为缩放数值的强有力的辅助方式,例如,如果所在单位生产几种产品,每个产品只要几克某化合物,而一天生产几千个此产品,那么在编制使用预算时,需要从克转为千克、吨,这时可以定义下面的格式: “[>999999]#,##0,,_m"吨"";[>999]##,_k_m"千克";#_k"克"” 可以看到,使用条件格式,千分符和均匀间隔指示符的组合,不用增加公式的数目就可以改进工作表的可读性和效率。另外,我们还可以运用自定义格式来达到隐藏输入数据的目的,比如格式";##;0"只显示负数和零,输入的正数则不显示;格式“;;;”则隐藏所有的输入值。 自定义格式只改变数据的显示外观,并不改变数据的值,也就是说不影响数据的计算。灵活运用好自定义格式功能,将会给实际工作带来很大的方便。5、绘制函数图象做教学工作的朋友们一定会遇到画函数曲线的问题吧!如果想快速准确地绘制一条函数曲线,可以借助EXCEL的图表功能,它能使你画的曲线既标准又漂亮。你一定会问,是不是很难学呀?其实这一点儿也不难,可以说非常简便,不信你就跟我试一试。以绘制y=|lg(6+x^3)|的曲线为例,其方法如下: 在某张空白的工作表,先输入函数的自变量:在A列的A1格输入"X=",表明这是自变量,再在A列的A2及以后的格内逐次从小到大输入自变量的各个值;实际输入的时候,通常应用等差数列输入法,先输入前二个值,定出自变量数与数之间的步长,然后选A2和A3两个单元格,使这二项变成一个带黑色边框的矩形,再用鼠标指向这黑色矩形的右下角的小方块“■”,当光标变成"+"后,按住鼠标拖动光标到适当的位置,就完成自变量的输入。输入函数式:在B列的B1格输入函数式的一般书面表达形式,y=|lg(6+x^3)|;在B2格输入“=ABS(LOG10(6+A2^3))”,B2格内马上得出了计算的结果。这时,再选B2格,让光标指向B2矩形右下角的“■”,当光标变成"+"时按住光标沿B列拖动到适当的位置即完成函数值的计算。图7绘制曲线:点击工具栏上的“图表向导”按钮,选择“X,Y散点图”(如图7),然后在出现的“X,Y散点图”类型选择“无数据点平滑线散点图”;此时可察看即将绘制的函数图像,发现并不是我们所要的函数曲线,单击“下一步”按钮,选“数据产生在列”项,给出数据区域,这时曲线就在我们面前了(如图8)。图8需要注意:如何确定自变量的初始值,数据点之间的步长是多少,这是要根据函数的具体特点来判断,这也是对使用者能力的检验。如果想很快查到函数的极值或看出其发展趋势,给出的数据点也不一定非得是等差的,可以根据需要任意给定。从简单的三角函数到复杂的对数、指数函数,都可以用EXCEL画出曲线。如果用得到,你还可以利用EXCEL来完成行列式、矩阵的各种计算,进行简单的积分运算,利用迭代求函数值(如x^2=x^7+4,可用迭代方法求x值),等等,凡是涉及计算方面的事,找EXCEL来帮忙,它一定会给你一个满意的答案。6、自定义函数虽然Excel已有大量的内置函数,但有时可能还会碰到一些计算无函数可用的情况。假如某公司采用一个特殊的数学公式计算产品购买者的折扣,如果有一个函数来计算岂不更方便?下面就说一下如何创建这样的自定义函数。自定义函数,也叫用户定义函数,是Excel最富有创意和吸引力的功能之一,下面我们在Visual Basic模块创建一个函数。 在下面的例子,我们要给每个人的金额乘一个系数,如果是上班时的工作餐,就打六折;如果是加班时的工作餐,就打五折;如果是休息日来就餐,就打九折。首先打开“工具”菜单,单击“”命令的“Visual Basic编辑器”,进入Visual Basic编辑环境,在“工程-VBAobject”栏当前表上单击鼠标右键,选择“插入”-“模块”,在右边栏创建下面的函数rrr,代码如下: Function rrr(tatol, rr) If rr = "上班" Then rrr = 0.6 * tatol ElseIf rr = "加班" Then rrr = 0.5 * tatol ElseIf rr = "休息日" Then rrr = 0.9 * tatol End If End Function (如图9)。图9这时关闭编辑器,只要我们在相应的列输入rrr(F2,B2),那么打完折后的金额就算出来了(如图10)。图107、矩阵计算Excel的强大计算功能,不但能够进行简单的四则运算,也可以进行数组、矩阵的计算。(1)数组和矩阵的定义矩阵不是一个数,而是一个数组。在Excel里,数组占用一片单元域,单元域用大括号表示,例如{A1:C3},以便和普通单元域A1:C3相区别。设置时先选定单元域,同时按Shift+Ctrl+Enter键,大括弧即自动产生,数组域得以确认。一个单元格就是一个变量,一片单元域也可以视为一组变量。为了计算上的方便,一组变量最好给一个数组名。例如A={A1:C3}、B={E1:G3}等。数组名的设置步骤是:选定数组域,单击“插入”菜单,选择“名称”项的“定义”命令,输入数组名,单击“确定”按钮即可。更简单的命名办法为:选择数组域,单击名称框,直接输入名称就行了。矩阵函数是Excel进行矩阵计算的专用模块。用“插入”-“函数”命令打开“粘贴函数”对话框(如图11),选函数分类栏的“数学与三角函数”,在右边栏常用的矩阵函数有: MDETERM——计算一个矩阵的行列式; MINVERSE——计算一个矩阵的逆矩阵; MMULT——计算两个矩阵的乘积; SUMPRODUCT——计算所有矩阵对应元素乘积之和。图11(2)矩阵的基本计算数组计算和矩阵计算有很大的区别,比如下面这个例子,A和B都是定义好的数组,因为这两个数组都是3×3的,输出结果也是3×3个单元格。计算时先选定矩阵计算结果的输出域,为3×3的单元格区域,然后输入公式。如果输入“=A+B”或“=A-B”,计算结果是数组对应项相加或相减,输入“=A*B”表示数组A和B相乘,输入“=A/B”表示数组A除数组B。如果要进行矩阵计算,就要用到相应的矩阵函数。矩阵相加、相减与数组的加减表达形式是一样的,也是“=A+B”和“=A-B”,表示矩阵相乘可以输入“=MMULT(A,B)”,而矩阵相除是矩阵A乘B的逆矩阵,所以计算公式是“=MMULT(A,MINVERSE(B))”。公式输入后,同时按Shift+Ctrl+Enter键得到计算结果。 对于更复杂的矩阵计算,可以采用分步计算。8、自动切换输入法在一张工作表,往往是既有数据,又有文字,这样在输入时就需要来回在英文之间反复切换输入法,非常麻烦。 如果你要输入的东西很有规律性,比如这一列全是单词,下一列全是汉语解释,你可以用以下方法实现自动切换。方法是:(1)选要输入英文的列,单击“数据”菜单,选择“有效性...”命令,在弹出的“数据有效性”对话框,选“输入法模式”选项卡,在“模式”框选择“关闭(英文模式)”命令,单击“确定”按钮(如图12)。图12(2)选要输入汉字的列,在“有效数据”对话框,单击“IME模式”选项卡,在“模式”框选择“打开”命令,单击“确定”按钮。这样,当光标在前一列时,可以输入英文,在下一列时,直接可以输入文,从而实现了英文输入方式之间的自动切换。9、批量删除空行有时我们需要删除Excel工作薄的空行,一般做法是将空行一一找出,然后删除。如果工作表的行数很多,这样做就非常不方便。我们可以利用“自动筛选”功能,把空行全部找到,然后一次性删除。 做法:先在表插入新的一个空行,然后按下Ctrl+A键,选择整个工作表,用鼠标单击“数据”菜单,选择“筛选”项的“自动筛选”命令。这时在每一列的顶部,都出现一个下拉列表框,在典型列的下拉列表框选择“空白”,直到页面内已看不到数据为止(如图13)。图13在所有数据都被选的情况下,单击“编辑”菜单,选择“删除行”命令,然后按“确定”按钮。这时所有的空行都已被删去,再单击“数据”菜单,选取“筛选”项的“自动筛选”命令,工作表的数据就全恢复了。插入一个空行是为了避免删除第一行数据。如果想只删除某一列的空白单元格,而其它列的数据和空白单元格都不受影响,可以先复制 此列,把它粘贴到空白工作表上,按上面的方法将空行全部删掉,然后再将此列复制,粘贴到原工作表的相应位置上。10、如何避免错误信息在Excel输入公式后,有时不能正确地计算出结果,并在单元格内显示一个错误信息,这些错误的产生,有的是因公式本身产生的,有的不是。下面就介绍一下几种常见的错误信息,并提出避免出错的办法。1)错误值:####含义:输入到单元格的数据太长或单元格公式所产生的结果太大,使结果在单元格显示不下。或是日期和时间格式的单元格做减法,出现了负值。解决办法:增加列的宽度,使结果能够完全显示。如果是由日期或时间相减产生了负值引起的,可以改变单元格的格式,比如改为文本格式,结果为负的时间量。2)错误值:#DIV/0!含义:试图除以0。这个错误的产生通常有下面几种情况:除数为0、在公式除数使用了空单元格或是包含零值单元格的单元格引用。解决办法:修改单元格引用,或者在用作除数的单元格输入不为零的值。3)错误值:#VALUE!含义:输入引用文本项的数学公式。如果使用了不正确的参数或运算符,或者当执行自动更正公式功能时不能更正公式,都将产生错误信息#VALUE!。解决办法:这时应确认公式或函数所需的运算符或参数正确,并且公式引用的单元格包含有效的数值。例如,单元格C4有一个数字或逻辑值,而单元格D4包含文本,则在计算公式=C4+D4时,系统不能将文本转换为正确的数据类型,因而返回错误值#VALUE!。4)错误值:#REF!含义:删除了被公式引用的单元格范围。解决办法:恢复被引用的单元格范围,或是重新设定引用范围。5)错误值:#N/A含义:无信息可用于所要执行的计算。在建立模型时,用户可以在单元格输入#N/A,以表明正在等待数据。任何引用含有#N/A值的单元格都将返回#N/A。解决办法:在等待数据的单元格内填充上数据。6)错误值:#NAME?含义:在公式使用了Excel所不能识别的文本,比如可能是输错了名称,或是输入了一个已删除的名称,如果没有将文字串括在双引号,也会产生此错误值解决办法:如果是使用了不存在的名称而产生这类错误,应确认使用的名称确实存在;如果是名称,函数名拼写错误应就改正过来;将文字串括在双引号;确认公式使用的所有区域引用都使用了冒号(:)。例如:SUM(C1:C10)。 注意将公式的文本括在双引号。7)错误值:#NUM! 含义:提供了无效的参数给工作表函数,或是公式的结果太大或太小而无法在工作表表示。解决办法:确认函数使用的参数类型正确。如果是公式结果太大或太小,就要修改公式,使其结果在-1×10307和1×10307之间。8)错误值:#NULL! 含义:在公式的两个范围之间插入一个空格以表示交叉点,但这两个范围没有公共单元格。比如输入:“=SUM(A1:A10 C1:C10)”,就会产生这种情况。解决办法: 取消两个范围之间的空格。上式可改为“=SUM(A1:A10 ,C1:C10)”11、的应用是一个指令集,用来告诉EXCEL来完成用户指定的动作。类似于计算机程序,但是它是完全运行于EXCEL之的,我们可以使用来完成枯燥的、频繁的重复性工作。 完成动作的速度比用户自己做要快得多。例如,我们可以创建一个,用来在工作表的每一行上输入一组日期,并在每一单元格内居对齐日期,然后对此行应用边框格式。我们还可以创建一个,在“页面设置”对话框指定打印设置并打印文档。由于病毒的影响和对编程的畏惧心理,使很多人不敢用“”,或是不知道什么时候可以找来帮忙。其实你尽管放心大胆地去用,如果只是用“录制”的方法,根本就没有什么难的,只是把一些操作象用录音机一样录下来,到用的时候,只要执行这个,系统就会把那操作再执行一遍。下面给出了的应用场合,只要用“录制”就可以帮你完成任务,而不需要编程。如果想对所录制的再进行编辑,就要有一定的VBA知识了。* 设定一个每个工作表都需要的固定形式的表头;* 将单元格设置成一种有自己风格的形式;* 每次打印都固定的页面设置;* 频繁地或是重复地输入某些固定的内容,比如排好格式的公司地址、人员名单等;* 创建格式化表格;* 插入工作表或工作薄等。需要指出的是,EXCELWORD有些不同之处,对于录制的操作,它会记住单元格的坐标(即所有的引用都是绝对的),所以在涉及到与位置有关的操作时,要格外注意。如果相用相对引用,可以借助于Offset方法,比如下面的语句: ActiveCell.Offset(1,0). range("A1").select 的应用是很广的,上面提到的只是一点点,如果真的用起来,你会发现它有更丰富的内容和更灵活的应用方法。12、图表的应用技巧Excel提供了14种标准的图表类型,每一种都具有多种组合和变换。在众多的图表类型,选用那一种图表更好呢? 根据数据的不同和使用要求的不同,可以选择不同类型的图表。图表的选择主要同数据的形式有关,其次才考虑感觉效果和美观性。 下面给出了一些常见的规则。面积图:显示一段时间内变动的幅值。当有几个部分正在变动,而你对那些部分总和感兴趣时,他们特别有用。面积图使你看见单独各部分的变动,同时也看到总体的变化。条形图:由一系列水平条组成。使得对于时间轴上的某一点,两个或多个项目的相对尺寸具有可比性。比如:它可以比较每个季度、三种产品任意一种的销售数量。条形图的每一条在工作表上是一个单独的数据点或数。因为它与柱形图的行和列刚好是调过来了,所以有时可以互换使用。柱形图:由一系列垂直条组成,通常用来比较一段时间两个或多个项目的相对尺寸。例如:不同产品季度或年销售量对比、在几个项目不同部门的经费分配情况、每年各类资料的数目等。条形图是应用较广的图表类型,很多人用图表都是从它开始的。折线图:被用来显示一段时间内的趋势。比如:数据在一段时间内是呈增长趋势的,另一段时间内处于下降趋势,我们可以通过折线图,对将来作出预测。例如:速度-时间曲线、推力-耗油量曲线、升力系数-马赫数曲线、 压力-温度曲线、疲劳强度-转数曲线、转输功率代价-传输距离曲线等,都可以利用折线图来表示,一般在工程上应用较多,若是其一个数据有几种情况,折线图里就有几条不同的线,比如五名运动员在万米过程的速度变化,就有五条折线,可以互相对比,也可以对添加趋势线对速度进行预测。股价图:是具有三个数据序列的折线图,被用来显示一段给定时间内一种股标的最高价、最低价和收盘价。通过在最高、最低数据点之间画线形成垂直线条,而轴上的小刻度代表收盘价。股价图多用于金融、商贸等行业,用来描述商品价格、货币兑换率和温度、压力测量等,当然对股价进行描述是最拿手的了。饼形图:在用于对比几个数据在其形成的总和所占百分比值时最有用。整个饼代表总和,每一个数用一个楔形或薄片代表。比如:表示不同产品的销售量占总销售量的百分比,各单位的经费占总经费的比例、收集的藏书每一类占多少等。饼形图虽然只能表达一个数据列的情况,但因为表达得清楚明了,又易学好用,所以在实际工作用得比较多。如果想多个系列的数据时,可以用环形图。雷达图:显示数据如何按心点或其他数据变动。每个类别的坐标值从心点辐射。来源于同一序列的数据同线条相连。你可以采用雷达图来绘制几个内部关联的序列,很容易地做出可视的对比。比如:你有三台具有五个相同部件的机器,在雷达图上就可以绘制出每一台机器上每一部件的磨损量。XY散点图:展示成对的数和它们所代表的趋势之间的关系。对于每一数对,一个数被绘制在X轴上,而另一个被绘制在Y轴上。过两点作轴垂线,相交处在图表上有一个标记。当大量的这种数对被绘制后,出现一个图形。散点图的重要作用是可以用来绘制函数曲线,从简单的三角函数、指数函数、对数函数到更复杂的混合型函数,都可以利用它快速准确地绘制出曲线,所以在教学、科学计算会经常用到。还有其他一些类型的图表,比如圆柱图、圆锥图、棱锥图,只是条形图和柱形图变化而来的,没有突出的特点,而且用得相对较少,这里就不一一赘述。这里要说明的是:以上只是图表的一般应用情况,有时一组数据,可以用多种图表来表现,那时就要根据具体情况加以选择。 对有些图表,如果一个数据序列绘制成柱形,而另一个则绘制成折线图或面积图,则该图表看上去会更好些。在EXCEL允许这创建这样的组合图表,但如果想创建一种EXCEL不允许的组合图表类型,比如不可能将一个二维图同一个三维图表混在一起,这种组合是不可能的,系统就会显示错误信息。怎么建立混合图表呢?单击“图表向导”按钮,选择“自定义类型”选项卡,这里还躲着二十种图表类型(如图14),也有各种组合形式。如果你对这些内部定义的形式还不满意,就单击“自定义”选项钮,按照向导自己定义全新的图表类型。
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
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。   Bootcfg   bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。   含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。   用法:   bootcfg /default  设置默认引导项。   bootcfg /add    向引导列表添加 Windows 安装。   bootcfg /rebuild  重复全部 Windows 安装过程并允许用户选择要添加的内容。   注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。   bootcfg /scan    扫描用于 Windows 安装的所有磁盘并显示结果。   注意:这些结果被静态存储,并用于本次会话。如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。   bootcfg /list   列出引导列表已有的条目。   bootcfg /disableredirect 在启动引导程序禁用重定向。   bootcfg /redirect [ PortBaudRrate] |[ useBiosSettings]   在启动引导程序通过指定配置启用重定向。   范例: bootcfg /redirect com1 115200 bootcfg /redirect useBiosSettings   hkdsk   创建并显示磁盘的状态报告。Chkdsk 命令还可列出并纠正磁盘上的错误。   含有下列参数的 chkdsk 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 chkdsk 命令。   vol [drive:] [ chkdsk [drive:] [/p] [/r]   参数  无   如果不带任何参数,chkdsk 将显示当前驱动器的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p   即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r   找到坏扇区并恢复可读取的信息。隐含着 /p 参数。   注意 Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)找到该文件,将试着在 Windows 安装 CD 找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart   创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。   diskpart [ /add |/delete] [device_name |drive_name |partition_name] [size]   参数 无   如果不带任何参数,diskpart 命令将启动 diskpart 的 Windows 字符模式版本。   /add   创建新的分区。   /delete   删除现有分区。   device_name   要创建或删除分区的设备。设备名称可从 map 命令的输出获得。例如,设备名称:   DeviceHardDisk0   drive_name   以驱动器号表示的待删除分区。仅与 /delete 同时使用。以下是驱动器名称的范例:   D:   partition_name   以分区名称表示的待删除分区。可代替 drive_name 使用。仅与 /delete 同时使用。以下是分区名称的范例:   DeviceHardDisk0Partition1    大小   要创建的分区大小,以兆字节 (MB)表示。仅与 /add 同时使用。   范例   下例将删除分区: diskpart /delete Device HardDisk0 Partition3 diskpart /delete F:   下例将在硬盘上添加一个 20 MB 的分区:   diskpart /add Device HardDisk0 20   Fixboot

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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