Access Tips

MicrosoftAccessを活用するためのテクニックを紹介しています

Database Template #003A Estimate見積管理

 

1.データベース概要

About this Template このテンプレートについて

見積書を作成し管理するためのシンプルなデータベーステンプレートです。

 

Description 機能詳細

サブフォームに詳細データを表示

・ファンクションキーへのマクロ割り当て

・印刷プレビュー時に表示するデータがない場合にメッセージを表示

 

Screenshot スクリーンショット

一覧画面(List)・・・レコードを一覧で表示します。

f:id:BeansWorks:20170518220648p:plain

 

入力画面(Edit)・・・レコードの新規作成・修正・削除等を行います。

f:id:BeansWorks:20170518220714p:plain

 

印刷画面(Print) ・・・印刷プレビューと帳票印刷をする画面です。

f:id:BeansWorks:20170518220731p:plain

 

Download ダウンロード

本書で作成するテンプレートを下記リンク先からダウンロードすることができます。データベースの動作を事前に確認しておくことで開発をスムーズに進めることができるでしょう。

www.dropbox.com

2.新規データベースの作成

Accessでは始めにファイルを新規作成し名前をつけて任意の場所に保存する必要があります。

2-1.Accessを起動し[新規作成]画面でファイルを任意の場所に作成します。

f:id:BeansWorks:20170518230132p:plain

 

2-2.データベースが起動しテーブルが表示されます。

f:id:BeansWorks:20170518230151p:plain

 

3.テーブルの作成

レコードを保存するテーブルを作成しましょう。

3-1.「テーブル1」の上で右クリックしデザインビューを選択します。f:id:BeansWorks:20170518230615p:plain

 

3-2.[名前を付けて保存]ウインドウが表示されたら「TBL_Estimate_H」と入力し[OK]をクリックして保存します。

f:id:BeansWorks:20170518230651p:plain

 

3-3.テーブルのデザインビューで「フィールド名」と「データ型」を設定しましょう。 

f:id:BeansWorks:20170518230759p:plain

 

「TBL_Estimate_H」テーブルデザイン

f:id:BeansWorks:20170524231307p:plain

 

3-4.同様に「TBL_Estimate_L」と「TBL_Company_Info」を下記項目で作成します。

 「TBL_Estimate_L」テーブルデザイン

f:id:BeansWorks:20170524231402p:plain

 

「TBL_Company_Info」テーブルデザイン

f:id:BeansWorks:20170524231442p:plain

 

4.リレーションシップの作成

リレーションシップを作成すると2つ以上のテーブルを関連付けることができます。

4-1.[データベースツール]-[リレーションシップ]をクリックします。

f:id:BeansWorks:20170615001704p:plain

 

4-2.「リレーションシップ」ウインドウが開いたら[デザイン]-[テーブルの表示]をクリック。

f:id:BeansWorks:20170615001734p:plain

 

4-3.[テーブルの表示]ウインドウが開いたら「TBL_Estimate_H」と「TBL_Estimate_L」を追加しウインドウを閉じます。

f:id:BeansWorks:20170615001753p:plain

 

4-4.[リレーションシップの編集]-[新規作成]で下記の様に設定し[OK]をクリックします。

f:id:BeansWorks:20170615001812p:plain

 

4-5.次にリレーションシップを確認し[作成]をクリックします。

f:id:BeansWorks:20170615001831p:plain

 

4-6.リレーションシップを確認し保存しましょう。

f:id:BeansWorks:20170615001902p:plain

 

5.フォームの作成(Edit)

レコードの登録や削除、修正するためのフォームをつくりましょう。

 

5-1.[作成]-[フォームデザイン]で空白のフォームを表示します。

f:id:BeansWorks:20170615001941p:plain

 

5-2.フォーム上で右クリックするとメニュが表示されるので[フォームヘッダー/フッター]をクリックします。

f:id:BeansWorks:20170615002001p:plain

 

5-3.プロパティシートの[フォーム]-[書式]-[幅]を25㎝に設定します。

 

5-4.ヘッダーとフッターの高さは1.5㎝、詳細の高さは10㎝にそれぞれ設定し保存する。

 

5-5.[名前を付けて保存]ダイアログでフォーム名を入力し[OK]をクリック。

f:id:BeansWorks:20170615002018p:plain 

 

6.フォームのプロパティ設定

フォームデザインツールで[デザイン]‐[プロパティシート]を表示します。

6-1.フォームのプロパティシートを下記の通り設定します。

f:id:BeansWorks:20170615002622j:plain

7.フィールドの追加

フォームにフィールドを追加して画面をデザインしましょう。

7-1.デザインビューで「FRM_Edit」を開き、[デザイン]-[既存フィールドの追加]をクリックします。

