Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル締め日のクエリ作成について
記事No172341
投稿日: 2018/07/19(Thu) 00:51
投稿者aaa
解決済: ON
OS:Windows10
Access Version:2016

お世話になります。

得意先に締め日が、20日、月末前日、月末のところがあり、
今回教えて頂きたいのが、月末前日についてです。

クエリで作成しており、仮に得意先A社が月末前日が締日とします。

受注日 金額
2018.6.19 1,000→1
2018.6.30 1,000→2
があり、締日は1が2018.6.29、同じく2も2018.6.29となってしまいます。
月末前日締めになりますので、2は、2018.7.30を締日として表示させるには、どのようにすればよろしいでしょうか?

締日は、得意先テーブルに締日フィールドを設けており、
20日締日→20、月末前日締→-1、月末締→0としています。

クエリには、式ビルドで、

請求締め: IIf(Day([受注日])<=[T-得意先テーブル]![締め日],DateSerial(Year([受注日]),Month([受注日]),[T-得意先テーブル]![締め日]),DateSerial(Year([受注日]),Month([受注日])+1,[T-得意先テーブル]![締め日]))

となっています。

初心者のため、説明も大変分かりづらい内容だと存じますが、
何卒、お知恵をお貸しくださいますようお願い申し上げます。

タイトルRe: 締め日のクエリ作成について
記事No172342
投稿日: 2018/07/19(Thu) 10:28
投稿者ナバ
解決済: ON
おはようございます。

> 請求締め: IIf(Day([受注日])<=[T-得意先テーブル]![締め日],DateSerial(Year([受注日]),Month([受注日]),[T-得意先テーブル]![締め日]),DateSerial(Year([受注日]),Month([受注日])+1,[T-得意先テーブル]![締め日]))
> 
> となっています。

正解を探す前に、現在の式がどうなっているか見てみましょうか。

IIf(Day([受注日])<=[T-得意先テーブル]![締め日],
  DateSerial(Year([受注日]),Month([受注日]),[T-得意先テーブル]![締め日]),  ----- @
  DateSerial(Year([受注日]),Month([受注日])+1,[T-得意先テーブル]![締め日]) ----- A
)

@は
 {締め日]=20で受注日が1日〜20日

Aは、
1){締め日]=20で受注日が21日〜
 2018,(6+1),20 = 2018/7/20
2){締め日]=0
 2018,(6+1),0 = 2018/7/0 だが 0日は前月末日として計算されるので 2018/6/30
3){締め日]=-1
 2018,(6+1),-1 = 2018/7/-1 だが -1日は前月末日の前日として計算されるので 受注日に関わらず2018/6/29
となっています。

ここまでは理解できましたか?

タイトルRe^2: 締め日のクエリ作成について
記事No172343
投稿日: 2018/07/19(Thu) 21:14
投稿者aaa
解決済: ON
こんばんは。
本日も1日お疲れ様でございます。

ナバ様、早速のお返事有り難うございます。

ご説明下さった内容についてでございますが、ひとまずの理解は出来たかと思います。

ご丁寧な説明有り難うございます。
引き続き、問題点を改善するためにご教授願えますでしょうか?
宜しくお願い申し上げます。

タイトルRe^3: 締め日のクエリ作成について
記事No172344
投稿日: 2018/07/20(Fri) 09:42
投稿者ナバ
解決済: ON
aaaさんはこのあとどうしたらいいと考えますか?

@とAの1)2)はうまくいっているようです。
Aの3)だけ変えなければいけないので1)2)と3)でまず分岐を作ります。

IIf(Day([受注日])<=[T-得意先テーブル]![締め日],
  DateSerial(Year([受注日]),Month([受注日]),[T-得意先テーブル]![締め日]),  ----@
  IIf([T-得意先テーブル]![締め日]=-1,
    ???,   ----B
    DateSerial(Year([受注日]),Month([受注日])+1,[T-得意先テーブル]![締め日])  ----A
  )
)
-------------------------------
さて、Bはどういう式にすればいいでしょうか。
まず日本語で考えてみてください。

