● 概要 ●
構文 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