2

私はドキュメンテーションに飛び込みましたが、情報が見つからなかったので (まあ、実際には他の SO の質問との類似点を見つけましたが、私が望むものではありませんでした)、皆さんに助けを求めています:

Excel ファイル (*.xlsx) から別のファイルにデータを取得するために、ADODB 接続を介して tsql クエリを実行しています。このファイルは次のように構成されています。

 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 に答える