F、其他相关知识整理
' 用 excel SQL 方法
'conn 是建立的连接对象,用 open 打开
' 通过 CreateObject("ADODB.Connection") 这一句建立了一个数据库连接对象 conn
' 在工程中就不再需要引用“Microsot ActiveX Data Objects 2.0 Library“ 对象
'设置对象 conn 为一个新的 ADO 链接实例,也可以用 set conn = New ADODB.Connection。
--------------
' conn.Close 表示关闭 conn 连接
' Set conn = Nothing 是把连接对象 conn 置空,不然你退出了文件,但数据库还没有关闭
conn.Open "dsn=excel files;dbq=" & ThisWorkbook.Path & ".xls"能把这段含义具体解释一下吗?
'这里的 dbq 的作用?
'------------------
'dsn 是缩写,data source name 数据库名 是 excel file
'dbq 也是缩写,data base query 意思是数据库查询,后接源库文件名 001.xls
'---------------------
'代码中长单词怎么记住的?
'比如 copyfromrecordset 可以拆开记忆,copy、from、recordset 这三个单词意思知道吧,就是“复制、从、记录集”
'-----------------
'Sql = "select sum(分数) from [sheet1$]"这里加"分数"两字什么作用?
'SQL 一般结构是 select 字段 from 表,意思是从指定的表中查询字段,字段的理解可以是:表 中的列名
''分数 是 001.xls 文件的 sheet1 第一行 A 列的字段名,SQL 一般以字段来识别每列数据
'-------------------
'为什么要用复制的对象引用过来计算呢?
'因为 Sql 语句只是对源数据库的字段找到了符合条件的的数据,但不会自动复制到汇总表来,所以需要复制 copy
'注意 这里的 [sheet1$]" ,001 文件的数据存放地上 sheet1 表,应当用方括号并加上$
''如果源数据文件 001 不是 excel,而是 Access,则引用表时,不需要加方括号,也不要$
'-----------------
还有,这里 Execute 表示什么作用?
'' Execute 是执行 SQL 查询语句的意思
-----------------------------
如果不要字段也可以,那么在打开语句中加上:hdr=no
'这样没有分数字段也可实现
'SQL 语句我换了形式,而且加上了 hdr=no,即无需字段,而且我在 SQL 中用了 sum(f1),f1 表示第一列数据
'[sheet1$a1:a10] "是只求 a1:a10 区域的和"
EXCEL(VBA)~SQL 经典写法范本汇集(二)2008-05-10 11:21 一)
选择供应商和选择月份记录的查询
原创:小爪 日期:2008-5-10
Private Sub CommandButton1_Click()
Range("a5:k1000").ClearContents
Set conn = CreateObject("ADODB.Connection")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;imex=1';data source=" &
ThisWorkbook.FullName
If Range("b3") = "全部" And Range("d3") = "全部" Then
评论5