Anthonymurata 2013-09-17 09:07 采纳率: 0%
浏览 3625

请教如何用Excel VBA写宏,ODBA的方式连接Oracle,下载Oracle里面的数据

RT,以下是原先用AS400的时候取数据用的代码,换成Oracle之后在链接信息里面需要怎么设置呢?
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=" & HostName & ";CMT=0;DBQ=" & DBQName & ";NAM=0;DFT=5;DSP=1;TFT=0;TSP=0;DEC=0;XDYNAMIC=1;REC" _
), Array( _
"BLOCK=2;BLOCKSIZE=32;SCROLLABLE=0;TRANSLATE=0;LAZYCLOSE=1;LIBVIEW=0;REMARKS=0;CONNTYPE=0;SORTTYPE=0;PREFETCH=0;DFTPKGLIB=QGPL;L" _
), Array( _
"ANGUAGEID=ENU;SORTWEIGHT=0;SSL=2;SIGNON=3;MAXFIELDLEN=32;COMPRESSION=0;ALLOWUNSCHAR=0;SEACHPATTERN=1;MGDSN=0;" _
)), Destination:=Cells(1, 1))
.Sql = Array(sqlstring)
.FieldNames = True
.RefreshStyle = xlOverwriteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With

网上找到的一些
With ActiveSheet.QueryTables.Add("ODBC;DRIVER={Microsoft ODBC for Oracle};UID=jfalekaeg;PWD=123456;SERVER=iagent;",ActiveCell)
.CommandText = SQL语句
.Refresh BackgroundQuery:=False
End With
据说是可以的但是在我机器上就不行,怀疑是不是ODBC设置有问题。请有过经验的以及会的不吝赐教。

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-13 15:01
    关注

    该回答引用ChatGPT

    连接 Oracle 数据库并使用 Excel VBA 下载数据需要在计算机上安装 Oracle 客户端并配置 ODBC 连接。


    请注意,有几种不同的 Oracle 客户端,每种客户端都可以配置 ODBC 连接,因此需要确保安装了适用于您的环境的客户端。


    如果您已经安装了 Oracle 客户端并配置了 ODBC 连接,请按照以下步骤更新您的 VBA 代码:

    • 定义连接字符串:请根据您的 ODBC 连接的用户名、密码、服务器名称以及数据库名称来定义连接字符串。
    • 设置 Connection 参数:请将连接字符串替换到下面的代码中的 Connection 参数。

      With ActiveSheet.QueryTables.Add(Connection:="ODBC;DRIVER={Microsoft ODBC for Oracle};UID=<username>;PWD=<password>;SERVER=<server_name>;DBQ=<database_name>", Destination:=Cells(1, 1))
      .CommandText = <SQL_statement>
      .Refresh BackgroundQuery:=False
      End With
      
    • 设置 CommandText 参数:请将您想要执行的 SQL 语句替换到下面的代码中的 CommandText 参数。

    这样,您就可以使用 Excel VBA 连接 Oracle 数据库并下载数据。

    评论

报告相同问题?

悬赏问题

  • ¥20 怎么在stm32门禁成品上增加记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 解riccati方程组