f:id:BeansWorks:20170615002734p:plain

7-2.フィールドリストよりドラッグ・アンド・ドロップでフィールドを配置しましょう。

f:id:BeansWorks:20170615002820p:plain

 

7-3.それぞれのフィールドにラベルを追加していきます。

f:id:BeansWorks:20170615002840p:plain

 

8.タブオーダーの設定

タブオーダーを設定するとレコード入力の順番を指定することができます。

8-1.入力する順番を設定します。まずは[デザイン]-[タブオーダー]をクリック。

f:id:BeansWorks:20170615002909p:plain

 

8-2.次にタブオーダーを入れ替えて修正しましょう。

f:id:BeansWorks:20170615002936p:plain

 

9.サブフォームの作成

サブフォームを配置してフォーム上に2つのテーブル情報を表示することができます。

9-1.[デザイン]-[サブフォーム/サブレポート]をクリックしフォームに配置します。

f:id:BeansWorks:20170615003005p:plain

 

9-2.[サブフォームウィザード]が表示されたら[次へ]をクリック。

f:id:BeansWorks:20170615003042p:plain

 

9-3.テーブル:TBL_Estimate_Lの全てのフィールドを選択し[次へ]をクリック。

f:id:BeansWorks:20170615003059p:plain

 

9-4.リンクを確認し[次へ]をクリック。

f:id:BeansWorks:20170615003125p:plain

 

9-5.サブレポートの名前を「SUB_Edit」に変更して[完了]をクリックします。

f:id:BeansWorks:20170615003151p:plain

 

9-6.サブフォームが配置されたらラベルを削除しプロパティで[書式]-[境界線スタイル]を「無色」に変更しましょう。

f:id:BeansWorks:20170615003212p:plain

 

9-7.フォームヘッダーのプロパティーシートで[書式]-[背景色]を白に変更しておきます。

 

10.サブフォームのレイアウト調整

10-1.[SUB_Edit]をデザインモードで開き、幅を13㎝、フォームヘッダーの高さを0.5㎝、詳細の高さを0.6㎝に設定し、ラベルとフィールドのレイアウトを調整します。

 

10-2. [デザイン]-[テキストボックス]でテキストボックスを追加し、プロパティシートの[データ]-[コントロールソース]に下記の式を入力。

「amount」 =[Unit_Price]*[Qty]

 

同様に下記テキストボックスを作成します。

「subtotal」 =Sum([Unit_Price]*[Qty])

f:id:BeansWorks:20170615003246p:plain

10-3.フォームフッターのプロパティで[書式]-[可視]を「いいえ」にしておく。

 

11.サブフォームのプロパティ設定

11-1.プロパティシートを下記の通り設定します。

f:id:BeansWorks:20170615004358j:plain

 

12.計算フィールドの追加

フォームにサブフォームと連動した計算フィールドを追加します。

 

12-1. [FRM_Edit]をデザインモードで開き、サブフォームの下部に[memo]フィールドと[Tax_Rate]フィールドを追加します。

f:id:BeansWorks:20170621204858p:plain

12-2. [デザイン]-[テキストボックス]でテキストボックスを追加し、プロパティシートの[データ]-[コントロールソース]に下記の式を入力します。

「subtotal」 =[SUB_Edit].[Form]![subtotal]

 

同様に下記テキストボックスを作成しましょう。

「tax」 =[subtotal]*[Tax_Rate]

「total」 =[subtotal]+[tax]

 

13.フォームの作成(List)

一覧(リスト)表示用のフォームを作成しましょう。

13-1.[作成]-[フォームウィザード]をクリック。

f:id:BeansWorks:20170621204955p:plain

 

13-2.「テーブル:TBL_Estimate_H」のフィールドをすべて選択し、[次へ]をクリックします。

f:id:BeansWorks:20170621205024p:plain

 

13-3.フォームのレイアウトは[表形式]を選択し、[次へ]をクリック。

f:id:BeansWorks:20170621205048p:plain

 

13-4.フォーム名を「FRM_List」に変更し、「フォームのデザインを編集する」オプションを選び[完了]をクリックします。

f:id:BeansWorks:20170621205114p:plain

 

13-5.デザインビューでラベルを修正し、レイアウトを調整しましょう。

f:id:BeansWorks:20170621205215p:plain

 

14.表形式フォームで選択したデータを帳票形式で表示する

VBA(Visual Basic for Application)を使うとさらに細かな設定が可能になります。

 

14-1.FRM_Listをデザインビューで開き詳細パートを選択。

 

14-2.次にプロパティシートの[イベント]-[クリック時]の項目で右端のビルドボタンをクリックします。

f:id:BeansWorks:20170621205316p:plain

 

