• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのテーブルに稼働日フィールドを追加したい)

Accessのテーブルに稼働日フィールドを追加したい

このQ&Aのポイント
  • ACCESSのAテーブルに[開始日]と[終了日]フィールドがあり、Bテーブルには[祝日]フィールドがあります。Aテーブルに新しいフィールドを追加し、[開始日]から[終了日]までの期間で土日と祝日を除いた日数を表示させたいです。
  • 期間内の日数と土日の日数はDATEDIFFで計算できますが、Bテーブルのデータ数を数えて引く方法がわかりません。より効果的な方法を教えていただきたいです。
  • 稼働日を計算するためには、期間内の日数から土日と祝日の日数を引く必要があります。Bテーブルのデータを数える方法を教えていただけませんか?

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

失礼しました。終了日を入れるのを忘れてましたね SELECT Aテーブル.ID, Count(*) AS カウント FROM 数字, Aテーブル WHERE (((DateAdd("d",[数字],[開始日])) Not In (select 祝日 from Bテーブル) And (DateAdd("d",[数字],[開始日]))<=[終了日]) AND ((DatePart("w",DateAdd("d",[数字],[開始日])))<>1 And (DatePart("w",DateAdd("d",[数字],[開始日])))<>7)) GROUP BY Aテーブル.ID;

sistan
質問者

お礼

再度の回答本当のありがとうございます。 大変ありがたいです。 早速試してみたのですが、指定期間によって、1日足りなかったり2日足りなかったりする結果になってしまいます。 土日を抜いた数の指定方法が若干おかしいのかな・・・と思いまして検討中です。 たびたびで大変恐縮ですが、おわかりでしたらお教えいただけますでしょうか?宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

いわゆるデバッグは実物を見ないと難しいですね その結果がおかしくなるサンプルをアップできますか? (期間テーブルと、休日テーブル、クエリのSQL) ご自分で検証するならアップしたSQLから作ったクエリをデザインビューで表示し 普通の抽出クエリに変えて抽出条件フィールドに表示チェックを入れれば 取り出されている日付や曜日が確認できます それで土日と休日以外がきちんと抽出されているか確認してください

sistan
質問者

お礼

度重なる丁寧な回答、ありがとうございます。 数字テーブル内の数字フィールドのデータを1から入力しておりました! 0からに変更して解決いたしました! 本当にありがとうございます。 つたない文章と足りない技術力にも関わらず丁寧に導いていただけまして、解決することができました。 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

もうひとつ数字だけのテーブルを用意します 数字 ----- 0 1 ・ ・ 100 <- 期間の最大値+余裕まで Aテーブルと数字テーブルから下のようなクエリを作ります このクエリはデザインビューで表示化可能ですから テーブル名をそちらのものに合わせて SQLビューにコピペしてからデザインビューで表示してください SELECT Aテーブル.ID, Count(*) AS カウント FROM 数字, Aテーブル WHERE (((DateAdd("d",[数字],[開始日])) Not In (select 祝日 from Bテーブル)) AND ((DatePart("w",DateAdd("d",[数字],[開始日])))<>1 And (DatePart("w",DateAdd("d",[数字],[開始日])))<>7)) GROUP BY Aテーブル.ID;

sistan
質問者

お礼

