怎么用VBA与SQL做产品成本计算表表

如何利用VBA或者SAS SQL把多个Excel表格的数据求和_百度知道
如何利用VBA或者SAS SQL把多个Excel表格的数据求和
上传不了图我就口述了~A表格13 20141
1如果有多个类似表格,如何操作能计算出每年的总和不用一个一个去操作?
我有更好的答案
用VBA先遍历文件,再用一层For循环,判断年份,得出结果相加即可。
采纳率:72%
来自团队:
为您推荐:
其他类似问题
金沙洲的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在Excel的VBA中使用SQL语句_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
在Excel的VBA中使用SQL语句
&&在Excel的VBA中使用SQL语句
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩4页未读,
定制HR最喜欢的简历
你可能喜欢查看: 14263|回复: 74
从零开始学习SQL(图文教程)
推广币4337
财富币18555
积分技术分鲜花
财富币18555
推广币4337
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
本帖最后由 雪山飞狐 于
12:32 编辑
NO.001:进入SQL的方法
& && && && &1.:
& && && && &2.
& && && && &3.
NO.028:(INSERT INTO )
学习SQL一步一步开始,跟着本文的脚印带你走向SQL方向。
本分先分别介绍Microsoft Query 方法书写SQL语句,和VBA方法书写SQL语句。(注:VBA语句中只需修改其中的SQL语句即可,其他只需要复制粘贴即可)。
下面先上图:
进入VBA界面
SQL001.jpg (66.29 KB, 下载次数: 15)
09:15 上传
<font color="#.插入模块
SQL002.jpg (41.19 KB, 下载次数: 16)
09:16 上传
3.双击模块
SQL003.jpg (25.7 KB, 下载次数: 10)
09:16 上传
4.在代码区输入代码
SQL004.jpg (231 KB, 下载次数: 13)
09:16 上传
写入VBA代码
代码如下:
Sub Test4()
& & Dim Conn As Object, Rst As Object
& & Dim strConn As String, strSQL As String
& & Dim i As Integer, PathStr As String
& & Set Conn = CreateObject(&ADODB.Connection&)
& & Set Rst = CreateObject(&ADODB.Recordset&)
& & PathStr = ThisWorkbook.FullName& &'设置工作簿的完整路径和名称
& & Select Case Application.Version * 1& & '设置连接字符串,根据版本创建连接
& & Case Is &= 11
& && &&&strConn = &Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=& & PathStr
& & Case Is &= 12
& && &&&strConn = &Provider=Microsoft.ACE.OLEDB.12.0;Data Source=& & PathStr & &;Extended Properties=&&Excel 12.0;HDR=YES&&;&&&
& & End Select
& & '设置SQL查询语句
& & strSQL = &请写入SQL语句&
& & Conn.Open strConn& & '打开数据库链接
& & Set Rst = Conn.Execute(strSQL)& & '执行查询,并将结果输出到记录集对象
& & With Sheet3
& && &&&.Cells.Clear
& && &&&For i = 0 To Rst.Fields.Count - 1& & '填写标题
& && && && &.Cells(1, i + 1) = Rst.Fields(i).Name
& && &&&Next i
& && &&&.Range(&A2&).CopyFromRecordset Rst
& && &&&.Cells.EntireColumn.AutoFit&&'自动调整列宽
& & End With
& & Rst.Close& & '关闭数据库连接
& & Conn.Close
& & Set Conn = Nothing
& & Set Rst = Nothing
End Sub复制代码介绍Microsoft Query的方法
1.从数据---自其他来源--来自Microsoft Query
SQL005.jpg (141.99 KB, 下载次数: 13)
09:17 上传
<font color="#.选择Excel类型
SQL006.jpg (24.61 KB, 下载次数: 11)
09:17 上传
<font color="#.选择工作簿(文件)
SQL007.jpg (39 KB, 下载次数: 10)
09:17 上传
<font color="#.选择工作表
SQL008.jpg (76.81 KB, 下载次数: 15)
09:17 上传
<font color="#.选择需求数据的列
SQL009.jpg (29.26 KB, 下载次数: 13)
09:17 上传
6.筛选条件,本例只接选下一步
SQL010.jpg (32.54 KB, 下载次数: 5)
09:18 上传
7.排序方法,本教程也直接下一步
SQL011.jpg (27.67 KB, 下载次数: 6)
09:18 上传
8.返回工作表或Microsoft Query编辑器。(本例选 Microsoft Query,以便以编写SQL语句)
SQL012.jpg (25.96 KB, 下载次数: 5)
09:18 上传
9.编写SQL语句窗口
SQL013.jpg (195.19 KB, 下载次数: 6)
09:18 上传
财富币 +10
手机扫码浏览
财富币19591
积分技术分鲜花
金牌会员, 积分 2123, 距离下一级还需 1077 积分
金牌会员, 积分 2123, 距离下一级还需 1077 积分
财富币19591
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
感谢雪山飞狐老师传技!学习了!
推广币4337
财富币18555
积分技术分鲜花
财富币18555
推广币4337
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
按条件筛选 使用SQL关键词 WHERE查询中的条件指定要满足什么标准信息,去掉不满足条件的数据(删除用户不要的数据)。
WHERE语句中可以有多个条件,条件之间可以用操作符AND 或者OR进行连接。
WHERE语句的语法结构如下:
SELECT 列字段名称 FROM [表名称$] WHERE 列字段名 运算符 值复制代码运算符包含大于、小于、等于、不等于、大于或等于、小于或等于、IN、 BETWEEN、AND等 。应用实例进行说明:
提取消费金额等于100的数据。(是不是比函数公式和VBA简单,语句也容易懂。)
本例使用的SQL语句如下:
SELECT * FROM [Sheet1$] where 消费金额=100复制代码
SQL033.png (117.83 KB, 下载次数: 6)
10:33 上传
财富币19591
积分技术分鲜花
金牌会员, 积分 2123, 距离下一级还需 1077 积分
金牌会员, 积分 2123, 距离下一级还需 1077 积分
财富币19591
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
感谢雪山飞狐老师传技!学习了!
推广币4337
财富币18555
积分技术分鲜花
财富币18555
推广币4337
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
2003版 OLEDB方法
SQL014.png (90.08 KB, 下载次数: 1)
09:56 上传
SQL015.png (138.35 KB, 下载次数: 0)
09:56 上传
2010版及2013 OLEDB方法
SQL 现有连接操作方法1.jpg (277.74 KB, 下载次数: 2)
09:57 上传
SQL 现有连接操作方法2.jpg (67.78 KB, 下载次数: 3)
09:57 上传
SQL 现有连接操作方法3.jpg (59.95 KB, 下载次数: 1)
09:58 上传
修改SQL语句的方法
SQL 现有连接操作方法4.jpg (203.4 KB, 下载次数: 2)
09:58 上传
SQL 现有连接操作方法5.jpg (128.56 KB, 下载次数: 1)
09:58 上传
推广币4337
财富币18555
积分技术分鲜花
财富币18555
推广币4337
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
1.基于一张工作表的查询语法& && && && && && && && && && && && && &
格式:& && &&&select[DISTINCT] [TOP&数值& [PERCENT] &列标题&[[as]]&别名列标题&]& && && && && && && && && && && && && && && && &
& && && && &from &表或查询1&[AS]&别名1&],&表或查询2&[AS]&别名2&],& && && && && && && && && && && && && && && && &
& && && &&&[where&筛选条件&][order by&排序项&[asc ▏desc]]& && && && && && && && && && &&&
说明:& && &&&1、&&表示必选项,&[]&表示可选项,&▏&表示多选一。& && && && && && && && && && &&&
& && &&&2、& && &&&DISTINCT:消除取重复的行& && && && && && && && &
& && &&&3、& && &&&TOP 数值:显示前几条记录& && && && && && && && &
& && &&&4、& && &&&TOP 数值 percent:显示前面分之多少条记录& && && && && && && && &
& && &&&5、& && &&&&列标题&[[as]]&别名列标题&:给标题列重新命一个新名称& && && && && && && && &
& && &&&6、& && &&&where&筛选条件&:条件语句& && && && && && && && &
& && &&&7、排序,如果要按两个或两个以上字段,那么字段与字段之间用豆号隔开,asc升序,为默认值,desc降序。& && &&&
显示所有字段的记录(全部列的内容)
语句1:
select * from [sheet1$] 复制代码语句2:
select 编号,姓名,性别,出生年月,职称,部门,基本工资,婚否,奖金 from [sheet1$] 复制代码这二个语句具有同样的功能,出来的结果都是一样的。
语句1中的*号是代表全部列,语句 2中,是写上全部列字段的名称。
如果工作表没有列标题,用F1,F2,F3,F4.....这样代替
SQL016.jpg (94.02 KB, 下载次数: 4)
10:04 上传
使用SQL语句出来的结果:
SQL017.jpg (249.89 KB, 下载次数: 4)
10:05 上传
Microsoft Query方法:
SQL018.jpg (156.65 KB, 下载次数: 3)
10:06 上传
将结果返回工作表:
SQL019.jpg (25.16 KB, 下载次数: 3)
10:07 上传
返回工作表后样式:
SQL020.jpg (101.66 KB, 下载次数: 4)
10:08 上传
Microsoft Query方法返回工作表后修改SQL语句方法:
“数据”选项卡---属性---连接属性--定义---命令文本
SQL021.jpg (226.74 KB, 下载次数: 4)
10:08 上传
补充说明vba启用宏方法:
1.调出开“发工具栏”
SQL022.jpg (161.73 KB, 下载次数: 4)
10:09 上传
2.在自定义功能区,勾选“开发工具栏”
SQL023.jpg (160.52 KB, 下载次数: 3)
10:10 上传
3.设置宏安全性
SQL024.jpg (38.76 KB, 下载次数: 3)
10:11 上传
SQL025.jpg (100.83 KB, 下载次数: 3)
10:11 上传
SQL026.jpg (43.98 KB, 下载次数: 4)
10:12 上传
5.进入VBA界面2
SQL027.jpg (38.96 KB, 下载次数: 3)
10:13 上传
6.运行子过程,把光标放于代码中间任意行,按F5执行,或绿色小三角执行。
按F8是逐步执行,是学VBA中重要的调试技术。
SQL028.jpg (99.91 KB, 下载次数: 5)
10:14 上传
10:14 上传
点击文件名下载附件
10.18 KB, 下载次数: 265
财富币4665
积分技术分鲜花
财富币4665
学员红花68
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
支持飞狐老师!
推广币4337
财富币18555
积分技术分鲜花
财富币18555
推广币4337
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
使用SQL语句获取多列数据,及别名的使用
在Excel中所使用的SQL语句具体语法结构如下:
SELECT 列字段名1,列字段名2,列字段名3 FROM [工作表名称$]复制代码在本例 中SELECT子句后列出查询的字段即可查询出结果,如输入以下的SQL语句:
SELECT 姓名,&&性别,&&职称,部门 FROM [Sheet1$]复制代码
SQL029.png (87.18 KB, 下载次数: 3)
10:17 上传
使用SQL语句后结果如下图:
SQL030.png (81.44 KB, 下载次数: 4)
10:18 上传
1.字段别名
SELECT 字段名1 AS 重命名字段1,字段名2 AS 重命名字段2 FROM [Sheet1$]复制代码本例中SQL语句如下:
SELECT 姓名 AS Name FROM [Sheet1$]复制代码2.工作表别名
SELECT 工作表别名.* FROM [工作表名$] 工作表别名复制代码本例中SQL语句如下:
SELECT A.*&&FROM [Sheet1$] A复制代码所有字段列表
可能到这里就有人会问,你这不是多此一举吗?
前面不是介绍了
SELECT * FROM [Sheet1$]复制代码就行了吗?还整这么复杂干什么?
其实(原来)SQL的代码是应该这样写的,上面的是简写。或者说只有一个表的情况,以后介绍多表的情况会用到表的别名。所以就在此一次把别名介绍了。
SELECT [工作表名].字段名 FROM [工作表名]复制代码实际中SQL语句应该如下:
SELCT [Sheet1$].*&&FROM [Sheet1$]复制代码这样的使用环境中,使用表名,就太大缩短SQL语句的字符和书写方便。
注意事项:
1.在SQL语句中SQL语句英文不区分大小写,但标点符号必须是英文半角状态下输入,字段名也必须跟原来的一样。
2.使用SQL语句的时候,必须避免列字段中使用下面的特殊字符:
空格、双引号(&)、撇(')、数字标记(#)、百分号(%)、大于号(&)、小于号(&)、叹号(!)、句号(.)、方括号([或])、星号(*)、美元符号($)、分号(;)、脱字号(^)、圆括号((或))、加号(+)、反斜杠(\或/)。
如果在源数据表的列字段使用了这些特殊字符,那么在使用SQL语句列出各字段的数据时,就会发生错误。为了规范使用SQL语句,在对数据源字段命名时,尽量避免使用这些特殊字符。
财富币19591
积分技术分鲜花
金牌会员, 积分 2123, 距离下一级还需 1077 积分
金牌会员, 积分 2123, 距离下一级还需 1077 积分
财富币19591
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
感谢雪山飞狐传技!学习了!
推广币4337
财富币18555
积分技术分鲜花
财富币18555
推广币4337
&&&&报班咨询联系电话
&&&&Tel:186-
&&&&联系人:佛山小老鼠
&&&&在线网络开设YY班级
SQL语句中的关键词DISTINCT的使用,功能是去重复值只保留一条记录。语法结构为:
SELECT DISTINCT 要去重复值的字段1,要去重复值的字段2 FROM [工作表名$]复制代码实例中使用语法
Select Distinct 用户姓名,用户卡号 From [sheet1$]复制代码数据原图:
SQL031.png (54.45 KB, 下载次数: 3)
10:31 上传
执行SQL语句后的效果图:
SQL032.png (15.47 KB, 下载次数: 4)
10:31 上传
10:31 上传
点击文件名下载附件
14.49 KB, 下载次数: 232
飞狐老师i没配视频呀&
报班咨询电话186- 《完美在线教育》网络YY上课教室141-797
报班咨询电话186- 《完美在线教育》网络YY上课教室141-797
VBA封装讲师
报班咨询电话186- 《完美在线教育》网络YY上课教室141-797
VBA编程讲师
报班咨询电话186- 《完美在线教育》网络YY上课教室141-797
报班咨询电话186- 《完美在线教育》网络YY上课教室141-797
手机微信——扫一扫 关注完美论坛公众号天天收到Excel分享
Powered by在excel中如何使用vba实现将sql的数据快速写入excel_百度知道
在excel中如何使用vba实现将sql的数据快速写入excel
如题,将sql数据库的内容全部写入到excel的当前打开的工作表中,数据量较大,求快速写入的代码
我有更好的答案
Dim&conn&As&New&ADODB.ConnectionconnStr&=&&Driver={SQL&Server};DataBase=Server=(local);UID=PWD=123&conn.Open&connStr&&#39;连接数据库Dim&rs&As&New&Recordsetsql&=&&select&*&from&a&&&#39;查看表ars.Open&sql,&conn,&3,&3if&Not&rs.EOF&then&&&For&iCols&=&0&To&rs.fields.Count&-&1&&&&&&&Sheets(1).Cells(1,&iCols&+&1).Value&=&rs.fields(iCols).Name&&&Next&iCols&&&Sheets(1).Cells(2,&1).CopyFromRecordset&rsendif
采纳率:50%
来自团队:
不用代码,可直接导入
为您推荐:
其他类似问题
excel的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何用vba实现财务办公自动化? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。282被浏览<strong class="NumberBoard-itemValue" title="2分享邀请回答7435 条评论分享收藏感谢收起911 条评论分享收藏感谢收起

我要回帖

更多关于 成本计算表 的文章

 

随机推荐