2

我深入研究了文档,但由于我没有找到任何信息(嗯,实际上我发现了与其他一些 SO 问题的相似之处,但不是我想要的),我请求你们帮助我:

我正在通过 ADODB 连接执行 tsql 查询,以将数据从 Excel 文件 (*.xlsx) 检索到另一个文件中。该文件的组成如下:

 Header1     Header2     Header3
---------   ---------   ---------
    A1          B1          C1
    A2          B2          C2
    A3          B3          C3
   ....        ....        ....    

我也想检索标头,所以这是整个程序的一部分,包含连接字符串

Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset

With con
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=path\file.xlsx; _
         Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"""
    Set rs = .Execute("Select * From [Sheet1$]")
    .Close
End With

在这里,我检索所有列,但是如果我想要 B 列,然后是 A 列,然后是 C 列,例如这样的东西怎么办:

Set rs = .Execute("Select colb, cola, colc From [Sheet1$]")

那里的问题是我不知道应该替换 colb、cola、colc 的术语,因为我不能使用列的标题

问候

PS:我对这些技术了解不多,所以我可能对术语有误。

4

2 回答 2

3

不是我的回答,而是来自坐在我旁边的同事;)

Set rs = .Execute("SELECT F2, F1, F3 FROM [Sheet1$]")

(未测试)

于 2013-05-02T14:07:43.743 回答
0

您是否尝试过读取文件中的列:

Set rs = .Execute("SELECT * FROM [Sheet1$]")

然后将它们映射到所需的变量?我的意思是 - 你rs在你的代码后面做什么?

于 2013-05-02T14:00:58.960 回答