ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2937|回复: 14

[已解决] 请教VBASQL语句,执行出错,和怎么查找并将结果写入excel中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-3-30 20:37 | 显示全部楼层 |阅读模式
本帖最后由 yczzwy 于 2013-4-2 22:45 编辑

流水.rar (112.85 KB, 下载次数: 19)
1、执行按钮35报错,执行目的日将depd2010数据保存至access数据库,2怎么样从数据库中按照账号查询户名至depd6020表备注栏

TA的精华主题

TA的得分主题

发表于 2013-3-30 22:13 | 显示全部楼层
请测试:

  1. Sub 执行SQL语句()
  2.     Dim cnn As Object, StrSQL$
  3.     Set cnn = CreateObject("adodb.connection")
  4.     cnn.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\Database1.mdb" '连接数据库
  5.     StrSQL = "INSERT INTO 账户信息  SELECT * FROM [Excel 8.0;Database=" & ThisWorkbook.FullName & "].[DEPD2010$A2:N] where 账户姓名 is not null"
  6.     cnn.Execute StrSQL '执行
  7.     MsgBox "已将工作表记录添加到数据库。", vbInformation
  8.     cnn.Close
  9.     Set cnn = Nothing
  10. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-3-30 22:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请看附件
流水.rar (106.38 KB, 下载次数: 28)

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-31 00:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2013-3-30 22:14
请看附件

谢谢版主帮忙,我表达不清,我的意思是导入不区分姓名的,导入直接累加导入即可,在导入后新建命令把depd6020表中O列(备注栏)从数据库中查找,填写用户名,就是当日对私开/销户报表有名我明日建数据库,流水表无名,我导入excel后,从数据库取名添加。

TA的精华主题

TA的得分主题

发表于 2013-3-31 00:19 | 显示全部楼层
yczzwy 发表于 2013-3-31 00:15
谢谢版主帮忙,我表达不清,我的意思是导入不区分姓名的,导入直接累加导入即可,在导入后新建命令把depd ...

我写的就是直接把工作表数据导入到Access数据表中,没有其他处理

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-31 00:35 | 显示全部楼层
zhaogang1960 发表于 2013-3-31 00:19
我写的就是直接把工作表数据导入到Access数据表中,没有其他处理

帮忙处理第二个问题,可以用把depd6020表一起建立数据库过渡,再在excel中查询显示简单吗?

TA的精华主题

TA的得分主题

发表于 2013-3-31 00:41 | 显示全部楼层
yczzwy 发表于 2013-3-31 00:35
帮忙处理第二个问题,可以用把depd6020表一起建立数据库过渡,再在excel中查询显示简单吗?

我实在没有理解第二个问题是什么

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-31 00:48 | 显示全部楼层
zhaogang1960 发表于 2013-3-31 00:41
我实在没有理解第二个问题是什么

不好意思,问题一是将DEPD2010表中数据存档至数据库中,因为数据量大excel无法满足。问题二是,在数据库中查找按照“账号”查找“户名”填写在DEPD6020表中“备注”列,excel不好直接处理,可以将DEPD6020表建立数据库在查询显示。两个表均是将文本文件导入到excel的

TA的精华主题

TA的得分主题

发表于 2013-3-31 00:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 zhaogang1960 于 2013-3-31 23:24 编辑
yczzwy 发表于 2013-3-31 00:48
不好意思,问题一是将DEPD2010表中数据存档至数据库中,因为数据量大excel无法满足。问题二是,在数据库中 ...


请测试:
  1. Sub 查询()
  2.     Dim cnn As Object, StrSQL$
  3.     Set cnn = CreateObject("adodb.connection")
  4.     cnn.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\Database1.mdb" '连接数据库
  5.     StrSQL = "select 账户姓名 from [Excel 8.0;Database=" & ThisWorkbook.FullName & "].[DEPD6020$a2:a" & Sheets("DEPD6020").[a65536].End(xlUp).Row & "] a left join 账户信息 b on a.账号=b.账号"
  6.     Sheets("DEPD6020").Range("o3").CopyFromRecordset cnn.Execute(StrSQL)
  7.     cnn.Close
  8.     Set cnn = Nothing
  9. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-3-31 00:52 | 显示全部楼层
本帖最后由 zhaogang1960 于 2013-3-31 23:25 编辑

请看附件
流水.rar (108.68 KB, 下载次数: 24)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-3 05:11 , Processed in 0.026501 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表