• ベストアンサー

Access2000 週報のレポート作成

お世話になります 現在Access2000で、営業週報のレポートを作成しています。 営業が毎日入力するデータを一週間毎に週報としてAccessのレポートで出したいのですが、行き詰まってる個所があります。 やりたいことは、 =================== 営業週報 7/5~7/9 山田太郎 ※日付 |※行動 7/5(月) |挨拶 7/6(火) |商談 7/7(水) |見積もり 7/8(木) |見積もり 7/9(金) |納入 ================== ※はフィールド名 ↑のように、ごくごく簡単なレポートです。(説明の為フィールドは省略してあります。) 一週間の日付と、その日に何をしたかという事がわかればOKなんです。しかし、営業も日報を入力しない日というのがありますので、全ての曜日にデータが埋まるこということがなかなかりません。 ここで例えば、7/6(火)の日報がない場合は =================== 営業週報 7/5~7/9 ※日付 |※行動 7/5(月) |挨拶 7/7(水) |見積もり 7/8(木) |見積もり 7/9(金) |納入 ================== 当然ですが、7/6レコードが丸々抜けてしまうのです。 これだとNGなので、7/6日の日報がない場合でも =================== 営業週報 7/5~7/9 ※日付 |※行動 7/5(月) |挨拶 7/6(火) | 7/7(水) |見積もり 7/8(木) |見積もり 7/9(金) |納入 ================== このように日付だけは表示されて 「ああ、7/6はどこも行かなかったのね」 とわかるようにしたいのですが、 何かよい方法はありませんでしょうか? 説明が長くなりましてすみません、 足りない部分があれば補足いたします。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

VBA を使わないでもできるのかもしれないですが、やはり VBA を使った方が簡単になるように思います。 フォーム上のテキスト0に 2004/08/16 のように日付が入っていてた場合、2004/08/16 ~ 2004/08/20 をテーブル T_日付(日付フィールドが主キー)に追加するなら、例えば Private Sub コマンド4_Click() Dim s As String Dim d As Date Dim i As Integer Dim db As Database Set db = CurrentDb d = CDate(Me.テキスト0) For i = 0 To 4 s = "INSERT INTO T_日付 ( " s = s & "日付 ) " s = s & "VALUES ( " s = s & "#" & Format(d, "yyyy/mm/dd") & "#)" On Error Resume Next db.Execute s On Error GoTo 0 d = DateAdd("d", 1, d) Next i End Sub にようにすればできます。 ( ↑のコードは DAO を使用してますので、VBA のメニューのツール→参照設定で DAO にチェックを入れてください。) 他にも、パラメータクエリーにするとか、いろいろな方法があると思います。

amoamo
質問者

お礼

素晴らしいです!これでなんとかできそうです VBAは初心者なのですが、使いこなせればずいぶん楽になりそうですね。 ご丁寧なアドバイスありがとうございました。

その他の回答 (2)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

> ↑の部分はやはりVBAを使わないとできない処理でしょうか? 事前に1年分とかの日付のみデータを作成しておいて、期間で抽出してやれば 大丈夫だと思いますよ。 Excelなどを使えば、簡単に作成できますので。

amoamo
質問者

お礼

ご解答ありがとうございます。 そうか、エクセルでも日付の連続データすぐできますもんね。 検討してみます!

回答No.1

(1) 日付だけのテーブルと (2) 日付、行動のフィールドを持つテーブル の二つのテーブルに分け、 (1) と (2) を元にクエリーを作成し、(1) → (2) の向きの外部結合( (1) のレコードを全て含む)にしてやってはどうでしょか。 (1) のレコードを作成するタイミングは、レポートの出力実行時(イベントプロシージャの先頭)とかにし、登録されていない日付だけ登録するようにするなどしなければならないと思います。

amoamo
質問者

お礼

さっそくのご解答ありがとうございます。 さっそく実行してみます!と言いたいのですが・・ >登録されていない日付だけ登録するようにするなどしなければならないと思います。 ↑の部分はやはりVBAを使わないとできない処理でしょうか? 重ね重ねで恐縮ですがよろしくお願いします。

