Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


131 / 2272 ツリー ←次へ | 前へ→

【12897】週ごとにテキスト保存の仕方 yoko 15/11/1(日) 13:53 質問[未読]
【12900】Re:週ごとにテキスト保存の仕方 かるびの 15/11/2(月) 15:02 回答[未読]
【12902】Re:週ごとにテキスト保存の仕方 yoko 15/11/4(水) 20:57 お礼[未読]

【12897】週ごとにテキスト保存の仕方
質問  yoko  - 15/11/1(日) 13:53 -

引用なし
パスワード
   こんにちは。
Accessで作ったデータを1週間毎にテキストデータとして保存したいと思っています。

部品番号 発注日    個数 月の何週目 週の月曜日
A     2015/04/06  3   2     2015/04/06
D     2015/04/09  1   2     2015/04/06
B     2015/10/21  5   4     2015/10/19
C     2015/10/26  2   5     2015/10/26

上記のように、データをクエリーでここまで取ってきたのですが、
ここから、悩んでおります。

1週間毎に、テキストで保存をしたいと思っています。
保存名が、「週の月曜日」の名前で保存し、
また、その月の週で1,2,4,5週目はデータがあったとして、
第3週目のデータがなければ、空データをして保存しなければ、
なりません。

お忙しいところ申し訳ありませんが、
よろしくお願い致します。

【12900】Re:週ごとにテキスト保存の仕方
回答  かるびの  - 15/11/2(月) 15:02 -

引用なし
パスワード
    VBA必須になります。

 方法ですが、

1 出力したいテキストファイル名を生成
2 当該週のレコードだけを抽出
3 2をテキストファイルに出力
4 1から3をループ

という流れになります。


 2の「当該週のレコードだけを抽出」ですが、
クエリで抽出する方法とレコードセットを使う方法があります。

 クエリで抽出する方法だと、ループにおける各回ごとに異なるクエリを作る必要があります。
 そのクエリは、手作業で作るのは面倒なので、VBAで作ることになります。
 その手順は、DAOの QueryDef オブジェクトの SQL プロパティを毎回書き替える
という方法になります。

 SQL プロパティには、選択クエリのSQL文を指定することになるので、
SQL文を自分で書けることが必要です。
 でも、SQL文について解説しているサイトを見つけ、30分も勉強すれば、
簡単な選択クエリであれば、SQL文で表現できるようになると思います。


 レコードセットで抽出する方法だと、
レコードセット取得に当たって、SQL文を指定することになります。


 3の「テキストファイルに出力」ですが、
2でクエリにより抽出した場合は、TransferText メソッドを使います。
 ほかにも OutputTo メソッドも使えると思いますが、
私は、OutputTo メソッドは使ったことがありません。

 なお、TransferText メソッドだと、レコードの並び順が、クエリとテキストファイルとで
異なる可能性があります。
 テキストファイルでの並び順もクエリどおりにしたいのであれば、
クエリにおいて並び順を指定しておき(SQL文で ORDER BY 句を指定する)、
クエリをレコードセットとして取得して、1レコードずつPrint # ステートメントで
テキストファイルに出力します。


 レコードセットで抽出する方法だと、
レコードごとに Print # ステートメントを使って、テキストファイルに出力します。


>また、その月の週で1,2,4,5週目はデータがあったとして、
>第3週目のデータがなければ、空データをして保存しなければ、
>なりません。 
 レコードの抽出をクエリで行うならば、DCount 関数を使い、
レコードセットで行うならば、RecordCount プロパティを使って、
何件抽出できたかを取得して、レコード件数が0件の場合と、1件以上の場合とで
場合分けすれば(If文)、いいと思います(

【12902】Re:週ごとにテキスト保存の仕方
お礼  yoko  - 15/11/4(水) 20:57 -

引用なし
パスワード
   こんばんは。

返事が遅くなり、すいませんでした。
お返事を頂き、試行錯誤しつつでしたが
何とか出来ました。^^

何かヒントを!と思い投函致しましたが、
ご丁寧に返事を頂きまして、本当にありがとうございました。

お陰様で、悩んでたものが解決出来ました♪

131 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free