ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] EXCEL数据通过vba写入access时的空格问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-6-18 17:00 | 显示全部楼层 |阅读模式
本帖最后由 lihui8201 于 2012-6-18 18:06 编辑

Private Sub CommandButton1_Click()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("D:\auto1\db1.mdb ", False, False, ";Pwd=123")
db.Execute ("delete * from no")
For i = 6 To [a6].End(xlDown).Row
Sql = "INSERT INTO no(型号规格,长度,直径,管长) values ('" & Cells(i, 7) & "','" & Cells(i, 8) & "','" & Cells(i, 9) & "','" & Cells(i, 10) & "')"
db.Execute (Sql)
Next
MsgBox "写入数据" & [a6].End(xlDown).Row - 5 & "行"
End Sub

上面的是vba程序,用来实现把excel中从第六行到最后一行的7,8,9,10列写入access “D:\auto1\db1.mdb " 。
但是出现了一个问题:7,8,9,10列必须全部都有数值才行,如果某一行的7,8,9,10列有一列没有值(就是空格),那么这一列都写不进access(包括空格和数值都没有写入),有没有什么办法,来实现:把空格和数值都一起写入access。
请各位前辈指点,谢谢!

为了便于理解,刚刚添加了一个附件,请高手指点,谢谢!

auto1.rar

52.32 KB, 下载次数: 20

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-18 18:08 | 显示全部楼层
顶上去,希望更多的人看到,帮我出出主意。谢谢啦!{:soso_e113:}

TA的精华主题

TA的得分主题

发表于 2012-6-18 18:55 | 显示全部楼层
使用ADO试试看
Sub Macro1()
    Dim cnn As Object, SQL$
    Set cnn = CreateObject("ADODB.Connection")
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\db1.mdb;jet oledb:database password=123"
    SQL = "insert into [no] select * from (select f1 as 型号规格,f2 as 长度,f3 as 直径,f4 as 管长 from [Excel 8.0;hdr=no;Database=" & ThisWorkbook.FullName & "].[管线表$G6:J" & [a6].End(xlDown).Row & "])"
    cnn.Execute SQL
    cnn.Close
    Set cnn = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2012-6-18 18:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请看附件
auto1.rar (55.29 KB, 下载次数: 54)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-18 21:21 | 显示全部楼层
本帖最后由 lihui8201 于 2012-6-18 21:22 编辑
zhaogang1960 发表于 2012-6-18 18:56
请看附件

谢谢zhaogang1960大大的指教,我下载了附件,用了一下。还有两个问题需要向您请教,一是,最后一行管长没有写入access;二是,能否每次按5537按钮时,把access表格里原先的数据清空后,再写入新数据?

TA的精华主题

TA的得分主题

发表于 2012-6-18 21:38 | 显示全部楼层
lihui8201 发表于 2012-6-18 21:21
谢谢zhaogang1960大大的指教,我下载了附件,用了一下。还有两个问题需要向您请教,一是,最后一行管长没 ...
  1. Sub Macro1()
  2.     Dim cnn As Object, SQL$
  3.     Set cnn = CreateObject("ADODB.Connection")
  4.     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\db1.mdb;jet oledb:database password=123"
  5.     cnn.Execute "Delete from [no]"
  6.     SQL = "insert into [no] select * from (select f1 as 型号规格,f2 as 长度,f3 as 直径,f4 as 管长 from [Excel 8.0;hdr=no;imex=1;Database=" & ThisWorkbook.FullName & "].[管线表$G6:J" & [a6].End(xlDown).Row & "])"
  7.     cnn.Execute SQL
  8.     cnn.Close
  9.     Set cnn = Nothing
  10. End Sub

复制代码

TA的精华主题

TA的得分主题

发表于 2012-6-18 21:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请看附件
auto1.rar (55.58 KB, 下载次数: 87)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-18 22:01 | 显示全部楼层
zhaogang1960 发表于 2012-6-18 21:40
请看附件

谢谢zhaogang1960大大的热心回复,功能完全满足要求。{:soso_e179:}

TA的精华主题

TA的得分主题

发表于 2012-6-23 21:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
kankan!!!!!!!!1

TA的精华主题

TA的得分主题

发表于 2015-9-21 16:53 | 显示全部楼层

就这个案例,如果想实现accsess中,1到5行,由计划部门的EXCEL表格中的数据写入,6-8行由生产部门的EXCEl的表格中的数据写入,同时这两个部门又可以在各自的excel表格中调用对方的最新数据,怎么实现呢?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 15:26 , Processed in 0.037260 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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