ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 连接access或SqL2000数据库全局变量方法求助

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-17 15:16 | 显示全部楼层 |阅读模式
本帖最后由 浠朢↘恠明兲 于 2018-8-17 19:33 编辑

用了EH2003作者的[分享] 连接access或SqL2000数据库全局变量方法(增加示例)
http://club.excelhome.net/thread-894274-1-1.html
请问如果要插入新记录改怎么插入?
  1.     Cnn.ExecuteSQL = "Insert Into 售出 " & Sql '插入新记录SQL语句
复制代码
这样不行
  1. Public cnn As ADODB.Connection
  2. Public rst As ADODB.Recordset
  3. Public msg As String
  4. Public sql As String         '创建字符串变量

  5. Public Function ExecuteSQL(sql As String) As ADODB.Recordset
  6.     On Error GoTo executesql_error
  7.     Set cnn = New ADODB.Connection
  8.     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\db1.mdb"  '连接access的方法
  9.     Set rst = New ADODB.Recordset
  10.     rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
  11.     Set ExecuteSQL = rst
  12. executesql_exit:
  13.     Set rst = Nothing
  14.     Set cnn = Nothing
  15.     Exit Function
  16. executesql_error:
  17.     msg = "错误原因:" & Err.Description
  18.     Resume executesql_exit
  19.     End Function
复制代码
自己测试已解决:
  1. Set Rst = ExecuteSQL("Insert Into 售出 " & Sql)
复制代码
SQL语句里EXCEL版本不知道为什么12.0就不行,8.0就可以


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-17 17:45 | 显示全部楼层
求帮忙看看,研究了老半天不知道怎么用

TA的精华主题

TA的得分主题

发表于 2018-8-17 17:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cnn.Execute strSQL

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-17 17:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

不行啊,StrSQL没这个变量

TA的精华主题

TA的得分主题

发表于 2018-8-17 17:57 | 显示全部楼层
strSQL 是你的SQL语句!!!

TA的精华主题

TA的得分主题

发表于 2018-8-17 18:04 | 显示全部楼层
cnn.Execute  有两种应用方式,取决于你的语句用途
1、如果是按行返回,也就是返回一个记录集:set Rst=cnn.Execute (strSQL)
2、如果不按行返回,也就是一些操作语句,如insert upeate等:cnn.Execute strSQL,
   当然你可以加入一个参数,判断操作是否成功,也就是这个操作影响了几行:cnn.Execute strsql,lngRecordCount

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-17 18:11 | 显示全部楼层
lsdongjh 发表于 2018-8-17 18:04
cnn.Execute  有两种应用方式,取决于你的语句用途
1、如果是按行返回,也就是返回一个记录集:set Rst=cn ...

Cnn.Execute = "Insert Into 售出 " & Sql '插入新记录SQL语句
产数不可选

TA的精华主题

TA的得分主题

发表于 2018-8-17 18:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好好学习一下SQL语句吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-17 18:14 | 显示全部楼层
lsdongjh 发表于 2018-8-17 18:04
cnn.Execute  有两种应用方式,取决于你的语句用途
1、如果是按行返回,也就是返回一个记录集:set Rst=cn ...

我是用了EH2013作者的Function ExecuteSQL全局变量,返回数据Set Rst = ExecuteSQL(Sql)没有问题,就是不知道INSERT怎么用

TA的精华主题

TA的得分主题

发表于 2018-8-17 20:49 | 显示全部楼层
本帖最后由 opiona 于 2018-8-17 20:54 编辑

6楼说了:改成这样子
'插入新记录SQL语句
strsql= "Insert Into 售出 " & Sql   
cnn.Execute strsql,lngRecordCount
msgbox lngRecordCount
详细的请参考:70楼:http://club.excelhome.net/thread-859194-1-1.html
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 07:54 , Processed in 0.023485 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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