HOME > 即効テクニック > AccessVBA > ファイル操作・他アプリケーションとの連携 > レコードセットをファイルに保存する

即効テクニック

ファイル操作・他アプリケーションとの連携

レコードセットをファイルに保存する

(Access 2000/2002/2003)
● 概要 ●
構文  expression.Save FileName, PersistFormat
設定項目        内容
expression      Recordsetオブジェクトを指定[省略不可]
FileName        Recordsetを保存するファイル名(フルパス)を指定[省略不可]
PersistFormat   Recordsetを保存する形式を定数で指定[省略可能]


Recordsetオブジェクトの内容をファイルに保存します。Recordsetオブジェクトにフィルタを設定している場合は、抽出された行のみ保存します。

引数には次の定数を指定します。

・引数に指定する定数

定数            説明
adPersistADTG   適切なAdvanced Data Tablegram形式で保存(既定値)。
adPersistXML    XML形式で保存。

Saveメソッドを実行すると、カレントレコードはRecordsetの最初のレコードになります。
また、引数のファイルはRecordsetを閉じるまで開いたままです。

次のコードは、「商品tbl」テーブルにフィルタを設定した結果を「test.dat」ファイルに保存しています。
このサンプルを実行する場合は、フォルダ名やデータベース名をお使いの環境に合わせてください。


● サンプル1 ●
Sub SaveRecSample()
    Dim myCN As New ADODB.Connection
    Dim myRS As New ADODB.Recordset
    myCN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=C:\AccessVBA\Sample1.mdb"
    myCN.Open
    'レコードセットを開く
    myRS.Open "商品tbl", myCN
    'フィルタを設定
    myRS.Filter = "単価 >= 200"
    'レコードセットをファイルに保存
    myRS.Save "C:\AccessVBA\test.dat" 
    'レコードセットを閉じる
    myRS.Close
    myCN.Close
End Sub


● サンプル2 ●
次のコードは、保存した「test.dat」ファイルの内容をRecordsetに読み込んで、内容を[イミディエイト]ウィンドウに表示しています。

Sub GetRecSample()
    Dim myRS As New ADODB.Recordset
    With myRS
        'ファイルを読み込む
        .Open "C:\AccessVBA\test.dat"
        'レコードセットの最後まで繰り返す
        Do Until .EOF
            '単価と商品名を表示 
            Debug.Print !単価 & ":" & !商品名
            '次のレコードを参照
            .MoveNext
        Loop
        'レコードセットを閉じる
        .Close
    End With
End Sub