Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


取引先に応じた請求月を自動入力する : Access裏技Tips



取引先によっては、締め日が変わり請求月が異なるケースがあります。 ここでは、取引先ごとの締め日にあわせて請求月を自動入力する技を紹介します。

請求月を自動入力する

  1. 取り引きテーブル(tbl_sample)を作成します。
  2. ここには、取り引き状況として、ID(オートナンバー型)、納品日(日付/時刻型)、請求月(テキスト型)、取引先(テキスト型)、請求額(通貨型)フィールドを作成します。
  3. 取引先ごとの締め日テーブル(tbl_締め日)を作成します。
  4. ここには、取引先名(テキスト型)、締め日(数値型)フィールドを作成します。
  5. 次に、取り引きテーブルをもとに単票式の取り引き状況入力フォームを作成します。
  6. このフォームには、取引先名入力と連動して取引先ごとの締め日にあわせて請求月を表示、テーブルフィールドへの格納を行います。
  7. txt納品日テキストボックスの更新後処理イベントを利用して、FunctionプロシージャShimebiで請求月を求めています。

Functionプロシージャ OptionCompactSet の作成

Functionプロシージャ OptionCompactSet を作成します。

Function Shimebi(var年月日, var締め切り) As Variant

    Dim datDate As Date
    Dim datDate2 As Date
    
    datDate = DateSerial(Year(var年月日), Month(var年月日), 1) ' --- A
    datDate2 = DateSerial(Year(var年月日), Month(var年月日) + 1, 1) ' --- B
    
    If IsDate(var年月日) Then ' --- C
        Select Case Day(var年月日) ' --- D
            Case 1 To var締め切り ' --- E
                Shimebi = Format(datDate, "yyyy年mm月")
            Case Else ' --- F
                Shimebi = Format(datDate2, "yyyy年mm月")
        End Select
    End If
  
End Function
解説
  1. DateSerial関数を用いて基準月の月初を求め、変数datDateに代入します。
  2. DateSerial関数を用いて基準月翌月の月初を求め、変数datDateに代入します。
  3. IsDate関数を用いて日付形式である場合、以下の処理に進みます。
  4. Day関数を用いて引数であるvar年月日の日を取り出します。
  5. var年月日の日が1日から引数var締め切りまでの日であれば、Shimebiに変数datDateの年月を代入します。
  6. var年月日の日がそれら以外であれば、Shimebiに変数datDate2の年月を代入します。
今回のおすすめポイント

締め日の考え方

月初から締切日までは当月請求となり、以降は翌月請求となります。

取り引きテーブルの作成

取り引き テーブルを作成します。

  1. 取り引きテーブルを作成します。
  2. ID(オートナンバー型)、納品日(日付/時刻型)、請求月(テキスト型)、取引先(テキスト型)、請求額(通貨型)フィールドを作成します。

締め日テーブルの作成

締め日テーブルを作成します。

  1. 取引先名(テキスト型)、締め日(数値型)フィールドを作成します。

取り引き状況入力フォームの作成

取り引き状況入力フォームを作成します。

  1. 取り引きテーブルをもとに取り引き状況入力フォームを作成します。
  2. 取引先ごとの締め日を表示するテキストボックスを作成します。
  3. 取引先テキストボックスをコンボボックス(Comb取引先)に変更します。
  4. 値集合ソースには、tbl_締め日テーブルを配置します。

  1. txt締め日テキストボックスのコントロールソースに取引先の締め日を求める式を代入します。
  2. 式は、=DLookUp("[締め日]","tbl_締め日","[取引先]=[Comb取引先]") & "日締め" です。

Comb取引先コンボボックスの更新後処理イベントプロシージャの作成

Comb取引先コンボボックスの更新後処理イベントプロシージャを作成します。

Private Sub Comb取引先_AfterUpdate()

    Dim varDlookUp As Variant
    varDlookUp = DLookup("[締め日]", "tbl_締め日", "[取引先]='" & _
						Me.Comb取引先 & "'") ' --- A
    
    If Not IsNull(varDlookUp) Then ' --- B
        Me.txt請求月 = Shimebi(Me.txt納品日, varDlookUp) ' --- C
    End If
    
  DoCmd.Requery "txt締め日"

End Sub
解説
  1. DLookup関数を用いて、取引先の締め日を変数varDlookUpに代入します。
  2. 変数varDlookUpがNull値でなければ、以下の処理に進みます。
  3. FunctionプロシージャShimebiを用いて、txt請求月テキストボックスに値を代入します。

動作確認

  1. デザインビューからフォームビューに切り替え、データ入力を行います。
  2. 取引先をコンボボックスから選択します。

  1. 請求月と締め日が表示されているのを確認します。

関連ページ

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

 


取引先に応じた請求月を自動入力する : Access裏技Tips


 

-Microsoft Access Club-

注目のモンスター専用サーバーからお買い得プランまで幅広くそろえています。cPanel、PLESK、WEBMINまでお任せ下さい。
注目のモンスター専用サーバーからお買い得プランまで幅広い。
cPanel、PLESK、WEBMINまでお任せ下さい。