- ベストアンサー
アクセスVBA CSVへ出力後、最終レコードの次の行に任意の文字を入れたい
- VBA初心者の質問です。エクセルへのテーブル出力後、最終レコードの次の行に任意の文字を入れる方法を教えてください。
- 具体的には、テーブル名2をエクセルの任意の範囲に出力し、最終レコードの次行の特定の列を指定して任意の文字を入れる処理をしたいと考えています。
- テーブル名2のレコード数は毎回異なります。方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
カーソルをクライアントカーソルに変更してみてください。 Set cnn = CurrentProject.Connection cnn.CursorLocation = adUseClient <=追加 Set cnn2 = CurrentProject.Connection Set rst2 = cnn2.Execute(stBasis) Set rst = cnn.Execute(stDetail) その上で最初に回答したコードでやってみてください。
その他の回答 (1)
- kuroooooo
- ベストアンサー率47% (8/17)
'★★テーブル名2を貼り付け With wkb.Worksheets(stSheet) .Range(stRng).CopyFromRecordset Data:=rst .Cells(rst.RecordCount + 25, 3) = "END" .Cells(rst.RecordCount + 25, 5) = "END" End With かな。 レコードセットのRecoudCountプロパティでレコード数を取得して、 行の初期位置に加算してやるという考え方です。
お礼
早速のご回答ありがとうございます。 ご教授いただいた方法で試してみましたが当方の力量不足により うまくいかないようです。すいません。 実行したのは以下となります。 '★★テーブル名2を貼り付け With wkb.Worksheets(stSheet) .Range(stRng).CopyFromRecordset Data:=rst .Cells(rst.RecordCount + 25, 3) = "END" .Cells(rst.RecordCount + 25, 5) = "END" End With 実行結果は、24行目のC列とE列に”END”と入ります。 試しに以下のように、レコード数3+1=4を追加して+29で実行すると 入れたい列(28列目)にちゃんと入りました。 With wkb.Worksheets(stSheet) .Range(stRng).CopyFromRecordset Data:=rst .Cells(rst.RecordCount + 29, 3) = "END" .Cells(rst.RecordCount + 29, 5) = "END" End With ということは"rst.RecordCount"が数値として認識されてない?のかなぁ?と勝手に想像し、以下もやってみましたがやっぱりダメでした。 浅はかですいません。。実行結果は24行目のC列とE列に”END”と入ります。 Dim figA As Integer figA = rst.RecordCount figA = (figA + 25) With wkb.Worksheets(stSheet) .Range(stRng).CopyFromRecordset Data:=rst .Cells(figA, 1) = "EOL" .Cells(figA, 4) = "EOL" End With すいませんがもう少し教えていただけますでしょうか?
補足
すいません、訂正です。最後に試したのは以下となります。 Dim figA As Integer figA = rst.RecordCount figA = (figA + 25) With wkb.Worksheets(stSheet) .Range(stRng).CopyFromRecordset Data:=rst .Cells(figA, 3) = "END" .Cells(figA, 5) = "END" End With
お礼
うまくいきました!大変助かりました! また宜しくお願い致します!