こんにちは、なかぜんです。
「Accessで請求書を出せたら便利だけど、どう作ればいいの?」「エクセルで毎回手作業するのが大変…」そんなお悩み、ありませんか?
今回は、Accessを使ってシンプルな請求書発行機能を実装する方法をご紹介します。
フォームから簡単に請求書を選んで、ボタンひとつでレポート(印刷画面)に出力できる仕組みを作っていきます。
請求書発行機能の全体像
まずは全体の流れを確認しよう
- 顧客・商品・売上のデータを用意
- 請求対象の売上データを選択
- 請求書レポートに出力
- PDF印刷や保存も可能
テーブルの設計
以下のようなテーブルを用意します。
- T_顧客(顧客ID, 顧客名, 住所…)
- T_商品(商品ID, 商品名, 単価…)
- T_売上(売上ID, 顧客ID, 商品ID, 数量, 売上日…)
売上データをもとに、月ごと・顧客ごとの請求書を出力していく形です。
請求書フォームの作成
フォームに選択項目を用意
「F_請求書発行」というフォームを作成し、次のコントロールを配置します。
- コンボボックス:顧客選択(RowSourceにT_顧客)
- テキストボックス:請求対象年月(例:2025/04)
- ボタン:請求書印刷
VBAコードでレポートを開く
印刷ボタンに以下のVBAコードを設定します。
Private Sub cmd印刷_Click()
Dim 顧客ID As Long
Dim 請求年月 As String
顧客ID = Me.cbo顧客
請求年月 = Me.txt請求年月
DoCmd.OpenReport "R_請求書", acViewPreview, , _
"顧客ID=" & 顧客ID & " AND Format(売上日,'yyyy/mm')='" & 請求年月 & "'"
End Sub
解説:
「R_請求書」というレポートに対して、顧客IDと請求年月で絞り込みを行っています。
売上データの売上日を “yyyy/mm” 形式にして比較している点がポイントです。
レポート(請求書)の作成
「R_請求書」という名前でレポートを作成し、次のような項目を配置します。
- ヘッダー:請求書タイトル、請求日、請求先
- 詳細:商品名、数量、単価、小計
- フッター:合計金額、備考欄
売上データを基にしたクエリ(Q_請求書データ)を作って、それをレポートのレコードソースに設定すると便利です。
注意点・よくあるミス
- 日付の形式ミス(”2025/4″ではなく”2025/04″に)
- コンボボックスで値ではなく「表示名」を使ってしまう
- 売上データが月末で分かれている場合の集計漏れ
VBAではデータ型のミスマッチも起きやすいので、条件式ではシングルクォーテーションで囲むように注意しましょう。
応用ポイント(中級者向け)
PDF保存機能の追加
DoCmd.OutputTo acOutputReport, "R_請求書", acFormatPDF, _
"C:\請求書\" & Me.cbo顧客.Column(1) & "_" & Me.txt請求年月 & ".pdf"
これで請求書をPDFで保存でき、メール添付なども簡単に行えます。
請求済みフラグの管理
請求書発行後、T_売上の「請求済」フィールドを更新しておくと、重複請求防止にもつながります。
まとめ:自社業務に役立つ請求機能を自作しよう!
今回はAccessを使って、顧客ごとに月別の請求書を発行する機能を作成してみました。
特に学べたポイントは次の通りです。
- 売上データをもとにした集計方法
- フォームとレポートの連携
- VBAによる条件付きレポート出力
まずは簡単な構成から試して、徐々に機能を追加していくのがおすすめです。
以上、なかぜんでした。次の記事もお楽しみに!
楽天ブックス
¥2,178 (2025/05/02 11:25時点 | 楽天市場調べ)
