請求リストフォーム(帳票)があります。
その中に請求日テキストボックスがあり、請求日が決まれば入力します。
その時、締日を自動で表示したいです。
締日の求め方ですが、別に「会社情報テーブル」があり、そこにそれぞれ会社ごとに「1か月後末日」等の情報があります。
そこら辺の条件分岐はVBAで作成できると思うのですが、反映の仕方がわかりません。
クエリを使いたいと思いましたが、クエリで可能でしょうか?
通報 ...
請求リストフォーム(帳票)があります。
その中に請求日テキストボックスがあり、請求日が決まれば入力します。
その時、締日を自動で表示したいです。
締日の求め方ですが、別に「会社情報テーブル」があり、そこにそれぞれ会社ごとに「1か月後末日」等の情報があります。
そこら辺の条件分岐はVBAで作成できると思うのですが、反映の仕方がわかりません。
クエリを使いたいと思いましたが、クエリで可能でしょうか?
締日定義を「1か月後末日」とすると、条件分岐が面倒です。(できないことはないですが)
下記のようにすれば、簡単に締め日を式で計算できます。
「会社情報テーブル」に下記のフィールドを持たせます。
締日日 数値型
締日月後 数値型
例えば、締め日が「1か月後20日」なら、
締日日: 20
締日月後: 1
と入力します。
「1か月後末日」なら、
締日日: 0
締日月後: 1
とします。
末日の場合は、締日日を0とします。
請求リストフォームのレコードソースのテーブルからクエリを作成して、フィールド欄に下記の式を設定すれば締日か表示されます。
このクエリをフォームのレコードソースにして、締め日のテキストボックスのコントロールソースを「締日」とすれば請求日を入力すれば締日が表示されます。
なるほど…!イメージがわきました。
作ってみて、またわからなければ質問させていただきます。
ありがとうございました!
締日は普通、情報は日付のみでは?
支払条件には月の区切りとする日(締日)と、支払いに関する日付(担当者が入金処理をする日)の2つの日付の情報が含まれるものです(支払いの方法(現金、手形等)も記述されるものですが今回は省略)
例外としては
前払い(初回取引のためだったり)
請求後30日(「締日」を定めない。日本の企業ではまずない)
なんかもありますね
さておき、「1か月後末日」では何を計算したいのかわかりません。「締日」の月が変わるのは「請求日」と「締日」の関係からであって、「1か月」という情報は関係ありません。記述の仕方からすると「締日」に関する情報が不足のようにみえます
支払日を求めたいのであっても、上記のように「締日」の条件で月が変わるため情報不足です
いずれにせよhatenaさん指摘のようにデータベース上では計算しやすい数値としてフィールドに分けて保存するのが基本で、
締日日(末締めは0)
支払月間
支払日日(末日は0)
の3つのフィールドを持つといいでしょう
Trueの扱いについて
hatenaさんの式の
-([締日日]=0)
は面白いなぁと思います。hirotonの式では+IIf([支払日日]=0,1,0)
と記述しました。どちらも同じ結果になるのでどちらでもいいです。ただし、ACCESSならこんぴゅうたぁのはなし になるのですが、ACCESSで適当なフォームを作り、テキストボックスを配置してコントロールソースを
=Date()+True
とします。つぎに、Excelを立ち上げて適当なセルに=TODAY()+TRUE
としてみます。結果はご覧あれテクニックとしてどこまで許容するかという話になるんですが、真偽値をそのまま計算に使うのは上記のようにそれなりの知識が必要になるのでオススメしません
質問して以来、作成する時間が取れておらず、やっと時間がとれたので確認中です。
おっしゃるとおり、実際の条件は「30日締 2月後30日払」といったものでした。
最初に質問した時きちんとかけておらず申し訳ありません。
今からいただいた回答を確認して作ってみます。わからなければ質問させていただくかもしれません。
おかげさまでうまくいきました!ありがとうございました。