如何在VBA代码中使用SQL Select Query?

时间:2013-07-11 06:23:36

标签: excel-vba vba excel

我有SQL的一个查询,我想将其放入VBA代码中,以便将结果输入Excel工作表。

我尝试了下面粘贴的代码。

Sub Connect2SQLXpress()

Dim Ors As Object Dim oCon As Object

Set oCon = CreateObject("ADODB.Connection") 
Set Ors = CreateObject("ADODB.Recordset")

Set oCon = New ADODB.Connection oCon.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI" 
   oCon.Open
Ors.Source = "Select KeyInstn,LongName,Shortname,Shortestname From New_inst WHERE ......" 

Ors.Open Range("A1").CopyFromRecordset Ors
Ors.Close oCon.Close

If Not Ors Is Nothing Then Set Ors = Nothing 
If Not oCon Is Nothing Then Set oCon = Nothing

有人可以帮我弄清楚出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

创建一个好的连接字符串试试这个:

  1. 右键单击桌面(或任何文件夹)
  2. 选择新>文本文件
  3. 右键点击您创建的文件,并将其名称( AND EXTENSION )更改为 ConnectionInfo.UDL
  4. 双击文件 ConnectionInfo.UDL ,这应该在Microsoft数据中打开 - 核心服务。
  5. 设置提供商 ServerName 数据库,然后点击测试连接,然后再点击
  6. 右键单击该文件,这次选择使用记事本
  7. 打开它
  8. 您应该看到一个正确的OLE DB连接字符串,您可以将其复制到VB代码中。
  9. 之后,您需要确保您的SELECT查询是正确的,方法是在SQL Server Management Services中运行它,或者看看您是否获得了结果。

    在Excel中打开记录集后,可以使用范围对象的 CopyFromRecordset 方法将记录集转储到Excel中