Excel培训 VBA操作数据库实例课件.ppt
VBA入门范例精解Excel培训VBA操作数据库实例
范例简介在本次学习之前,各人要对VBA编程基础有一定程度的了解、学习。在后面的实例中,我们将可以学习VBA程序对SQLServer数据库的简单操作,对Excel中的表格进行边框、背景颜色、文字大小、文字类型、文字格式等等一系列的设置更改。Excel培训VBA操作数据库实例
引用类引用一个连接数据库的类Excel培训VBA操作数据库实例
主过程SubMain()unifySheets(X-SELL),_SELECT*FROM[AO_CN].[hcc_risk].[V_CASH_CX]ORDERBYPROD_CODE,_D,E,F,H,K,M,N,O,P,Q,R,S,T,U,V,W,X,_LThisWorkbook.SaveEndSub注意:通常在我们编写程序时,主程序应越简单越好,这样不仅自己容易维护、应用,而且能使其它用户易读懂。注释:在过程main()中,调用子过程unify,并向unify中传递四个参数;再调用VBA内部过程Thisworkbook.Save保存电子表格(执行完成如下:)。Excel培训VBA操作数据库实例
PrivateSubunify(ByValshtAsWorksheet,_ByValstrSqlAsString,_ByValstrPercentColumnsAsString,_ByValstrDecimalColumnsAsString)clearShtshtFillDatasht,strSqllineJinshtcolorSheetshtpercentJinsht,strPercentColumns,0.00%percentJinsht,strDecimalColumns,0.00FontSheetsht,Calibri,10Columns(A:Z).AutoFitEndSub整合子过程片段注释:定义私有过程unify,并定义四个参数sht、strSql、strPercentColums、strDecimalColumns。调用子过程clearSht、FillData、lineJin、colorSheet、percentJin、percentJin、FontSheet、Columns。由于需要向子过程片段中传递一些相同的参数,并且每次都要执行些子过程,那么我们在编程时可以整合它们在一起,减少编译次数,节省执行时间。Excel培训VBA操作数据库实例
PrivateFunctiongetRowCount(ByValshtAsWorksheet)AsLongDimlRowsNumAsLongDimiAsLongFori=3To65535Ifsht.Cells(i,1).Value=ThenlRowsNum=i-1ExitForEndIfNextgetRowCount=lRowsNumEndFunction记录表格中的数据行数注释:这里i定义为表格的行号,列号1(A)不变,从第三行开始循环一直到65535行,如果Ai中的值为空就会跳出循环,那么行数:getRowCount=i-1Ai=“”?i否i+1RowCount=i-1是Excel培训VBA操作数据库实例
记录表格中的数据列数PrivateFunctiongetColumnCount(ByValshtAsWorksheet)AsLongDimlColumnsNumAsLongDimiAsIntegerFori=1To255Ifsht.Cells(2,i).Value=ThenlColumnsNum=i-1ExitForEndIfNextgetColumnCount=lColumnsNumEndFunction注释:这里i定义为表格的列号,行号2不变,从第一列开始循环一直到255列,如果i2中的值为空就会跳出循环,那么列数:getColumnCount=i-1Excel培训VBA操作数据库实例
清除表格中记录PrivateSubcl