14-3.[ビルダーの選択]ウインドウで「コードビルダー」を選択して[OK]をクリック。

f:id:BeansWorks:20170621205350p:plain

14-4.VBAのウインドウが開いたらカーソルが点滅している場所に次のコードを入力し保存します。

---------------------------------------------------------------------

Private Sub 詳細_Click()

DoCmd.OpenForm "FRM_Edit", , , [Slip_No] = Me.[Slip_No]

End Sub

---------------------------------------------------------------------

f:id:BeansWorks:20170621205413p:plain

 

 

15.レポートの作成

レポート機能を使って印刷用の帳票を作ってみましょう。

15-1.[作成]-[レポート]-[レポートデザイン]をクリック。

f:id:BeansWorks:20170621205500p:plain

 

15-2.プロパティシートの[データ]-[レコードソース]のビルドボタンをクリック。

f:id:BeansWorks:20170621205536p:plain

 

15-3.「テーブルの表示」ウインドウですべてのテーブルを追加します。 

f:id:BeansWorks:20170621210623p:plain

 

15-4.画面上部のフィールドリストから、下部のデザイングリッドにすべてのフィールドをドラッグ・アンド・ドロップで追加しましょう。

f:id:BeansWorks:20170621211017p:plain

 

15-5.デザイン画面を閉じると下記メッセージが表示されるので[はい]をクリック。

f:id:BeansWorks:20170621211057p:plain

 

15-6.レポートデザイン画面に戻ったら[デザイン]-[グループ化と並び替え]をクリックします。

f:id:BeansWorks:20170621211127p:plain

 

15-7. 「グループの追加」で下記の内容で設定します。

f:id:BeansWorks:20170621211157p:plain

 

15-8.プロパティシートでレポートの幅を18cmに変更し、セクションの高さを以下の通り設定しておく。

  ページヘッダー   ・・・ [書式]-[高さ]→7cm

     詳細       ・・・ [書式]-[高さ]→1cm

  Slip_Noフッター   ・・・ [書式]-[高さ]→2.5cm

  ページフッター  ・・・ [書式]-[高さ]→2.5cm 

 

15-9. [デザイン]-[既存のフィールドの追加]から必要なフィールドを配置します。

 

15-10. [デザイン]-[テキストボックス]でテキストボックスを追加し、プロパティシートの[データ]-[コントロールソース]に下記の式を入力します。

「txt_見積No」 = "見積No." & [Slip_No]

 

同様に下記テキストボックスを作成し、必要なラベルを配置します。

「txt_宛先」 = [customer] & " " & [Station] & " 御中"

「txt_客先担当」="(ご担当者:" & [TBL_Estimate_H.Name_First] & "様" & ")"

「txt_件名」="件名:" & [Title]

「amount」=[Unit_Price]*[Qty]

「subtota」=Sum([Unit_Price]*[Qty])

「tax」=[Unit_Price]*[Qty]*[Tax_Rate]

「total」=([Unit_Price]*[Qty])+([Unit_Price]*[Qty]*[Tax_Rate])

 

15-11. 「Slip_Noフッター」プロパティシートで[書式]-[代替の背景色]を白に変更し、[改ページ]を「カレントセクションの後」に設定。

 

15-12.「RPT_EstimateSheet」と名前を付けて保存します。

 

16. レポートで表示するレコードが無いときにメッセージを出す

16-1. 「RPT_EstimateSheet」をデザインビューで開きプロパティシートの[イベント]-[空データ時]の詳細設定ボタンをクリック。

f:id:BeansWorks:20170621211324p:plain

 

16-2.「ビルダーの選択」ウインドウで「コードビルダー」を選択し[OK]をクリック。

f:id:BeansWorks:20170621211345p:plain

 

16-3.「Microsoft Visual Basic for Applications」のウインドウで次のコードを入力して保存します。

-------------------------------------------------------------------------------

MsgBox "対象レコードはありません", vbExclamation, "Contact List 印刷"

Cancel=True

----------------------------------------------------------------------------

f:id:BeansWorks:20170621211417p:plain

 

16-4.レコードが未入力の時にプレビューするとメッセージが表示されます。

f:id:BeansWorks:20170621211443p:plain

 

17.マクロの作成

マクロを使って定型処理を自動化しましょう。

 

17-1. [作成]-[マクロ]をクリック。

f:id:BeansWorks:20170621211529p:plain

 

17-2.プルダウンメニューから「サブマクロ」を選択します。

f:id:BeansWorks:20170621211550p:plain

 

17-3.サブマクロ名を{F1}とし、新しいアクションの追加で「メニューコマンドの実行」コマンドを「すべて閉じる」を選択したら、更に「フォームを開く」アクションを追加しフォーム名を「FRM_List」とします。

