0

I have one query of SQL, which I want to put in a VBA code to bring result in Excel sheet.

I tried the code pasted below.

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

Can someone please help me in figuring out that what is going wrong ??

4

1 回答 1

0

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

  1. 右键单击您的桌面(或任何文件夹)
  2. 选择新建 > 文本文件
  3. 右键单击您创建的文件,并将其名称(AND EXTENSION)更改为ConnectionInfo.UDL
  4. 双击文件ConnectionInfo.UDL,它将在 Microsoft 数据 - 核心服务中打开。
  5. 设置您的ProviderServerNameDatabase然后单击Test Connection再单击
  6. 右键单击该文件,这次选择使用记事本打开它
  7. 您应该看到一个正确的 OLE DB 连接字符串,您可以将其复制到您的 VB 代码中。

之后,您需要确保您的 SELECT 查询是正确的,方法是在 SQL Server 管理服务中运行它或查看您得到的结果。

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

于 2013-07-11T11:13:45.880 回答