タイトルRe^4: 締め日のクエリ作成について
記事No172345
投稿日: 2018/07/20(Fri) 17:56
投稿者aaa
解決済: ON
> 3){締め日]=-1
>  2018,(6+1),-1 = 2018/7/-1 だが -1日は前月末日の前日として計算されるので 受注日に関わらず2018/6/29
> となっています。
のご説明と、

>@とAの1)2)はうまくいっているようです。
>Aの3)だけ変えなければいけないので1)2)と3)でまず分岐を作ります
> IIf(Day([受注日])<=[T-得意先テーブル]![締め日],
> DateSerial(Year([受注日]),Month([受注日]),[T-得意先テーブル]![締め日]), ----@
> IIf([T-得意先テーブル]![締め日]=-1,
> ???, ----B
> DateSerial(Year([受注日]),Month([受注日])+1,[T-得意先テーブル]![締め日]) ----A
> )
> )
のご説明から考えますと、
締め日が-1の時、受注日が締め日より前であれば、当月の締め日、締め日より後であれば来月の締め日となる式を与えてやらなければならない。でしょうか?

的外れな回答でしたら、お恥ずかしい限りです。

タイトルRe^5: 締め日のクエリ作成について
記事No172347
投稿日: 2018/07/23(Mon) 09:51
投稿者ナバ
解決済: ON
> 締め日が-1の時、受注日が締め日より前であれば、当月の締め日、締め日より後であれば
> 来月の締め日となる式を与えてやらなければならない。でしょうか?
> 
> 的外れな回答でしたら、お恥ずかしい限りです。

いえ、それでいいと思いますよ。

日本語を式にしてきますね。

当月の締め日はこのように考えてみます。
DateSerial(Year([受注日])+1,Month([受注日])+1,-1
2018/6/× のとき、2018,7,-1 -> 2018,6,29 

締め日が-1の時、
  IIf([締め日]=-1,

受注日が締め日より前であれば、
    IIf([受注日]<=DateSerial(Year([受注日]),Month([受注日])+1,-1),

当月の締め日、
      DateSerial(Year([受注日]),Month([受注日])+1,-1),

締め日より後であれば来月の締め日
      DateSerial(Year([受注日]),Month([受注日])+2,-1)


全部まとめるとこうなります。

IIf(Day([受注日])<=[T-得意先テーブル]![締め日],
  DateSerial(Year([受注日]),Month([受注日]),[T-得意先テーブル]![締め日]),
  IIf([T-得意先テーブル]![締め日]=-1,
    IIf([受注日]<=DateSerial(Year([受注日]),Month([受注日])+1,-1),
      DateSerial(Year([受注日]),Month([受注日])+1,-1),
      DateSerial(Year([受注日]),Month([受注日])+2,-1),
    ),
    DateSerial(Year([受注日]),Month([受注日])+1,[T-得意先テーブル]![締め日])
  )
)

タイトルRe^6: 締め日のクエリ作成について
記事No172349
投稿日: 2018/07/23(Mon) 21:36
投稿者aaa
解決済: ON
本日も一日お疲れ様でございます。

ナバ様

求めていた内容の表示になりました。
本当に困っておりましたので、これで先へ進めそうです。

最後までご丁寧に解説して下さり、心より御礼申し上げます。
また質問等をする時があるかと存じますが、その時は再びお力添えの程、宜しくお願い申し上げます。
重ね重ねになりますが、誠に有難うございました。

タイトルRe: 締め日のクエリ作成について
記事No172348
投稿日: 2018/07/23(Mon) 13:23
投稿者mayu
解決済: ON
> 20日締日→20、月末前日締→-1、月末締→0としています。

請求締め: DateSerial( Year( 受注日 - 締め日 ), Month( 受注日 - 締め日 ) + 1, 締め日 )

でもご希望の結果になるでしょう。

タイトルRe^2: 締め日のクエリ作成について
記事No172350
投稿日: 2018/07/23(Mon) 21:42
投稿者aaa
解決済: ON
本日も一日お疲れ様でございます。

mayu様

そのようなシンプルな式でも表示させることができるのですね。
大変勉強になります。
初心者での作成で分からないことばかりでして、参考書とネットの情報を頼りに悪戦苦戦しております。

御解答誠に有難うございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る