【VBA】 通过VBA脚本将EXCEL的数据导入 ORACLE

作者:lianghc

描述:最近在使用infamatica 将excel  的数据导入oracle时,遇到意外终止错误,无法将数据导入。于是采用VBA将数据导入数据库,是办公人员一键同步excel的数据导数据库中,这种做法的前提是提供标准的模板。下面是解决问题过程中收集的连接数据库的方法,整理一下供大家参考。

1、引用法

引用ADO相关组件:打开VBA编辑器,在菜单中点选“工具”--》“引用”。确保“Microsoft ActiviteX Data Objects 2.8 Library”和“Microsoft ActiviteX Data ObjectS Recordset 2.8 Library”被勾选上。引用后再声明:

Dim cnn As New Connection '声明链接对象
Dim rst As New Recordset '声明记录集对象

例子:
Dim cnn As New Connection 
Dim rst As New Recordset 
cnn.Open "Provider=msdaora.1;Data Source=dl580;User Id=emssxjk;Password=emssxjk;" 
OraOpen = True '成功执行后,数据库即被打开 

sqls = "select count(*) from tb_evt_dlv where mail_num='" & emsid & "'" 
Set rst = cnn.Execute(sqls) 
If rst(0) > 0 Then 
sqls = "select b.zj_code,b.zj_mc,b.jgfl,b.city,b.ssxs from tb_evt_dlv a, tb_jg b " 
sqls = sqls & "where a.dlv_bureau_org_code = b.zj_code and a.mail_num='" & emsid & "' and rownum=1" 
Set rst = cnn.Execute(sqls) 
sqls = "CopyFromRecordset" 
'maxrow = Sheets(qfxx).[A65536].End(xlUp).Row 
'If maxrow > 1 Then Sheets(qfxx).Range("a2:H" & maxrow).ClearContents 
Cells(row1, pos_sav).CopyFromRecordset rst 
Else 
sqls = "select b.zj_code,b.zj_mc,b.jgfl,b.city,b.ssxs from tb_evt_mail_clct a, tb_jg b " 
sqls &#
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百事悠弦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值