使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)

上传人:zhuli****0000 文档编号:7597954 上传时间:2017-09-22 格式:DOC 页数:10 大小:120KB
返回 下载 相关 举报
使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)_第1页
第1页 / 共10页
使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)_第2页
第2页 / 共10页
使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)_第3页
第3页 / 共10页
使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)_第4页
第4页 / 共10页
使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)》由会员分享,可在线阅读,更多相关《使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)(10页珍藏版)》请在金锄头文库上搜索。

1、这是学习中的一个小结,其中必定存在错漏,需要各位朋友多多指正(hand)若要使用 ADO 来处理 Excel 文件,只要将以下 6 条基本的语句中的红色部分替换为实际内容即可:方式一:Set Conn = CreateObject(adodb.connection) (1)设置对象或 Set Conn = New ADODB.ConnectionConn.Open provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source= & 文件全路径 (2)打开联接Sql = sql 语句 & from 表的显示名

2、称$ & sql 语句 (3)设置 sql 语句放置结果的区域的左上角单元格.CopyFromRecordset Conn.Execute(Sql) (4)执行 sql 语句Conn.Close (5)关闭联接 Set Conn = Nothing (6)对象置空实例 1:汉语中的 “和”与逻辑运算中的“或”http:/ 字段 1 的多个字段Sub andor()Dim Sql$Set Conn = CreateObject(adodb.connection) (1)Conn.Open provider=microsoft.jet.oledb.4.0;extended properties=e

3、xcel 8.0;data source=c:aa.xls” (2 )Sql = select * from Sheet1$ where 字段 1=020009 or 字段 1=050023 or 字段1=010024 (3)上一句查找字段值为 020009、050023 和 010024 的记录,并显示所有字段的值由此看出,汉语中的“ 和”对应的逻辑关系反而常常是“ 或” (or)Sql = select 字段 1 from Sheet1$ 上一句可显示所有记录的 字段 1 的值Sheets(2).Range(a2).CopyFromRecordset Conn.Execute(Sql) (

4、4)将结果放在以表 2 的 a2 单元格为左上角的区域Conn.Close (5)Set Conn = Nothing (6)End Sub实例 2:ADO 查询http:/ filterado()Dim strTbl$, , intTblCnt% , Sql$, sAddress$, str$Dim rng1 As Range, rngt As RangeDim a() As String有关变量定义,参见:http:/ cn = New ADODB.Connection (1)With cn 也可将一句分成三句写 (2 ) .Provider = Microsoft.Jet.OLEDB.4

5、.0.ConnectionString = Data Source= & ActiveWorkbook.FullName & ;Extended Properties=Excel 8.0 活动工作簿的全路径.OpenEnd WithintTblCnt = ActiveWorkbook.Sheets.Count 工作表个数For t = 2 To intTblCnt 遍历工作表Set rngt = Sheets(t).Range(b4).CurrentRegion 包含 b4 单元格的连续区域sAddress = rngt.Offset(3, 0).Address(0, 0) 区域向下偏移三行后

6、的相对地址strTbl = ActiveWorkbook.Sheets(t).Name 第 t 个表的名称str = Sheets(1).Cells(3, 2).ValueSql = Select * FROM & strTbl & $ & sAddress & Where 姓名= & str & (3 )显示第 t 个表中的名称为变量 sAddress 的值的区域中查找姓名等于变量 str 的值的记录的所有字段值若第 t 个表的名称为 “02-1-1” ,查找区域为 A4:K81 ,姓名为 “王红”,则 sql 语句实际为 Select * FROM 02-1-1$A4:K81 Where

7、姓名=王红 为文字连接符,其中 strTbl、sAddress 、str 为变量,不能放在双引号中,故需将不变的文字与变量隔开并用 & 连接成最后的可以变化的语句 Set rng1 = Sheets(1).Cells(7, 1) 将 A7 单元格存于区域变量 rng1 中rng1.CopyFromRecordset cn.Execute(Sql) 将查询结果放在以 A7 单元格为左上角的临时区域中 (4 )If Len(rng1.Value) 0 Then 如果查询结果不为空,则复制到指定的位置Cells(3, 4) = Cells(7, 1)Cells(3, 6) = Cells(7, 3)

8、Cells(4, 2) = Cells(7, 4)Cells(4, 4) = Cells(7, 5)Cells(4, 6) = Cells(7, 6)Cells(5, 2) = Cells(7, 7)Cells(5, 4) = Cells(7, 8)Cells(5, 4).VerticalAlignment = xlCenter 单元格内容居中Rows(7).Clear 清除第 7 行的临时数据cn.CloseSet cn = NothingExit SubEnd IfNext cn.Close (5 )Set cn = Nothing (6)End Sub实例 3:带窗体进度条的筛选http

9、:/ withprogbar()Dim Sql$, i&, sAddress$Sheets(单井属性提取程序(系列 3).ActivateApplication.ScreenUpdating = False 关闭屏幕更新Application.EnableEvents = False 关闭事件响应Application.Interactive = False 禁止所有的键盘输入和鼠标输入Set Conn = CreateObject(adodb.connection) (1)Conn.Open provider=microsoft.jet.oledb.4.0;extended properti

10、es=excel 8.0;data source= & ThisWorkbook.FullName (2)宏所在工作簿的文件全路径UserForm1.Show 显示窗体进度条totalrow = Range(C4).ValuesAddress = Range(A7: & Range(B4).Value & totalrow).Address(0, 0) 取出数据库区域的地址For i = Range(C3).Value + 1 To totalrowSql = Select 单井标准编码,新老井标注 from 单井属性提取程序(系列 3)$ & sAddress & where 井号= & C

11、ells(i, 1) & (3)从指定表、指定区域中取出“井号”字段值为当前遍历井号的记录的“单井标准编码” 和“新老井标注”两个字段值(更详细的解释参见 例 2)Cells(i, 2).CopyFromRecordset Conn.Execute(Sql) 将结果置于当前行的 B 列、C 列单元格(4)产生进度条jj = CStr(Int(i / totalrow * 16) 其中:i/totalrow 为当前行号与总行号的比值 int 函数对参数取整 CStr 函数将数值转为字符串UserForm1.TextBox2 = CStr(Int(i / totalrow * 100) & % 在

12、进度条窗体的 TextBox2 中显示进度的百分数DoEvents 后台运行With UserForm1.TextBox1 在进度条窗体的 TextBox1 中显示图形进度.Value = Application.WorksheetFunction.Rept(n, jj) 图形进度方块用重复写字母”n”来产生.Font.Name = Wingdings 所写字母的字体为 Wingdings.ForeColor = &HFF0000 颜色为蓝色.Font.Size = 18 大小为 18 号End WithNext Conn.Close (5 )Set Conn = Nothing (6)Application.Interactive = TrueApplication.EnableEvents = TrueApplication.ScreenUpdating = TrueEnd Sub实例 4:通用多文件条件汇总http:/ Multifile()Dim sName As String , Sql As String ,strTbl As String , a() As StringDim intTblCnt As Integer, int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号