早速のご回答本当にありがとうございます。 [開始日]フィールドの日付から[終了日]フィールドまでの日付の期間のなかで土日の数と祝日テーブル内の期間内の日付の数をひきたいのですが、[終了日]フィールドの使い方がいまいちわからない状態です。 大変恐縮ですが、再度お教えいただけますでしょうか? どうぞ宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access97で稼働日計算するには?

    Access97で稼働日計算するにはどのようにすれば良いのでしょうか? 年間稼働日(土日祝日除く)のテーブルは作ったのですが、 今日から5労働日目とか10労働日目の日付を取得するには どうしたらいいのか教えてください。

  • Accessでの稼働日数計算の方法

    Accessクエリー上の開始日と終了日までの稼働日数(土日祭日を除く)と開始日から指定した稼動日数だけ経過した日付を求めたい(Excelのnetworkday関数やWorkday 関数と同じ様な事がしたい)のですが。。。何かいい方法はありませんでしょうか? 宜しくお願いします。

  • Accessを使って日付を比較したい

    MSofficeのAccessを使用して日付を比較したいのですが上手くいきません。 テーブル1のフィールドには実施日(日付型)、A期間開始日(日付型)、A期間終了日(日付型)があり データ1は2012/04/20、2012/04/15、2012/05/02 データ2は2012/04/25、2012/04/10、2012/04,23と格納されています。 この実施日がA期間に入るかどうかのチェックを行いたいのです。 クエリに入力した関数は IIf(CDate([テーブル1]![A期間開始日])<=CDate([テーブル1]![実施日])>=CDate([テーブル1]![A期間終了日]),"A期間","範囲外") と命令を書きました。 実行させるとデータ1、データ2とも期間外が返されました。 実際、返して欲しいデータはデータ1はA期間、データ2は期間外と表示したいのです。 環境はWindows XP profissional、アクセスは2002 SP3です。 よろしくお願いします。

  • 文字を日付タイプにして経過日数を取得したい。

    Aテーブルのテキストタイプで入っている日付を日付形式の項目に変換したいのですが、クエリーの関数でできますか。 最終目的はDATEDIFF で 経過日数を求めたいです。 例) 現在は開始日、終了日のデータがテキストタイプです。 したがって日付タイプの項目(開始日B 終了日B)を作成してそこに データを移そうと思うのですが違うタイプに落とせるでしょうか。 開始日  終了日  経過 20070901 20070930 開始日  終了日  開始日B  終了日B     経過 20070901 20070930   20070901 20070930 宜しくお願いいたします。

  • Access 特定日のカウント

    こんにちは。 Access2002を使っています。 考え方がわからないので教えてください。 テーブルAには連続したユニークな「日付」列があります。 テーブルBには各会員の「開始日」列と「終了日」列があります。 知りたいことは、「日付」に対して、「開始日」と「終了日」の間に 何日分の有効レコードがあるかです。 [日付]の列にbetween [開始日] and [終了日]としてカウントを取れば 簡単に出そうなのですが、別々のテーブルです。 例えば「日付」には1/4からの連続した日付、 「開始日」-「終了日」には、 12/20-1/5 1/1-1/15 とあるとします。 導き出したい答えは 「日付」 1/4:有効2レコード 1/5:有効2レコード 1/6:有効1レコード 旨く説明できなくて済みません。 期間中の有効日付の数をどのように数えたらいいのか教えてください。 よろしくお願いします。 haru

  • Accessテーブルのデータ型を変更したい

    Access95 Version7を使っています。 DateDiff関数を使って日数を出したいのですが、 テーブルにあるデータは”テキスト型”になっています。 これを”日付/時刻型”に変換するには、どうすれば良いのでしょうか? データ例:20010520 というように、8桁で入っています。 宜しくお願いします・・・。

  • ACCESS テーブル内の特定の文字の置換

    お世話になっております。 Access2007+VBAについてになります。 フィールド内の特定の文字を置き換えたいのですが、どのようしたら良いでしょうか。 例えば・・・ テーブル_Aと、テーブルBがあります。 テーブルAには、フィールドCに抽出したいデータのIDが入っています。 テーブルBには、フィールドDに置換えたい日付が入っています。 フィールドDの日付は、『日付は2015-12-22です。』となっており、 フィールドCのIDと、テーブルBにあるフィールドEというIDがマッチしたフィールドDの日付を、『日付は、2015-12-23です。』に置き換えたいと思っています。 IDは、両方ともに、オートナンバー型ではありません。 色々試してみたのですが、全く分かりません。 是非、ご教授をお願い致します。

  • 計算式とリレーションによるcountについて

    ファイルメーカーに詳しい方教えて下さい。 【環境】 win7 FM11 PRO ADV 【質問】 「集計用テーブル」 フィールド内容 (1)フィールドA(2)集計開始(グローバル・日付)(3)集計終了(グローバル・日付)(4)済フラグ(テキスト) (5)済集計用(計算) データ内容 (1)フィールドA(データ1)(2)特定期間開始日(3)特定期間終了日(4)済 (1)フィールドA(データ2)(2)特定期間開始日(3)特定期間終了日(4)済 (1)フィールドA(データ3)(2)特定期間開始日(3)特定期間終了日(4)済 「日付別フィールド」 フィールド内容 (1)日付(日付)(2)フィールドA(3)完了フラグ(テキスト) データ内容 (1)日付(2)フィールドA(データ1)(3)済 ・ ・ ・ 上記にて、特定の日付間(グローバルフィールド)によるフィールドA(データ1・データ2・データ3とありますがデータ1~3全体に関する集計)に関する「済」のcountを行なっており、リレーションにて下記のように設定しております。 日付>=集計開始 日付<=集計終了 完了フラグ=済フラグ この状態で、集計用テーブルの(5)済集計用(計算)=count(日付別フィールド::完了フラグ)を実行するときちんと、countしてくれるのですが、現在この完了フラグを手入力にて「済」と入力しています。この完了フラグを計算式(if(〇〇フィールド="XX";"済";"")と〇〇フィールドの条件により【済】or「空白」が入るような設定に変えた途端「集計用テーブル」(5)済集計用(計算)フィールドのデータが「?」と表示されるようになりました。特にリレーション等はいじった形跡もなくデータもきっちり「済」と入力されているのですが(ifによる計算結果により)、何が問題なのでしょうか? 初めての投稿になり、説明不足の点があるかとは思いますが、よろしくお願いします。 以下のようなテーブル・フィールド間にて

  • Access2010 テーブルのフィールドについて

    Access2010を使用しています。 テーブルのフィールド定義 [A][B][C][D][E][F][G] ↓ テーブルを開くと [A][B][C][E][F][G][D] と勝手に変わる (あるフィールドだけ、別の場所に移動) ↓ フィールドの並び順を [A][B][C][D][E][F][G] に戻す ↓ 保存してテーブルを閉じる ↓ 再度開くと [A][B][C][E][F][G][D] と変わってしまう。 この繰り返しです。 どなたか、お助け下さい。 よろしくお願いいたします。

  • ACCESS2003 追加クエリの条件設定について

    ACCESS2003 追加クエリの条件設定について 条件設定用のフォーム"A"があり、 その"A"で指定された条件を元にテーブル"B"から値を抽出し、 テーブル"C"に書き込む追加クエリを作成しています。 フォーム"A"には ・「対象日」フィールド ・「月で出力」チェックボックス テーブル"B"には ・「試験開始日」 ・「試験終了日」 ・他多数項目フィールド 追加クエリではフォーム"A"の情報を元に、テーブル"B"から 「試験開始日」:<=[Forms]![F_A]![試験開始日] 「試験終了日」:>=[Forms]![F_A]![試験開始日] と、月をまたがって実施される試験が殆どのため、「対象日」に入力された日付を 網羅するデータを取り出しています。 新たに作りたいのは、フォーム"A"の「月で出力」チェックボックスにチェックがついた 時に、フォーム"A"の「対象日」フィールドから月を取り出し、テーブル"B"の「試験開始日」 「試験終了日」それぞれで月を比較し、同じ月のデータを抽出したいのですが 追加クエリの抽出条件に下記の通り記述した所、データをヒットさせる事が出来ません。 試験開始日フィールドの抽出条件 IIf([Forms]![F_A]![月で出力]=True,Year([試験開始日])=Year([Forms][F_A]![対象日]) And Month([試験開始日])=Month([Forms]![F_A]![対象日]),[試験開始日]<=[Forms]![F_A]![対象日]) 試験終了日フィールドの抽出条件 IIf([Forms]![F_A]![月で出力]=True,Year([試験終了日])=Year([Forms][F_A]![対象日]) And Month([試験終了日])=Month([Forms]![F_A]![対象日]),[試験終了日]>=[Forms]![F_A]![対象日]) どこが問題なのでしょうか… どなたかご教授お願い致します。

このQ&Aのポイント
  • 購入して間もないブラザーのMFC-L2750DWについて、ドラムの傷が発生しました。メーカー保証で無償交換してもらえるのでしょうか?
  • 2020年11月に購入したブラザーのMFC-L2750DWについて、ドラムに傷がついてしまいました。メーカー保証の対象となるのであれば、無償で交換してもらえるのか知りたいです。
  • MFC-L2750DWを2020年11月に購入しましたが、使用しているうちにドラムに傷ができました。ブラザーのメーカー保証は適用されるのでしょうか?ドラムの無償交換について教えてください。
回答を見る

専門家に質問してみよう