1

Excel ファイルにインポートするために必要なすべてのデータを含むレコードセットがあります。Excel ファイルを開いたときに作成されるライブ レコードセットを複製する方法はありますか?

これが私が今運が悪いことを試みていることです。

Dim connection : Set connection = Server.CreateObject("ADODB.Connection")

connection.Open "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; 
                 Dbq=c:\MyExcel.xls;" & _
                "DefaultDir=c:\; ReadOnly=False;"
Dim excelRecordset : Set excelRecordset = Server.CreateObject("ADODB.Recordset")
excelRecordset.Open "[SHEET1$]", connection, 2, 3

excelRecordset.AddNew
Set excelRecordset = recordset.clone

excelRecordset.Update
excelRecordset.Close

ありがとうございました。

4

2 に答える 2

1

これを行う場合:-

Set excelRecordset = recordset.clone

Excel スプレッドシートで開いた (そして閉じた) レコードセットへの参照を、新しいレコードセットへの参照に置き換えます。この新しいレコードセットは、Excel スプレッドシートに接続されていません。

レコードセットを使用する場合For Each、ソース レコードセットを介してAddNew宛先で各フィールドをソースから宛先に割り当て、Update.

于 2009-09-22T07:05:22.747 に答える
0

ExcelRangeオブジェクトにはCopyFromRecordset、ジョブを実行するメソッドがあります。オブジェクトを作成して、Excel.Application書き込みたいブックを開くことができれば、これを使用できるはずです。

したがって、既存のレコードセットに名前が付けられrsていて、既に入力されている場合、VBA のコードは次のようになります。

Worksheets("SHEET1").Cells(2, 1).CopyFromRecordset rs

その後、反復しrs.Fieldsてフィールド名を入力できます

Dim fld As Field
Dim i As Integer
i = 1
With Worksheets("SHEET1")
    For Each fld in rs.Fields
        .Cells(1, i).Value = fld.Name
        i = i + 1
    Next fld
End With

ただし、それをシナリオに変換するのがどれほど簡単かはわかりません。

または、使用しているドライバーで使用できる場合は、このナレッジ ベースの記事で説明されている構文SELECT INTOと構文を調べることをお勧めします。INSERT INTO

于 2009-09-23T03:11:20.163 に答える