社区
基础编程
帖子详情
关于用ADO连接EXCEL,用SQL执行查询的问题?
zszzyd
2003-08-26 09:16:25
在PHP中,我通过ADO连接EXCEL,后执行SQL查询,语句如下:
select * from [sheet1$] 出现错误提示(在执行命令的过程中,出现了一个以上的错误)。
但这条语句,在ODBC连接又是正确的。
请问有谁知道是怎么回事吗?
...全文
66
3
打赏
收藏
关于用ADO连接EXCEL,用SQL执行查询的问题?
在PHP中,我通过ADO连接EXCEL,后执行SQL查询,语句如下: select * from [sheet1$] 出现错误提示(在执行命令的过程中,出现了一个以上的错误)。 但这条语句,在ODBC连接又是正确的。 请问有谁知道是怎么回事吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
超级大笨狼
2003-11-16
打赏
举报
回复
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Excel Driver (*.xls)};ReadOnly=0;DBQ=" & Server.MapPath("成员单位交易统计表.xls")
SQL1="select * from [sheet1$]"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL1, conn, 3, 3
Response.Write (rs.RecordCount)
rs.Close
bonniewater
2003-08-28
打赏
举报
回复
mark
dongjianguo
2003-08-27
打赏
举报
回复
我也曾遇此问题,不过我饶过了问题,把EXCEL的数据先导入到ACCESS中,很快完成。然后在执行查询
VC++中数据库及其相关技术&使用
SQL
查询
、操纵数据库
在vc++中练习使用MFC ODBC
连接
数据源、使用MFC ODBC查看、编辑数据源中表的数据、使用MFC ODBC向数据库表中添加、删除记录、使用Visual C++程序自动设置ODBC数据源、使用ODBC直接读写
Excel
文件数据、使用
ADO
接口
连接
数据库、使用
ADO
在数据库中创建表,并添加记录、使用
ADO
在数据库中遍历、修改和删除记录、使用
ADO
Data和DataGrid控件实现遍历、修改、删除、添加、使用
ADO
直接操作Access数据库、使用
ADO
向数据库添加BLOB数据(图像)、使用
ADO
从数据库中读出BLOB数据(图像)、使用
SQL
语句进行基本的条件
查询
、实例使用
SQL
语句进行时间条件检索、使用
SQL
语句对数据库进行通用操作,使用DataGrid控件显示、在
ADO
中调用、
执行
SQL
Server中的存储过程、使用
ado
进行事务处理的实例
利用
ADO
控件
连接
DBF数据表
利用delphi自带的
ADO
控件
连接
指定的DBF文件,可以通过
SQL
语句进行对DBF
执行
操作
数据库和
ado
知识
数据库语言 数据库的简易流程(数据库客户端软件和数据库服务软件的
执行
流程) 主键的概念 如何创建主键 如何创建外键 主外键关系的概念以及使用 数据库的主要类型 数据库的主要数据类型 使用
SQL
语句来创建数据库和表 约束分类 top的使用 Distinct的使用(去除重复数) 聚合函数 聚合函数注意事项 between and 和 in 的使用 like, not like 通配符(%,_,[],^) 空值处理:null 是什么? 排序(order by id asc / desc)(默认是哪一种排序?) 分组(group by ),单条件分组,多条件分组(分组时,要注意的事情[位置,列]) 筛选(Having的使用),它和where的区别 类型转换(CAST,CONVERT) union,union all的使用 一次插入多条数据 字符串函数
ADO
.NET主要类 数据库
连接
字符串
Sql
Connection类的State属性
Sql
Command类的方法: StatementCompleted事件的触发 获得刚刚插入数据库的自增id
Sql
注入攻击(避免方式?) 如何使用迭代生成树形菜单 单例模式(单例模式的创建) DataTable的使用 类
Sql
DataAdapter的使用(重点) 类
Sql
CommandBuilder的使用(注意:他必须操作的是有主键的数据库) 提取
查询
语句,封装
Sql
Helper类(不仅要会,而且要理解思想)
SQL
中的Switch语句
SQL
中的子
查询
SQL
中的Exists用法
SQL
中的Any
SQL
中的All
SQL
2008 微软官方推荐分页方式
SQL
中表等值
连接
(内
连接
) inner join
SQL
中表左
连接
(左外
连接
) left join
SQL
中表右
连接
(右外
连接
) right join
SQL
中表交叉
连接
(两张表的乘积)
SQL
中表全
连接
full join
SQL
中变量
SQL
中的事务 创建存储过程 存储过程带输出参数 调用存储过程 触发器定义 触发器类型: 触发器触发条件: 什么是索引 索引类型 什么是填充因子 什么是临时表 什么是局部临时表 什么是全局临时表 什么是三层结构 三层结构的目的 具体的三层是哪三层 三层之间的关系 三层结构的优缺点 邮件发送方法
Excel
导入导出 MD5加密解密方法 读取数据库后,判断dataset里列的值是否为空 项目术语
易语言
ADO
类1.33模块
易语言
ADO
类1.33模块源码,
ADO
类1.33模块,是否创建,新建Ac库,新建Ac表1,新建Ac表,
连接
Excel
,
连接
Excel
2007,
连接
SQL
ite,
连接
My
SQL
,
连接
SQL
Server,
连接
,
连接
文件,
连接
Access,
连接
Access2007,关闭库,
执行
SQL
语句,
执行
SQL
,取得权限,设置权限,取超时时间,设超时时间
SQL
语言与
excel
。VBA结和
EXCEL
里使用
SQL
的方法(欢乐小爪原创) 急用
EXCEL
的
SQL
用法,抄来欢乐小爪几篇文章,支持原创,留下小爪印:http://hi.baidu.com/huanhuanxiaozhua/blog
EXCEL
(VBA)~
SQL
经典写法范本汇集(一) 2007-12-10 21:20 编前话:为了更系统的学习
sql
语句,小爪首次系统的汇集
sql
需引用 microsoft activeX Data Objects 2.8 library 1.
sql
= "select 构件名称,构件代号,横长度,横数量,竖长度,竖数量,比重,相应工艺 from [参数$B2:K1916]where (大样代码='" & DYDH & "') and (内外框='WKXC')" 2.
sql
= "select 构件名称,构件代号,横长度,横数量,竖长度,竖数量,比重,相应工艺 from [参数$B2:K" & CSMaxrow & "] where (大样代码='" & DYDH & "') and (内外框='WKXC')" **************************************************************** A、根据本工作簿的1个表
查询
求和写法范本 Sub
查询
方法一() Set CONN = CreateObject("
ADO
DB.Connection") CONN.Open "provider=microsoft.jet.oledb.4.0;extended properties=
excel
8.0;data source=" & ThisWorkbook.FullName
sql
= "select 区域,存货类, sum(代销仓入库数量),sum(代销仓出库数量),sum(日报数量)from [sheet4$a:i] where 区域='" & [b3] & "' and month(日期)='" & Month(Range("F3")) & "' group by 区域,存货类" Sheets("sheet2").[A5].CopyFromRecordset CONN.Execute(
sql
) CONN.Close: Set CONN = Nothing End Sub ----------------- Sub
查询
方法二() Set CONN = CreateObject("
ADO
DB.Connection") CONN.Open "dsn=
excel
files;dbq=" & ThisWorkbook.FullName
sql
= "select 区域,存货类, sum(代销仓入库数量),sum(代销仓出库数量),sum(日报数量)from [sheet4$a:i] where 区域='" & [b3] & "' and month(日期)='" & Month(Range("F3")) & "' group by 区域,存货类" Sheets("sheet2").[A5].CopyFromRecordset CONN.Execute(
sql
) CONN.Close: Set CONN = Nothing End Sub ************************************************************************************************** B、根据本工作簿2个表的不同类别
查询
求和写法范本 Sub 根据入库表和回款表的区域名和月份分别求存货类发货数量和本月回款数量
查询
() Set conn = CreateObject("
ado
db.connection") conn.Open "provider=microsoft.jet.oledb.4.0;" & _ "extended properties=
excel
8.0;data source=" & ThisWorkbook.FullName Sheet3.Activate
Sql
= " select a.存货类,a.fh ,b.hk from (select 存货类,sum(本月发货数量) " _ & " as fh from [入库$] where 存货类 is not null and 区域='" & [b2] _ & "' and month(日期)=" & [d2] & " group by 存货类) as a" _ & " left join (select 存货类,sum(数量) as hk from [回款$] where 存货类" _ & " is not null and 区域='" & [b2] & "' and month(开票日期)=" & [d2] & "" _ & " group by 存货类) as b on a.存货类=b.存货类" Range("a5").CopyFromRecordset conn.Execute(
Sql
) End Sub ******************************************************************* C、根据本文件夹下其他工作簿1个表区域的区域求和 Sub 在工作表1汇总本文件夹下001工作薄的表1分数列
查询
汇总() Set conn = CreateObject("
ADO
DB.Connection") conn.Open "dsn=
excel
files;dbq=" & ThisWorkbook.Path & "\001.xls"
sql
= "select sum(分数) from [sheet1$]" Sheets(1).[a2].CopyFromRecordset conn.Execute(
sql
) conn.Close: Set conn = Nothing End Sub --------------------- Sub 在工作表1汇总本文件夹下001工作薄的表1A1:A10
查询
汇总() Set conn = CreateObject("
ADO
DB.Connection") conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='
excel
8.0;hdr=no;';data source=" & ThisWorkbook.Path & "\001.xls"
sql
= "select sum(f1) from [sheet1$a1:a10]" Sheets(1).[A5].CopyFromRecordset conn.Execute(
sql
) conn.Close: Set conn = Nothing End Sub ----------------------- Sub 在工作表1汇总本文件夹下001工作薄的表1分数列A1:A7
查询
并msgbox表达汇总() Set conn = CreateObject("
ADO
DB.Connection") Set rr = CreateObject("
ADO
DB.recordset") conn.Open "dsn=
excel
files;dbq=" & ThisWorkbook.Path & "\001.xls"
sql
= "select sum(分数) from [sheet1$a1:a7]" Sheets(1).[A8].CopyFromRecordset conn.Execute(
sql
) rr.Open
sql
, conn, 3, 1, 1 MsgBox rr.fields(0) conn.Close: Set conn = Nothing End Sub ****************************************************************************************** D、根据本文件夹下其他工作簿多个表区域的单列区域
查询
求和 sub 本文件夹下其他工作簿的每个工作簿的第4列 30行
查询
求和 Dim cn As Object, f$, arr&(1 To 30), i% Application.ScreenUpdating = False Set cn = CreateObject("
ado
db.connection") f = Dir(ThisWorkbook.Path & "\*.xls") Do While f <> "" If f <> ThisWorkbook.Name Then cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='
excel
8.0;hdr=no;';data source=" & ThisWorkbook.Path & "\" & f Range("d5").CopyFromRecordset cn.Execute("select f4 from [基表1$a5:d65536]") cn.Close For i = 1 To 30 arr(i) = arr(i) + Range("d" & i + 4) Next i End If f = Dir Loop Range("d5").Resize(UBound(arr), 1) = WorksheetFunction.Transpose(arr) Application.ScreenUpdating = True End Sub ************************************************************************************************** E、根据本文件夹下其他工作簿多个表区域的多列区域
查询
求和 sub 本文件夹下其他工作簿的每个工作簿的第B\C\D列 25行
查询
求和 Dim cn As Object, f$, arr&(1 To 25, 1 To 3), i% Application.ScreenUpdating = False Set cn = CreateObject("
ado
db.connection") f = Dir(ThisWorkbook.Path & "\*.xls") Do While f <> "" If f <> ThisWorkbook.Name Then cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='
excel
8.0;hdr=no;';data source=" & ThisWorkbook.Path & "\" & f Range("b6").CopyFromRecordset cn.Execute("select f2,f3,f4 from [基表3$a6:e65536]") cn.Close For i = 1 To 25 For j = 1 To 3 arr(i, j) = arr(i, j) + Cells(i + 5, j + 1) Next j Next i End If f = Dir Loop Range("b6").Resize(UBound(arr), 3) = arr Application.ScreenUpdating = True End Sub *********************************************************************************** F、其他相关知识整理 ' 用
excel
SQL
方法 'conn是建立的
连接
对象,用open打开 ' 通过 CreateObject("
ADO
DB.Connection") 这一句建立了一个数据库
连接
对象conn ' 在工程中就不再需要引用“Microsot ActiveX Data Objects 2.0 Library“ 对象 '设置对象 conn 为一个新的
ADO
链接实例,也可以用 set conn = New
ADO
DB.Connection。 -------------- ' conn.Close表示关闭conn
连接
' Set conn = Nothing 是把
连接
对象conn置空,不然你退出了文件,但数据库还没有关闭 conn.Open "dsn=
excel
files;dbq=" & ThisWorkbook.Path & "\001.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区域的和" ********************************************** 编后话: 前面也多次听说了
sql
,总没有时间,也没有好好认识它 第一次认真系统学习
sql
语句,汇集了一些代码。 有不同理解的人,欢迎给予小爪评论,小爪只爱
excel
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章