- ベストアンサー
ACCESS,VBAで読込み位置指定はできますか?
ACCESS,VBAで質問します。Aファイルを読み、Bファイルに出力します。この時、Aファイルのレコードが大量にあるので、開始位置を指定したいのですが、メソッドがわかりません。キーで指定できないでしょうか。MOVEFIRSTだけでしょうか。宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
<tab1> ID___fld_1___fld_2 1____1_______A 2____2_______B 3____3_______C [イミディエイト] 3 3 A ----------------------- このように、レコードを2つ飛び越して表示するサンプルコードです。 Private Sub コマンド0_Click() Dim dbsCurrent As DAO.Database Dim rstTab1 As DAO.Recordset Set dbsCurrent = CurrentDb Set rstTab1 = dbsCurrent.OpenRecordset("SELECT * FROM Tab1") With rstTab1 .Move 2 Do Debug.Print .Fields("ID") Debug.Print .Fields("fld_1") Debug.Print .Fields("fld_2") Debug.Print "-----------------------" .MoveNext Loop Until .EOF End With rstTab1.Close dbsCurrent.Close End Sub
その他の回答 (3)
- slate
- ベストアンサー率41% (14/34)
Aファイル、Bファイルとは何でしょうか? MDB(Accessで作成されたファイル)でしょうか? その場合には、レコードの並び順は保証されません。 レコードを一意に指定したい場合には、 そのような項目があるか、作成しておく必要があります。 DBとは、通常そういうものです。 で、どうもADOとかのRecordsetで異ファイル間の データエクスポート/インポートを実装されることを考えておられるようですが、 Accessのエクスポート/インポート機能をVBAにて実装するか、 パススルークエリでインポートするか リンクテーブルを張ってからインポートするか、 方法はいろいろありますが、 ADOでやるよりは高速です。
- j_nishiz
- ベストアンサー率26% (183/697)
Aファイルがキー順にソートされているのでしたら、合致するまで読み飛ばせば良いのでは。 ソート用のフリーウェアもあり、条件で抜き出しも出来るようですので、それらを使ってAファイルを抜き出しておくのも考えられた方がよいと思います。
お礼
ご回答ありがとうございます。 10万件以上あり、読み飛ばす時間を省略したいので、頭出しを行いたいです。
C ----------------------- もちろん、A は単なる転記ミス。
お礼
move n ですね。 私が実行したいのは、必ず、この位置からではなく、およその件数から読み出せれば充分なので、利用できます。 10万件以上あるので、クエリーの抽出で時間がかかり過ぎているようなので慣れないVBAに挑戦中です。 試してみます。ありがとうざいました。