Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2581|回复: 4

VBA 与ACCESS之间的数据类型如何相等

[复制链接]
发表于 2019-8-19 17:10 | 显示全部楼层 |阅读模式
Sub 另存命令()    '引用Microsoft ActiveX Data Objects 2.x Library
     Dim SQL As String
     m1 = Sheets("周销额指标").Range("D1").Value
    Set cnn = CreateObject("adodb.connection")
    cnn.Open "Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\周指标分解.accdb" 'access库名
    cnn.Execute ("delete from 周销售指标 where 月份=m1")
    SQL = "insert into 周销售指标 select * from [Excel 12.0;Database=" & ThisWorkbook.FullName & "].[周销额指标$b10:bi" & Range("A" & Rows.Count).End(xlUp).Row & "]" '表1即access表的文件夹,录入表则工作表上的sheet表名
    cnn.Execute SQL
    cnn.Close
    Set cnn = Nothing
    MsgBox ("数据已上传完成,请保存工作表!!!")
End Sub




AA.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2019-8-19 17:12 | 显示全部楼层
本帖最后由 阿呆88 于 2019-8-19 17:14 编辑

详细看附件

AA.zip

9.44 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2019-8-19 18:15 | 显示全部楼层
" & Sheets("周销额指标").Range("B11") & " ")
回复

使用道具 举报

发表于 2019-8-20 08:51 | 显示全部楼层
阿呆88 发表于 2019-8-19 18:15
" & Sheets("周销额指标").Range("B11") & " ")

1、你文件里没代码;
2、1楼的截图和本层的代码也不一致;
3、关于数据格式,数据库的格式比较简单,就那么几种类型。但excel的格式比较复杂,除了字符、数字、货币、日期、逻辑等这几种明确与数据库相同的类型外,还有很多自定义的类型,这些自定义的类型很可能会让数据库不认识,造成无法写入;
     excel的数据如果经过复杂计算,得到的结果也无法预料。这里的计算不是指纯粹的数学计算,是指复杂的字符拼接,因为单元格允许包含看不见的控制符,比如换行和回车符,还有很多你想不到的各种控制符号,这些很容易造成数据库不认识。因此excel与数据库的数据交换,必须是最简单的数据类型,实在搞不定,就用常规+单行文本+数字,尤其不能使用多行文本的单元格;
回复

使用道具 举报

 楼主| 发表于 2019-8-20 14:12 | 显示全部楼层
hfwufanhf2006 发表于 2019-8-20 08:51
1、你文件里没代码;
2、1楼的截图和本层的代码也不一致;
3、关于数据格式,数据库的格式比较简单,就 ...

收到,谢谢,主要在VBA执行SQL,不能像VBA那样取变量,我已解决,非常感谢!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 00:33 , Processed in 0.287148 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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