ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA insert有空值时报错

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-13 14:59 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 夜来清香 于 2014-9-13 18:16 编辑

如题,在向texbox赋值后,如果有一个textbox没被赋值便会报错,全部输入则不会有问题,问题已经明确所以就不传附件了(参见下述代码)

http://club.excelhome.net/thread-456852-1-1.html这里也有一个帖子,不要仅仅是先判断是否为空,因为我不仅仅是要遇到空值就结束,而是要继续insert空值

**************分界线,问题2*************
另外请教,下述部分语句可以精简么,换句话说不要一个个的罗列出来,而是直接用A(i)和Fields建立联系?(字段的属性既有文本,数字,又有日期,字段属性已经在字段名里体现出来了)

        Set cnn = CreateObject("Adodb.Connection")
        Set rst = CreateObject("Adodb.Recordset")

       Me.Controls("textbox" & 15) = Format(Date, "yyyy-mm-dd")
       For i = 1 To 14
            a(i) = Me.Controls("textbox" & i).Value
        Next
        cnn.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\Database.accdb"
        Strsql = "Insert Into RM([数字1],[文本1],[数字2],[数字3],[数字4],[数字5],[数字6],[数字7],[数字8],[数字9],[数字10],[数字11],[文本2],[文本3],[文本4],[日期1]) " & _
                 "Values(" & a(1) & ",'" & a(2) & "'," & a(3) & "," & a(4) & "," & a(5) & "," & a(6) & "," & a(7) & "," & a(8) & "," & a(9) & "," & a(10) & "," & a(11) & ",'" & a(12) & "','" & a(13) & "','" & a(14) & "',#" & TextBox15 & "# )"
        cnn.Execute Strsql
****************继续分割,问题3**************
还是接着上面的问题
       For i = 1 To 14
            a(i) = Me.Controls("textbox" & i).Value      
        Next
'该语句对于文本与数字格式的字段都是适用的,textbox是一个日期格式的,原本想改成i = 1 To 15实现给a(15)赋值的,但貌似不适用于日期字段,怎么修改语句既适用于文本、数字又适用于日期?
**************继续分割,问题4************
用上述笨拙穷举的方法解决了insert问题,但是update时却又出新的问题
Strsql = "Update RM2 Set [文本1]='" & a(2) & "',....中间省略11字段(已测试无问题).....,[日期1]=#" & TextBox15 & "# where [数字1] =" & a(1) & ""         '运行问题来了

第一种情况,把[日期1]字段去掉时,运行正常
第二种情况,把【日期1】字段加进来就报错,按理说在问题2里insert【日期1】是没错的,我只是把insert改成update而已为什么就报错了呢

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 07:46 , Processed in 0.021216 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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