関連するQ&A

  • ACCESS2000のレポート

    Windows2000&ACCESS2000のレポートで変な現象が出ています。 テーブル:日付と住所とシメイと氏名。日付は日付型、それ以外はすべてテキスト型。 クエリー:上記のフィールドをそのままクエリーに。 表形式のレポートを作成を作成。日付によって抽出条件を変えて例えば、 何月何日の人の一覧表、のように出力しています。 →シメイ のテキストボックスだけ、 プレビューではすべて表示されているのですが、実際に印刷してみると 表示されていないことがあります。 この現象は、レポート単位です。 PCを変えて(ドライバーを変えて)みても同じ現象が起こります。 ご存知の方、おられましたら、よろしくお願いします。

  • 日進月歩リンク表

    このような表に、 日付 曜日 商談数 成約数 成約率 実績 着地 1 土 2 日 3 月 4 火 5 水 6 木 7 金 8 土 9 日 10 月 11 火 12 水 13 木 14 金 15 土 16 日 17 月 18 火 19 水 20 木 21 金 22 土 23 日 24 月 25 火 26 水 27 木 28 金 29 土 30 日 下記のデータが他のシートからリンクされています。 (これは日々、更新されています。) 日付     商談数  成約数 成約率   実績     着地 9/3 月 12件  2件   17%  ¥160,000  ¥890,000 このリンクされているデータを上記のカレンダーの該当する日付の行に貼り付けられていくにはマクロを組むしかないのでしょうか?

  • Excelで1ヶ月分の日付列を設定する方法

    Excelで1ヶ月分の日付列を設定する方法を教えてください。 自分のオフィスでは、毎日の仕事時間を記録する表をExcelで作っています。社員が個人個人で時間を書き込み、1ヶ月分で一枚の表になります。 この表には "日付の列" があるのですが、毎月、この日付の列は自分で書き直さなければならないようになっています。 以下のように並んでいます。(締めが17日なので、18日から始まります。) 18 水 19 木 20 金 21 土 22 日 23 月 24 火 25 水 26 木 27 金 28 土 29 日 30 月 31 火 1 水 2 木 3 金 4 土 5 日 6 月 7 火 8 水 9 木 10 金 11 土 12 日 13 月 14 火 15 水 16 木 17 金 初日の18を 2006/10/18 と入れたら、日付と曜日が自動的に並ぶようにしたいのですが、いくつか問題があって、うまく設定できずにいます。 1. 行を変えてはいけない。 2. 2月や4月など31日まで無い月は、その行を空白とする。 3. すべての社員のPCに分析ツールがインストールされているわけではなく、EDATE関数が使えない。 4. マクロを含めたくない。 5. シートは1枚で。 なにか良いアイデアないでしょうか? 足し算・引き算でうまくいかなければ、やはりマクロしかないのでしょうか?

  • Access2003の質問です。

    まず、日報を作成しました。 【担当者】****              2008年07月 日 曜日 工事コード 工事名  d h 残 夜 1  火  00-000   ●工事  1 2  水  00-001   ▲工事        3 日報を元にユニオンクエリからクロス集計クエリを作りました。 工事コード 00-000 担当者 項目  7/1 7/2 ・・・・・ ****   d  1      1   1 ****   h            ****   残   ****   夜 ++++   d  1   1   1   ++++   h   ++++   残 ++++   夜            1  1 工事コードで連結していて、だれがいつ現場に行ったか分かるものです。 この作り方では 横項目である日付が 工事コードによって増減があるため (例:○工事は7/1~8/10  ●工事は7/20~9/10)  レポートにした時に増減があるたびに作り直す必要があるようです。又 パラメーターがレポートで使用できません。 何かいい方法はないでしょうか?

  • 曜日のみを表示させたいです。

      _ 1|月|   _ 2|火|   _ 3|水|   _ 4|木|   _ 5|金|   _ 6|土|   _ 7|日|   _ 8|月|   _ 9|火|   _   ・   ・   ・ と上のように日付は出さずに曜日だけを表示させ、カレンダーのように繰り返し表示したいのですが、全くわかりません。 わかる方いらっしゃいましたら、教えてもらえると助かります。

    • ベストアンサー
    • PHP
  • Access カレンダー

    Access2000環境です。 フォームにカレンダーを作成したいと考えています。 フリーソフトのなどを参考に考えていましたが、フリーソフトは曜日が固定で日付が曜日に合わせて変化していく作りになっていました。 私は、下記のような日付が固定のままで日付に合わせて曜日が変化するものを作りたいと思っております。 -------------------------- 火|水|木|金|土|日|月|・・・変化 --|--|--|--|--|--|--|----- 1 | 2| 3| 4| 5| 6| 7|・・・固定 -------------------------- 分かりにくい説明で申し訳ありませんが、なにか参考になるHPなどありましたら宜しくお願い致します。

  • SQLで曜日のソートを月火水木金土日にしたい

    こんにちは。SQLiteのソートについてお教え頂けませんでしょうか。 フィールドに曜日が入っています。その曜日をソートをかけると下記のようになります。 土 日 月 木 水 火 金 欲しい並び順は下記です。 日 月 火 水 木 金 土 Or 月 火 水 木 金 土 日 CSVに出力したり、色々したいので曜日順になっていてもらった方が色々助かるのですが、何か良い方法はないでしょうか? 今考えているのは、C#のフォームからSQL文を発行してSQLiteに問い合わせ。結果をC#側で受け取って、CSVに出力という事を考えています。

  • Accessのレポートで使う関数を教えて

    私は製造会社のOLです。Windows2000/Access2000で課内の一月毎の工数表を作っています。テーブルは[日付(年/月/日)]、[取引先]、[製品名]、[担当者]、[工数(時間)]のフィールドからなっています。レポートで、一つの製品を制作するのに何名が携わっているかを計算させたいのですが、製品名フッターにて「=Count([担当者])」にすると、3日同じ人が同じ製品を製作したとしたら、「3名」となってしまします。それを「1名」と計算させるには、どうすればよいのでしょうか?どうか教えて下さい。

  • エクセル 関数 曜日別データの並び替え

    エクセルの関数で曜日別データの並び替えを教えてください 月 100 火 90 水 -10 木 -20 金 30 月 120 水 150 金 -120 のデータを 月   火   水   木   金 100  90   -10   -20   30 120  150            -120 のように並び替えたいです

  • エクセルで日付・曜日の入った表の作成方法が知りたい

    エクセルで毎月の曜日と日付が入った表を作成したいです。 5月 1  火 2  (水) 3  (木) 4  (金)   5  (土) 6  (日)    ・    ・    ・ 31 木 エクセル初心者です。 ↑上記のように、毎月、日付と曜日が入った表を作成しています。 この表は、土日・祝は色を赤色にし、()をつけてわかりやすくしなければなりません。 毎回手書きで作成しているのですが、簡単に作成できる関数などはありませんか? たとえば、2012年5月などと入力したら自動的に日付と曜日が入り、土日祝は赤色で()がつくように したいんですが、難しいでしょうか? 回答よろしくお願いいたします。