下载

5下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Excel Vba 之快速上手

Excel Vba 之快速上手.pdf

Excel Vba 之快速上手

rk920810
2009-10-22 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《Excel Vba 之快速上手pdf》,可适用于高等教育领域

ExcelVBA快速上手之宝典zhoujibin年月写于ExcelHome论坛目录第一章ExcelVBA简明语言之基础第一节标识符第二节运算符第三节数据类型第四节变量与常量第五节数组使用第六节注释和赋值语句第七节书写规范第八节条件语句第九节循环语句第十节其他类语句和错误语句处理第十一节过程和函数第十二节内部函数第二章ExcelVBA常用对象之使用第一节文件的操作)Excel文件)文本文件)Access文件)文件其它操作第二节工作表操作)新建与删除)隐藏与显示)锁定与保护第三节单元格操作)如何引用单元格和区域)如何处理单元格和区域)单元格和区域的定位)单元格和区域的保护与锁定第四节图表的操作)新建及类型)设置图表的数据)图表格式设置)散点图增加系列和文字)实例第三章ExcelVBA高级使用第一节WinAPI的使用)声明API函数)使用API函数)声明补充说明)实例第二节ExcelVBA程序的保密)使用动态连接库DLL)获得硬盘物理地址)加密与注册第四章ExcelVBA优化及结束语第一节ExcelVBA优化第二节结束语附录IExcelVBA对象框架图第一章VBA语言基础第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号利用它可以完成对变量、常量、过程、函数、类等的引用。二.命名规则)字母打头由字母、数字和下划线组成如AbAbc)字符长度小于(Excel以上中文版等可以用汉字且长度可达个字符))不能与VB保留关键字重名如public,private,dim,goto,next,with,integer,single等第二节运算符定义:运算符是代表VB某种运算功能的符号。)赋值运算符=)数学运算符、(字符连接符)、(加)、(减)、Mod(取余)、(整除)、*(乘)、(除)、(负号)、^(指数))逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含))关系运算符=(相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is)位运算符Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)第三节数据类型VBA共有种数据类型具体见下表此外用户还可以根据以下类型用Type自定义数据类型。数据类型类型标识符字节字符串型String$字符长度()字节型Byte无布尔型Boolean无整数型Integer长整数型Long单精度型Single!双精度型Double#日期型Date无公元货币型Currency小数点型Decimal无变体型Variant无以上任意类型可变对象型Object无第四节变量与常量)VBA允许使用未定义的变量默认是变体变量。)在模块通用说明部份加入OptionExplicit语句可以强迫用户进行变量定义。)变量定义语句及变量作用域Dim变量as类型'定义为局部变量如DimxyzasintegerPrivate变量as类型'定义为私有变量如PrivatexyzasbytePublic变量as类型'定义为公有变量如PublicxyzassingleGlobal变量as类型'定义为全局变量如GloblalxyzasdateStatic变量as类型'定义为静态变量如Staticxyzasdouble一般变量作用域的原则是那部份定义就在那部份起作用模块中定义则在该模块那作用。)常量为变量的一种特例用Const定义且定义时赋值程序中不能改变值作用域也如同变量作用域。如下定义:ConstPi=assingle第五节数组数组是包含相同数据类型的一组变量的集合对数组中的单个变量引用通过数组索引下标进行。在内存中表现为一个连续的内存块必须用Global或Dim语句来定义。定义规则如下:Dim数组名(lowertoupper,lowertoupper,…)astypeLower缺省值为。二维数组是按行列排列如XYZ(行列)。除了以上固定数组外VBA还有一种功能强大的动态数组定义时无大小维数声明在程序中再利用Redim语句来重新改变数组大小原来数组内容可以通过加preserve关键字来保留。如下例:Dimarray()asdouble:Redimarray():array()=:Redimpreservearray(,)第六节注释和赋值语句)注释语句是用来说明程序中某些语句的功能和作用VBA中有两种方法标识为注释语句。单引号’如:’定义全局变量可以位于别的语句之尾也可单独一行Rem如:Rem定义全局变量只能单独一行)赋值语句是进行对变量或对象属性赋值的语句采用赋值号=如X=:Formcaption=”我的窗口”对对象的赋值采用:setmyobject=object或myobject:=object第七节书写规范)VBA不区分标识符的字母大小写一律认为是小写字母)一行可以书写多条语句各语句之间以冒号:分开)一条语句可以多行书写以空格加下划线来标识下行为续行)标识符最好能简洁明了不造成歧义。第八节条件语句)If…Then…Else语句IfconditionThenstatementsElseelsestatements如:IfA>BAndC<DThenA=BElseA=C如:Ifx>Thenx=x或者可以使用块形式的语法:IfconditionThenstatementsElseIfconditionnThenelseifstatementsElseelsestatementsEndIf如:IfNumber<ThenDigits=ElseIfNumber<ThenDigits=ElseDigits=EndIf)SelectCase…Case…EndCase语句如:SelectCasePidCase“A”Price=Case“A”Price=……CaseElsePrice=EndCase)Choose函数choose(index,choce,choice,…,choicen)可以用来选择自变量串列中的一个值并将其返回index必要参数数值表达式或字段它的运算结果是一个数值且界于和可选择的项目数之间。choice必要参数Variant表达式包含可选择项目的其中之一。如:GetChoice=Choose(Ind,"Speedy","United","Federal"))Switch函数Switch(expr,value,expr,value,exprn,valuen)switch函数和Choose函数类似但它是以两个一组的方式返回所要的值在串列中最先为TRUE的值会被返回。expr必要参数要加以计算的Variant表达式。value必要参数。如果相关的表达式为True则返回此部分的数值或表达式没有一个表达式为TrueSwitch会返回一个值。第九节循环语句)ForNext语句以指定次数来重复执行一组语句Forcounter=startToendStepstep'step缺省值为statementsExitForstatementsNextcounter如:ForWords=ToStep'建立次循环ForChars=To'建立次循环MyString=MyStringChars'将数字添加到字符串中NextChars'IncrementcounterMyString=MyString""'添加一个空格NextWords)ForEach…Next语句主要功能是对一个数组或集合对象进行让所有元素重复执行一次语句ForEachelementIngroupStatementsExitforStatementsNextelement如:ForEachrangInrangeWithrangeinteriorcolorindex=pattern=xlSolidEndwithNext这上面一例中用到了With…EndWith语句目的是省去对象多次调用加快速度语法为:WithobjectstatementsEndWith)Do…loop语句在条件为true时重复执行区块命令Do{while|until}condition'while为当型循环until为直到型循环顾名思义不多说啦StatementsExitdoStatementsLoop或者使用下面语法Do'先do再判断即不论如何先干一次再说StatementsExitdoStatementsLoop{while|until}condition第十节其他类语句和错误语句处理一.其他循环语句结构化程序使用以上判断和循环语句已经足够建议不要轻易使用下面的语句虽然VBA还支持。)Gotoline该语句为跳转到line语句行)Onexpressiongosubdestinatioinlist或者onexpressiongotodestinationlist语句为根据exprssion表达式值来跳转到所要的行号或行标记)Gosubline…line…Return语句Return返回到Gosubline行如下例:Subgosubtry()DimnumNum=inputbox(“输入一个数字此值将会被判断循环”)Ifnum>thenGosubRoutine:Debugprintnum:ExitsubRoutine:Num=numReturnEndsub)while…wend语句只要条件为TRUE循环就执行这是以前VB老语法保留下来的如下例:whilecondition‘whileI<statements‘I=Iwend‘Wend二.错误语句处理执行阶段有时会有错误的情况发生利用OnError语句来处理错误启动一个错误的处理程序。语法如下:OnErrorGotoLine‘当错误发生时会立刻转移到line行去OnErrorResumeNext‘当错误发生时会立刻转移到发生错误的下一行去OnErroGoto‘当错误发生时会立刻停止过程中任何错误处理过程第十一节过程和函数过程是构成程序的一个模块往往用来完成一个相对独立的功能。过程可以使程序更清晰、更具结构性。VBA具有四种过程:Sub过程、Function函数、Property属性过程和Event事件过程。一.Sub过程Sub过程的参数有两种传递方式:按值传递(ByVal)和按地址传递(ByRef)。如下例:Subpassword(ByValxasinteger,ByRefyasinteger)Ify=theny=xyelsey=xyx=xEndsubSubcallpassword()DimxasintegerDimyasintegerx=y=Callpassword(x,y)‘调用过程方式:Call过程名(参数,参数…)过程名参数,参数…debugprintx,y‘结果是、y按地址传递改变了值而x按值传递未改变原值Endsub二.Function函数函数实际是实现一种映射它通过一定的映射规则完成运算并返回结果。参数传递也两种:按值传递(ByVal)和按地址传递(ByRef)。如下例:Functionpassword(ByValxasinteger,byrefyasinteger)asbooleanIfy=theny=xyelsey=xyx=xify=thenpassword=trueelsepassword=falseEndFunctionSubcallpassword()DimxasintegerDimyasintegerx=y=ifpasswordthen‘调用函数:作为一个表达式放在=右端作为参数使用debugprintxendifEndsub三.Property属性过程和Event事件过程这是VB在对象功能上添加的两个过程与对象特征密切相关也是VBA比较重要组成技术比较复杂可以参考相关书籍。第十二节内部函数在VBA程序语言中有许多内置函数可以帮助程序代码设计和减少代码的编写工作。一.测试函数IsNumeric(x)‘是否为数字,返回Boolean结果TrueorFalseIsDate(x)‘是否是日期,返回Boolean结果TrueorFalseIsEmpty(x)‘是否为Empty,返回Boolean结果TrueorFalseIsArray(x)‘指出变量是否为一个数组。IsError(expression)‘指出表达式是否为一个错误值Is(expression)‘指出表达式是否不包含任何有效数据()。IsObject(identifier)‘指出标识符是否表示对象变量二.数学函数Sin(X)、Cos(X)、Tan(X)、Atan(x)三角函数单位为弧度Log(x)返回x的自然对数Exp(x)返回exAbs(x)返回绝对值Int(number)、Fix(number)都返回参数的整数部分区别:Int将转换成而Fix将转换成Sgn(number)返回一个Variant(Integer)指出参数的正负号Sqr(number)返回一个Double指定参数的平方根VarType(varname)返回一个Integer指出变量的子类型Rnd(x)返回之间的单精度数据x为随机种子三.字符串函数Trim(string)去掉string左右两端空白Ltrim(string)去掉string左端空白Rtrim(string)去掉string右端空白Len(string)计算string长度Left(string,x)取string左段x个字符组成的字符串Right(string,x)取string右段x个字符组成的字符串Mid(string,start,x)取string从start位开始的x个字符组成的字符串Ucase(string)转换为大写Lcase(string)转换为小写Space(x)返回x个空白的字符串Asc(string)返回一个integer代表字符串中首字母的字符代码Chr(charcode)返回string其中包含有与指定的字符代码相关的字符四.转换函数CBool(expression)转换为Boolean型CByte(expression)转换为Byte型CCur(expression)转换为Currency型CDate(expression)转换为Date型CDbl(expression)转换为Double型CDec(expression)转换为Decemal型CInt(expression)转换为Integer型CLng(expression)转换为Long型CSng(expression)转换为Single型CStr(expression)转换为String型CVar(expression)转换为Variant型Val(string)转换为数据型Str(number)转换为String五.时间函数Now返回一个Variant(Date)根据计算机系统设置的日期和时间来指定日期和时间。Date返回包含系统日期的Variant(Date)。Time返回一个指明当前系统时间的Variant(Date)。Timer返回一个Single代表从午夜开始到现在经过的秒数。TimeSerial(hour,minute,second)返回一个Variant(Date)包含具有具体时、分、秒的时间。DateDiff(interval,date,date,firstdayofweek,firstweekofyear)返回Variant(Long)的值表示两个指定日期间的时间间隔数目Second(time)返回一个Variant(Integer)其值为到之间的整数表示一分钟之中的某个秒Minute(time)返回一个Variant(Integer)其值为到之间的整数表示一小时中的某分钟Hour(time)返回一个Variant(Integer)其值为到之间的整数表示一天之中的某一钟点Day(date)返回一个Variant(Integer)其值为到之间的整数表示一个月中的某一日Month(date)返回一个Variant(Integer)其值为到之间的整数表示一年中的某月Year(date)返回Variant(Integer)包含表示年份的整数。Weekday(date,firstdayofweek)返回一个Variant(Integer)包含一个整数代表某个日期是星期几第二章ExcelVBA常用对象之使用第一节文件的操作)Excel文件新建与打开一新建WorkbooksAdd二打开WorkbooksOpen"路径""文件名xls"三文件打开对话框的使用ApplicationGetOpenFilename(fileFilter:="Excelfiles(*xls),*xls,Allfiles(**),**")示例:flag=FalseDoWhileNotflag'对话框打开已有Excel文件fm=ApplicationGetOpenFilename(fileFilter:="Excelfiles(*xls),*xls,Allfiles(**),**")Iffm<>FalseThenWorkbooksOpenfmSetbb=ActiveWorkbook'把bb变量设为当前活动工作簿对象,打开一工作簿时,该工作簿自动为当前活动工作簿flag=TrueEndIfLoop保存与关闭一保存Workbooks("文件xls")Save二另存对话框的使用ApplicationGetSaveAsFilename(fileFilter:="Excelfiles(*xls),*xls,Allfiles(**),**")示例:flag=FalseDoWhileNotflag'循环要求必须输入文件名或选择文件名fm=ApplicationGetSaveAsFilename(fileFilter:="Excelfiles(*xls),*xls,Allfiles(**),**")Iffm<>FalseThenactiveworkbookSaveAsfm'当前活动工作簿另存flag=TrueEndIfLoop三关闭单个文件关闭Workbooks("filenamexls")Close所有该Excel程序打开的文件都关闭WorkbooksClose如果文件使用中改动过内容,那么该命令使用时会弹出提示对话框,询问是否保存如果要想不弹出提示对话框,可以使用第三或第四种文件关闭方法,或者如下示例示例:关闭工作簿“Bookxls”但不提示用户保存所作修订。“Bookxls”中的所有修订都不会保存。ApplicationDisplayAlerts=False'信息警告关闭Workbooks("BOOKXLS")CloseApplicationDisplayAlerts=True'信息警告开启四关闭同时保存Workbooks("filenamexls")Closesavechanges:=True五关闭同时不保存Workbooks("filenamexls")Closesavechanges:=False六Excel程序的关闭ApplicationQuit说明:使用本方法时如果有未保存的工作簿处于打开状态则MicrosoftExcel将弹出一个对话框询问是否要保存所作修改。为防止这一情况出现可在使用Quit方法前保存所有的工作簿或将DisplayAlerts属性设置为False。如果该属性为False则MicrosoftExcel退出时即使存在未保存的工作簿退出也不会显示对话框而且不保存就退出。如果将一个工作簿的Saved属性设置为True但是并没有将其保存到磁盘上则MicrosoftExcel在退出时不会提示保存该工作簿。七工作簿的密码保护与撤销保护工作簿使其不至被修改。Workbooks(“工作簿名”)Protect(Password,Structure,Windows)PasswordVariant类型可选。为一个字符串该字符串为工作表或工作簿指定区分大小写的密码。如果省略本参数不用密码就可以取消对该工作表或工作簿的保护。否则必须指定密码通过密码来取消对该工作表或工作簿的保护。如果忘记了密码就无法取消对该工作表或工作簿的保护。最好在安全的地方保存一份密码及其对应文档名的列表。StructureVariant类型可选。如果为True则保护工作簿结构(工作表的相对位置)。默认值为False。WindowsVariant类型可选。如果为True则保护工作簿窗口。如果省略本参数则窗口不受保护如:Workbooks(“学生档案”)protect””Workbooks(“学生档案”)Unprotect(Password)PasswordVariant类型可选。指定用于解除工作表或工作簿的保护的密码此密码是区分大小写的。如果工作表或工作簿不设密码保护则忽略本参数。如果对工作表省略此参数而该工作表又设有密码保护MicrosoftExcel将提示您要输入密码。如果对工作簿省略此参数而该工作簿又设有密码保护本方法将失败。示例示例:(使用了个文件,宏程序文件操作了另外三个文件,还涉及到文件打开另存对话框)一在testxls文件中编写一个宏程序test,完成以下内容打开当前目录下testxls文件,计算sheet工作表上单元格a到a的数据剩上()的随机数,计算结果保存在一个新建工作簿的sheet的a到a上,且结果还要保存在一个任意打开的Excel文件下,示例中打开testxls文件,完成后关闭Excel程序testxls模块中Subtest()DimiAsInteger,flagAsBoolean,fmDimaa,bb,cc,tempApplicationScreenUpdating=False'屏幕刷新关闭ApplicationDisplayAlerts=False'信息警告关闭WorkbooksOpenThisWorkbookPath"testxls"'打开文件testxlsSetaa=ActiveWorkbookSheets("Sheet")flag=FalseDoWhileNotflag'对话框打开已有Excel文件fm=ApplicationGetOpenFilename(fileFilter:="Excelfiles(*xls),*xls,Allfiles(**),**")Iffm<>FalseThenWorkbooksOpenfmSetbb=ActiveWorkbookflag=TrueEndIfLoopWorkbooksAddSetcc=ActiveWorkbookWithccSheets("Sheet")Fori=Totemp=aaCells(i,)*Int((*Rnd))'生成到之间的随机数值Cells(i,)=tempbbSheets()Cells(i,)=tempNextEndWithflag=FalseDoWhileNotflag'循环要求必须输入文件名或选择文件名fm=ApplicationGetSaveAsFilename(fileFilter:="Excelfiles(*xls),*xls,Allfiles(**),**")Iffm<>FalseThenccSaveAsfmflag=TrueEndIfLoopbbSave'保存Setaa=Nothing:Setbb=Nothing:Setcc=Nothing'设置对象变量为空ApplicationQuit'关闭ExcelApplicationScreenUpdating=True'屏幕刷新关闭ApplicationDisplayAlerts=True'信息警告开启EndSub)文本文件打开与新建Open语句能够对文件输入输出(IO)。语法OpenpathnameFormodeAccessaccesslockAs#filenumberLen=reclengthOpen语句的语法具有以下几个部分:部分描述pathname必要。字符串表达式指定文件名该文件名可能还包括目录、文件夹及驱动器。mode必要。关键字指定文件方式有Append、Binary、Input、Output、或Random方式。如果未指定方式则以Random访问方式打开文件。access可选。关键字说明打开的文件可以进行的操作有Read、Write、或ReadWrite操作。lock可选。关键字说明限定于其它进程打开的文件的操作有Shared、LockRead、LockWrite、和LockReadWrite操作。filenumber必要。一个有效的文件号范围在到之间。使用FreeFile函数可得到下一个可用的文件号。reclength可选。小于或等于(字节)的一个数。对于用随机访问方式打开的文件该值就是记录长度。对于顺序文件该值就是缓冲字符数。说明对文件做任何IO操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行IO之用并决定缓冲区所使用的访问方式。新建如果pathname指定的文件不存在那么在用Append、Binary、Output、或Random方式打开文件时可以建立这一文件。如果文件已由其它进程打开而且不允许指定的访问类型则Open操作失败而且会有错误发生。如果mode是Binary方式则Len子句会被忽略掉。重要在Binary、Input和Random方式下可以用不同的文件号打开同一文件而不必先将该文件关闭。在Append和Output方式下如果要用不同的文件号打开同一文件则必须在打开文件之前先关闭该文件。读入与写出读入Input#filenumber,varlist从已打开的顺序文件中读出数据并将数据指定给变量Get#filenumber,recnumber,varname将一个已打开的磁盘文件读入一个变量之中写入Write#filenumber,outputlist将数据写入顺序文件,以双引号"数据"逗号,分隔数据Print#filenumber,outputlist将格式化显示的数据写入顺序文件中Put#filenumber,recnumber,varname将一个变量的数据写入磁盘文件中。关闭Closefilenumberlist关闭Open语句所打开的输入输出(IO)文件注意:如果今后想用Input#语句读出文件的数据就要用Write#语句而不用Print#语句将数据写入文件。因为在使用Write#时将数据域分界就可确保每个数据域的完整性因此可用Input#再将数据读出来。使用Write#还能确保任何地区的数据都被正确读出。Write与Print#语句不同当要将数据写入文件时Write#语句会在项目和用来标记字符串的引号之间插入逗号。Write#语句在将outputlist中的最后一个字符写入文件后会插入一个新行字符即回车换行符(Chr()Chr())其他文件函数LOF(filenumber)返回一个Long表示用Open语句打开的文件的大小该大小以字节为单位。EOF(filenumber)返回一个Integer它包含Boolean值True表明已经到达为Random或顺序Input打开的文件的结尾。Loc(filenumber)返回一个Long在已打开的文件中指定当前读写位置Seek(filenumber)返回一个Long在Open语句打开的文件中指定当前的读写位置示例要求:打开一文本文件testtxt,已知其内容为空格分隔,要求把其中每行首个数据写入Excel宏程序文件的表中,再把数据写入新建文件testini中Subtest()DimFm,iAsLong,jAsLong,kAsLongDimTT,TOnErrorResumeNextFm=ApplicationGetOpenFilename("TextFiles(*txt),*txt")IfFm=FalseThenExitSub'取消选择文件则退出k=FreeFileOpenFmForInputAs#k'以随机只读的方式打开文件f=FreeFileOpen"c:testini"ForOutputAs#f'以随机方式新建一个不存在的文件j=WithWorksheets("sheet")DoWhileNotEOF(k)'循环读至文件最后一行LineInput#k,TT'读入一行数据并将其赋予某变量T=Split(TT)'以文本中空格来分开这个字符串并赋值给变量,请参考split函数帮助Cells(j,)=T()Print#f,T()j=jLoopEndWithClose#k'关闭文件Close#f'关闭文件EndSub)Access文件使用VBA来访问数据库其实就是通过一定方法借助数据库引擎来访问关键是使用什么方法来使用引擎。目前访问ACCESS数据库常用的有DAO和ADO方法DAO就是DatabaseAccessObject(数据库访问对象)的英文缩写DAO是老式的,它目前还在使用的原因是向下兼容和ADO在一些地方还没有取代DAO的功能。ADO是ActiveXDataObject(数据控件对象)的英文缩写是目前较新和功能较强的方法。通过DAO或ADO可以访问多种类型的数据库包括Access、SQLServer、Oracle等也可访问应用程序的文件如Excel文件、文本文件及Email和NEWS的文件。实际上利用控件来链接数据库其概念大致相同首先都需创建链接其后用Open方法产生各种类型的数据集对象再对数据集对象操作来使用数据库内容。DAO使用的步骤及方法()引用DAO类型库从VBE的”工具引用”菜单中选择可引用“MicrosoftDAOObjectLibrary”项设置DAO数据类型变量()定义DAO对象变量)DimdbAsDatabase,Database(数据库)变量对应于Access数据库)DimrsAsRecordSet,RecordSet(记录集)变量对应于Access数据库的一个表或子表多定义为全局变量以供程序多处使用。()打开数据库Setdb=OpenDatabase(Thisworkbookspath"数据库名称mdb")‘用DAO怎么样打开有密码的ACCESS数据库SetdbTemp=OpenDatabase("C:dbmdb",False,False,"PWD=")()打开表或建立表的子表A建立表的子表Setrs=dbOpenRecordset("select*from表名")B打开表SetRS=DBOpenRecordset("表名",dbOpenDynaset)Opendatabase方法是打开数据库并返回此数据库的database对象其语法如下:Setdatabase的对象变量=opendatabase(路径及数据库名称,除外性,只读)除外性:由true和false值所构成当值为true时代表仅允许唯一的使用者使用数据库。只读:由true和false值所构成为true代表数据库仅提供读取的服务Openrecordset方法用来创建一个新的recordset对象语法为:Setrecordset对象变量=数据库变量openrecordset(来源种类)recordset种类有种分别为:表(table)、动态集(dynaset)、快照集(snapshot)、动态(dynamic)、正向(forwardonly)其中常用的时动态集(dynaset)实际上是引用一个或多个表中数据记录的集合是功能最强的数据记录集合类型也是默认值。()操作数据库记录对记录的操作就是使用记录集的对象方法和属性来实现特附录常用属性和方法如下。记录集对象的属性和方法:rsRecordcount属性用来记录目前数据记录的数量如判断数据库是否为空rsEOF属性是否是记录的尾rsBOF属性是否是记录的头rsNomatch属性返回上次查找成功与否rsMoven方法移动到第n条记录rsMovenext方法移动到下一条记录rsMovePrevious方法移动到上一条记录rsMovefirst方法移动到第一条记录rsLastfirst方法移动到最后一条记录rsDelete方法删除当前记录rsEdit方法修改当前记录(步骤为三步:用edit方法设置为修改状态将数据分别赋到记录的各字段用Updata方法把记录更新到数据库中)rsAddNew方法添加记录(添加记录分三步:用AddNew方法添加一个新的空白记录将数据分别赋到记录的各字段用Updata方法把记录更新到数据库中去)rsUpdata方法更新内容到数据库中rsFindfirst"字段名='"“查找内容”"'"方法查找记录中字段与内容相配的首条记录rsFindnext方法查找下一个匹配记录rsFindLast方法查找最后一个匹配记录rsFindPrevious方法查找前一个匹配记录rsClose方法关闭记录集关闭链接字段集的属性方法:rsFieldsCount属性字段数目rsFields(n)第n个字段,Fields()表示第一个字段rsFieldsDelete(NameAsString)方法删除字段rsFieldsAppend(ObjectAsObject)方法添加字段rsFieldsRefresh方法更新字段的属性方法:rsFields(n)NamersFields(n)SizersFields(n)TypersFields(n)FieldsizersFields(n)value示例:打开一个数据库,建立浏览,查询,修改,删除,添加等功能。OptionExplicitPublictotalRecsAsLong,curRecNoAsLong'用于记住总记录数和当前记录号PublicDBAsDatabase,RSAsRecordsetPrivateSubUserFormInitialize()'窗口显示SetDB=OpenDatabase(ThisWorkbookPath"palletmdb")SetRS=DBOpenRecordset("pallet",dbOpenDynaset)IfRSEOFAndRSBOFThenMsgBox"Databaseis"cmdExitClickElseRSMoveLast'指针移动到最后记录,以便统计记录总数RSMoveFirsttotalRecs=RSRecordCountcurRecNo=SetData'设置窗口参数,按钮是否可用EndIfEndSubPrivateSubcmdFirstClick()'第一条记录RSMoveFirstcurRecNo=SetDataEndSubPrivateSubcmdLastClick()'最后一条记录RSMoveLastcurRecNo=totalRecsSetDataEndSubPrivateSubcmdPreviousClick()'前一条记录RSMovePreviouscurRecNo=curRecNoSetDataEndSubPrivateSubcmdNextClick()'下一条记录RSMoveNextcurRecNo=curRecNoSetDataEndSubPrivateSubcmdAddClick()'增加一条记录DimiAsIntegerRSAddNewFori=ToRSFields(i)=MeControls("txt"i)

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/46

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利