请教如何用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设置有问题。请有过经验的以及会的不吝赐教。

该回答引用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 数据库并下载数据。