ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 使用CreateObject("access.application") 用SQL获得记录集,这方法对吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-1-1 21:18 | 显示全部楼层 |阅读模式
本帖最后由 renahu 于 2024-1-2 23:04 编辑

这是摆渡用AI生成的,到Set rsRecordset = objAccess.DoCmd.RunCommand(1024) 这句就报错了,我是excel表里运行的,我是office2010

' 创建 Access 应用程序对象
Set objAccess = CreateObject("Access.Application")

' 设置要打开的数据库文件路径
strDatabasePath = "C:\path\to\your\database.accdb"

' 打开数据库文件
objAccess.OpenCurrentDatabase strDatabasePath

' 定义 SQL 查询语句
strQuery = "SELECT * FROM YourTableName;"

' 运行 SQL 查询并将结果保存到 Recordset 变量中
Set rsRecordset = objAccess.DoCmd.RunCommand(1024) ' DoCmd.RunCommand(1024) 为 ExecuteSQL 命令的常量值
rsRecordset.Source = strQuery
rsRecordset.RetrieveAll

' 输出每条记录的字段内容
For Each field In rsRecordset.Fields
    WScript.Echo field.Value & vbTab
Next

' 关闭数据库连接
objAccess.CloseCurrentDatabase
objAccess.Quit

上述代码首先创建了一个名为objAccess的Access应用程序对象,然后指定要打开的数据库文件路径。接下来,我们定义了一个SQL查询语句,这里只是一个示例,需根据自己的情况修改。最后,使用ExecuteSQL命令执行查询,并将结果保存到名为rsRecordset的Recordset对象中。之后,我们可以通过遍历rsRecordset对象的字段属性来获取每条记录的字段内容。最后,关闭数据库连接并退出Access应用程序。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-2 11:04 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-2 21:08 | 显示全部楼层
  1.     Dim myAcc As Object, rsResult As Object
  2.     Set myAcc = CreateObject("access.application")
  3.     myAcc.OpenCurrentDatabase App.Path & "\数据.accdb"     
  4.     Set rsResult = CurrentDb.OpenRecordset(SQL)
  5.     Do While Not rsResult.EOF
  6.         ' 处理记录集中的数据
  7.         ' ...

  8.         ' 移动到下一条记录
  9.         rsResult.MoveNext
  10.     Loop
复制代码


自己搞出来了,前提是自定义函数要在access中的模块中先建立,就可以用vba在excel中调用带有自定义函数的sql语句了,我这里是在VB中运行的,ADODB不认sql中的自定义函数,只能分两步处理。建立access对象虽然可以调用带自定义函数的sql,但说实话速度太慢,不如ADODB
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 15:33 , Processed in 0.023816 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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