ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 两个工作簿间通过SQL传输数据的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-21 10:50 | 显示全部楼层 |阅读模式
做了两个工作簿,一个作为数据库A,另一个作为客户端B。通过以下代码单项传输数据,即从客户端工作簿B传到数据库工作簿A。
  1. Sub ShowUpList(User$)
  2. Dim con As Object
  3. Dim sql$, iRow&
  4. Application.ScreenUpdating = False
  5. Call ClearContents
  6. Set con = CreateObject("ADODB.connection")
  7. With con
  8.       .Provider = "Microsoft.ACE.OLEDB.12.0;Extended Properties=excel 12.0"
  9.       .Open ThisWorkbook.Path & "" & ThisWorkbook.Sheets("MasterData").Cells(2, 4).Text
  10. End With
  11. sql = "SELECT * FROM [2022M$] WHERE [Manager] ='" & User & "'"
  12. With ThisWorkbook.Sheets("2022 BU DATA")
  13.     iRow = .[A1048576].End(3).Row + 1
  14.     .Range("A" & iRow).CopyFromRecordset con.Execute(sql)
  15. End With

  16. Application.ScreenUpdating = True
  17. con.Close
  18. Set con = Nothing
  19. End Sub
复制代码
现在有两种场景情况不一样

1. 两个工作簿同时在一台电脑上打开,在B中修改的数据通过以上代码可以实时更新到A中。注意是实时,不用刷新A
2. 将两个工作簿放到网络公共盘,由两台电脑分别打开。工作簿B中运行以上代码时则提示,A已经打开不能更新数据,需要等到A关闭了才可以。

在网络公共盘中存放这两个工作簿是否也可以实现1中的情况?即实时更新数据的功能?比如将工作簿A设置为共享工作簿?但是设置为共享工作簿之后则提示不能再使用VBA了。请高手赐教。

TA的精华主题

TA的得分主题

发表于 2022-11-21 14:46 | 显示全部楼层
这种比较复杂的需求建议不要用VBA解决了,上个数据库或者开发网站或者用Python吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-21 15:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. With con
  2.       .Provider = "Microsoft.ACE.OLEDB.12.0;Extended Properties=excel 12.0"
  3.       .Open ThisWorkbook.Path & "" & ThisWorkbook.Sheets("MasterData").Cells(2, 4).Text
复制代码


在执行以上open语句的时候,如何判断该文件是否已经打开?

TA的精华主题

TA的得分主题

发表于 2022-11-21 15:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
這般奇淫的用法倒不如直接用數據庫
客戶端更新數據庫,那個開都是實時更新的

TA的精华主题

TA的得分主题

发表于 2022-11-21 18:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Yanxi2021 发表于 2022-11-21 15:08
在执行以上open语句的时候,如何判断该文件是否已经打开?

通过state来判断

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-21 19:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-21 19:46 | 显示全部楼层
如果能通过判断该共享文件是否已被人打开,给出提示也行。

TA的精华主题

TA的得分主题

发表于 2022-11-21 19:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
access做数据库不就省得研究了,这种情况应该没有必须用Excel做数据库的必要性吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-21 20:58 | 显示全部楼层
micch 发表于 2022-11-21 19:50
access做数据库不就省得研究了,这种情况应该没有必须用Excel做数据库的必要性吧

暂时还不可以,以后倒是可以用这种方式

TA的精华主题

TA的得分主题

发表于 2022-11-22 07:41 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Yanxi2021 发表于 2022-11-21 20:58
暂时还不可以,以后倒是可以用这种方式

那暂时得确很难解决,以后倒是可以解决。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 00:15 , Processed in 0.044468 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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