f:id:BeansWorks:20170621211623p:plain

 

 

17-4.同様にサブマクロ名を{F2}をフォーム名を「FRM_Edit」として作成します。

f:id:BeansWorks:20170621211644p:plain

 

17-5.マクロ名を「autokeys」にして保存します。

 

18.ボタンの作成

ボタンを配置して使いやすくしましょう。

18-1.FRM_Listをデザインビューで開き、[デザイン]-[ボタン]をクリックし、フォームヘッダーにボタンを配置します。

f:id:BeansWorks:20170621211720p:plain

 

18-2.「コマンドボタンウィザード」ウインドウで、種類「その他」、ボタンの操作「マクロの実行」を選択し[次へ]をクリック。

f:id:BeansWorks:20170621211759p:plain

 

18-3.リストの中から「AutoKeys{F1}」を選択し[次へ]をクリック。

f:id:BeansWorks:20170621211821p:plain

 

18-4.[文字列]を「List」と入力し[次へ]をクリック。

f:id:BeansWorks:20170621211842p:plain

  

18-5.ボタン名を「BTN_List」と入力して[完了]をクリックするとボタンが完成します。

f:id:BeansWorks:20170621211924p:plain

 

18-7.同様に「BTN_Edit」を作成し背景色を白にしておきましょう。

f:id:BeansWorks:20170621211947p:plain

 

18-8.「FRM_Edit」をデザインビューで開き、上記で作成した2つのボタンをコピーして貼り付けます。

 

18-9.コマンドボタンウィザードを活用して「FRM_Edit」に、①「レコードの操作-レコードの削除」ボタン(BTN_Dell)と、②RPT_Listの「レポートの操作-レポートプレビュー」ボタン(BTN_EstSheet)を追加します。

 

19.ボタンの編集

コマンドボタンウィザードで作成したボタンを編集します。

19-1.FRM_Editをデザインビューで開き17-9で作成した[BTN_Dell]ボタンのプロパティ[イベント]-[クリック時]-[埋め込みマクロ]を選択し[埋め込みマクロ]を削除し空欄にする。 

f:id:BeansWorks:20170621212352p:plain

 

19-2.[イベント]-[クリック時]のビルドボタンをクリックし「ビルダーの選択」ウインドウが開いたら[コードビルダー]を選択し[OK]をクリック。

f:id:BeansWorks:20170621212427p:plain

 

19-3.VBAウインドウでカーソルが点滅している場所に次のコードを入力し保存。

---------------------------------------------------------------------

Private Sub btn_Dell_Click()

On Error GoTo btn_del_Click_Err

If MsgBox("このデータを削除しますか?", vbYesNo) = vbYes Then

  DoCmd.RunCommand acCmdDeleteRecord

End If

Me.Slip_No.SetFocus

Me.Recalc

 

btn_del_Click_Exit:

Exit Sub

btn_del_Click_Err:

    MsgBox Error$

    Resume btn_del_Click_Exit

End Sub

---------------------------------------------------------------------

 

19-4.同様に[btn_EstSheet]ボタンでクリック時のコードを入力し保存します。

---------------------------------------------------------------------

Private Sub btn_EstSheet_Click()

On Error GoTo btn_EstSheet_Click_Err

DoCmd.OpenReport "RPT_EstimateSheet", acViewPreview, , "Slip_No = " & Me!Slip_No

 

btn_EstSheet_Click_Exit:

Exit Sub

btn_EstSheet_Click_Err:

    Resume btn_EstSheet_Click_Exit

End Sub

---------------------------------------------------------------------

 

20.オプションの設定

アプリケーションの動作を変更することができます。

20-1. [ファイル]-[オプション]で「Accessのオプション」ウインドウを開き、[カレントデータベース]を選択したら、[アプリケーションオプション]-[フォームの表示]で「FRM_List」を選択します。

 

20-2.次に[アプリケーションオプション]-[ドキュメントウインドウオプション]-[ドキュメントタブを表示する]と、[アプリケーションオプション]-[ナビゲーション]-[ナビゲーションウインドウを表示する]のチェックを外す。

f:id:BeansWorks:20170621212459p:plain

 

 20-3. 「Accessのオプション」ウインドウで、[クライアントの設定]を選択し、[編集]-[確認]項目の[レコードの変更]、[オブジェクトの削除]、[レコードの変更]のチェックを必要に応じて外し[OK]をクリック。

f:id:BeansWorks:20170621212532p:plain

 

20-4.下記メッセージが出るので一度ファイルを閉じて再度開くと設定が有効になります。

f:id:BeansWorks:20170621212553p:plain

 

 

 

 

 

 

 

 

© 2015 BeansWorks All rights reserved