Access Template #003 Estimate見積管理
- 1.データベース概要
- 2.新規データベースの作成
- 3.テーブルの作成
- 4.リレーションシップの作成
- 5.フォームの作成(Edit)
- 6.フォームのプロパティ設定
- 7.フィールドの追加
- 8.タブオーダーの設定
- 9.サブフォームの作成
- 10.サブフォームのレイアウト調整
- 11.サブフォームのプロパティ設定
- 12.計算フィールドの追加
- 13.フォームの作成(List)
- 14.表形式フォームで選択したデータを帳票形式で表示する
- 15.レポートの作成
- 16. レポートで表示するレコードが無いときにメッセージを出す
- 17.マクロの作成
- 18.ボタンの作成
- 19.ボタンの編集
- 20.オプションの設定
1.データベース概要
About this Template このテンプレートについて
見積書を作成し管理するためのシンプルなデータベーステンプレートです。
Description 機能詳細
・サブフォームに詳細データを表示
・ファンクションキーへのマクロ割り当て
・印刷プレビュー時に表示するデータがない場合にメッセージを表示
Screenshot スクリーンショット
一覧画面(List)・・・レコードを一覧で表示します。
入力画面(Edit)・・・レコードの新規作成・修正・削除等を行います。
印刷画面(Print) ・・・印刷プレビューと帳票印刷をする画面です。
Download ダウンロード
本書で作成するテンプレートを下記リンク先からダウンロードすることができます。データベースの動作を事前に確認しておくことで開発をスムーズに進めることができるでしょう。
2.新規データベースの作成
Accessでは始めにファイルを新規作成し名前をつけて任意の場所に保存する必要があります。
2-1.Accessを起動し[新規作成]画面でファイルを任意の場所に作成します。
2-2.データベースが起動しテーブルが表示されます。
3.テーブルの作成
レコードを保存するテーブルを作成しましょう。
3-1.「テーブル1」の上で右クリックしデザインビューを選択します。
3-2.[名前を付けて保存]ウインドウが表示されたら「TBL_Estimate_H」と入力し[OK]をクリックして保存します。
3-3.テーブルのデザインビューで「フィールド名」と「データ型」を設定しましょう。
「TBL_Estimate_H」テーブルデザイン
3-4.同様に「TBL_Estimate_L」と「TBL_Company_Info」を下記項目で作成します。
「TBL_Estimate_L」テーブルデザイン
「TBL_Company_Info」テーブルデザイン
4.リレーションシップの作成
リレーションシップを作成すると2つ以上のテーブルを関連付けることができます。
4-1.[データベースツール]-[リレーションシップ]をクリックします。
4-2.「リレーションシップ」ウインドウが開いたら[デザイン]-[テーブルの表示]をクリック。
4-3.[テーブルの表示]ウインドウが開いたら「TBL_Estimate_H」と「TBL_Estimate_L」を追加しウインドウを閉じます。
4-4.[リレーションシップの編集]-[新規作成]で下記の様に設定し[OK]をクリックします。
4-5.次にリレーションシップを確認し[作成]をクリックします。
4-6.リレーションシップを確認し保存しましょう。
5.フォームの作成(Edit)
レコードの登録や削除、修正するためのフォームをつくりましょう。
5-1.[作成]-[フォームデザイン]で空白のフォームを表示します。
5-2.フォーム上で右クリックするとメニュが表示されるので[フォームヘッダー/フッター]をクリックします。
5-3.プロパティシートの[フォーム]-[書式]-[幅]を25㎝に設定します。
5-4.ヘッダーとフッターの高さは1.5㎝、詳細の高さは10㎝にそれぞれ設定し保存する。
5-5.[名前を付けて保存]ダイアログでフォーム名を入力し[OK]をクリック。
6.フォームのプロパティ設定
フォームデザインツールで[デザイン]‐[プロパティシート]を表示します。
6-1.フォームのプロパティシートを下記の通り設定します。
7.フィールドの追加
フォームにフィールドを追加して画面をデザインしましょう。
7-1.デザインビューで「FRM_Edit」を開き、[デザイン]-[既存フィールドの追加]をクリックします。
7-2.フィールドリストよりドラッグ・アンド・ドロップでフィールドを配置しましょう。
7-3.それぞれのフィールドにラベルを追加していきます。
8.タブオーダーの設定
タブオーダーを設定するとレコード入力の順番を指定することができます。
8-1.入力する順番を設定します。まずは[デザイン]-[タブオーダー]をクリック。
8-2.次にタブオーダーを入れ替えて修正しましょう。
9.サブフォームの作成
サブフォームを配置してフォーム上に2つのテーブル情報を表示することができます。
9-1.[デザイン]-[サブフォーム/サブレポート]をクリックしフォームに配置します。
9-2.[サブフォームウィザード]が表示されたら[次へ]をクリック。
9-3.テーブル:TBL_Estimate_Lの全てのフィールドを選択し[次へ]をクリック。
9-4.リンクを確認し[次へ]をクリック。
9-5.サブレポートの名前を「SUB_Edit」に変更して[完了]をクリックします。
9-6.サブフォームが配置されたらラベルを削除しプロパティで[書式]-[境界線スタイル]を「無色」に変更しましょう。
9-7.フォームヘッダーのプロパティーシートで[書式]-[背景色]を白に変更しておきます。
10.サブフォームのレイアウト調整
10-1.[SUB_Edit]をデザインモードで開き、幅を13㎝、フォームヘッダーの高さを0.5㎝、詳細の高さを0.6㎝に設定し、ラベルとフィールドのレイアウトを調整します。
10-2. [デザイン]-[テキストボックス]でテキストボックスを追加し、プロパティシートの[データ]-[コントロールソース]に下記の式を入力。
「amount」 =[Unit_Price]*[Qty]
同様に下記テキストボックスを作成します。
「subtotal」 =Sum([Unit_Price]*[Qty])
10-3.フォームフッターのプロパティで[書式]-[可視]を「いいえ」にしておく。
11.サブフォームのプロパティ設定
11-1.プロパティシートを下記の通り設定します。
12.計算フィールドの追加
フォームにサブフォームと連動した計算フィールドを追加します。
12-1. [FRM_Edit]をデザインモードで開き、サブフォームの下部に[memo]フィールドと[Tax_Rate]フィールドを追加します。
12-2. [デザイン]-[テキストボックス]でテキストボックスを追加し、プロパティシートの[データ]-[コントロールソース]に下記の式を入力します。
「subtotal」 =[SUB_Edit].[Form]![subtotal]
同様に下記テキストボックスを作成しましょう。
「tax」 =[subtotal]*[Tax_Rate]
「total」 =[subtotal]+[tax]
13.フォームの作成(List)
一覧(リスト)表示用のフォームを作成しましょう。
13-1.[作成]-[フォームウィザード]をクリック。
13-2.「テーブル:TBL_Estimate_H」のフィールドをすべて選択し、[次へ]をクリックします。
13-3.フォームのレイアウトは[表形式]を選択し、[次へ]をクリック。
13-4.フォーム名を「FRM_List」に変更し、「フォームのデザインを編集する」オプションを選び[完了]をクリックします。
13-5.デザインビューでラベルを修正し、レイアウトを調整しましょう。
14.表形式フォームで選択したデータを帳票形式で表示する
VBA(Visual Basic for Application)を使うとさらに細かな設定が可能になります。
14-1.FRM_Listをデザインビューで開き詳細パートを選択。
14-2.次にプロパティシートの[イベント]-[クリック時]の項目で右端のビルドボタンをクリックします。
14-3.[ビルダーの選択]ウインドウで「コードビルダー」を選択して[OK]をクリック。
14-4.VBAのウインドウが開いたらカーソルが点滅している場所に次のコードを入力し保存します。
---------------------------------------------------------------------
Private Sub 詳細_Click()
DoCmd.OpenForm "FRM_Edit", , , [Slip_No] = Me.[Slip_No]
End Sub
---------------------------------------------------------------------
15.レポートの作成
レポート機能を使って印刷用の帳票を作ってみましょう。
15-1.[作成]-[レポート]-[レポートデザイン]をクリック。
15-2.プロパティシートの[データ]-[レコードソース]のビルドボタンをクリック。
15-3.「テーブルの表示」ウインドウですべてのテーブルを追加します。
15-4.画面上部のフィールドリストから、下部のデザイングリッドにすべてのフィールドをドラッグ・アンド・ドロップで追加しましょう。
15-5.デザイン画面を閉じると下記メッセージが表示されるので[はい]をクリック。
15-6.レポートデザイン画面に戻ったら[デザイン]-[グループ化と並び替え]をクリックします。
15-7. 「グループの追加」で下記の内容で設定します。
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」をデザインビューで開きプロパティシートの[イベント]-[空データ時]の詳細設定ボタンをクリック。
16-2.「ビルダーの選択」ウインドウで「コードビルダー」を選択し[OK]をクリック。
16-3.「Microsoft Visual Basic for Applications」のウインドウで次のコードを入力して保存します。
-------------------------------------------------------------------------------
MsgBox "対象レコードはありません", vbExclamation, "Contact List 印刷"
Cancel=True
----------------------------------------------------------------------------
16-4.レコードが未入力の時にプレビューするとメッセージが表示されます。
17.マクロの作成
マクロを使って定型処理を自動化しましょう。
17-1. [作成]-[マクロ]をクリック。
17-2.プルダウンメニューから「サブマクロ」を選択します。
17-3.サブマクロ名を{F1}とし、新しいアクションの追加で「メニューコマンドの実行」コマンドを「すべて閉じる」を選択したら、更に「フォームを開く」アクションを追加しフォーム名を「FRM_List」とします。
17-4.同様にサブマクロ名を{F2}をフォーム名を「FRM_Edit」として作成します。
17-5.マクロ名を「autokeys」にして保存します。
18.ボタンの作成
ボタンを配置して使いやすくしましょう。
18-1.FRM_Listをデザインビューで開き、[デザイン]-[ボタン]をクリックし、フォームヘッダーにボタンを配置します。
18-2.「コマンドボタンウィザード」ウインドウで、種類「その他」、ボタンの操作「マクロの実行」を選択し[次へ]をクリック。
18-3.リストの中から「AutoKeys{F1}」を選択し[次へ]をクリック。
18-4.[文字列]を「List」と入力し[次へ]をクリック。
18-5.ボタン名を「BTN_List」と入力して[完了]をクリックするとボタンが完成します。
18-7.同様に「BTN_Edit」を作成し背景色を白にしておきましょう。
18-8.「FRM_Edit」をデザインビューで開き、上記で作成した2つのボタンをコピーして貼り付けます。
18-9.コマンドボタンウィザードを活用して「FRM_Edit」に、①「レコードの操作-レコードの削除」ボタン(BTN_Dell)と、②RPT_Listの「レポートの操作-レポートプレビュー」ボタン(BTN_EstSheet)を追加します。
19.ボタンの編集
コマンドボタンウィザードで作成したボタンを編集します。
19-1.FRM_Editをデザインビューで開き17-9で作成した[BTN_Dell]ボタンのプロパティ[イベント]-[クリック時]-[埋め込みマクロ]を選択し[埋め込みマクロ]を削除し空欄にする。
19-2.[イベント]-[クリック時]のビルドボタンをクリックし「ビルダーの選択」ウインドウが開いたら[コードビルダー]を選択し[OK]をクリック。
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.次に[アプリケーションオプション]-[ドキュメントウインドウオプション]-[ドキュメントタブを表示する]と、[アプリケーションオプション]-[ナビゲーション]-[ナビゲーションウインドウを表示する]のチェックを外す。
20-3. 「Accessのオプション」ウインドウで、[クライアントの設定]を選択し、[編集]-[確認]項目の[レコードの変更]、[オブジェクトの削除]、[レコードの変更]のチェックを必要に応じて外し[OK]をクリック。
20-4.下記メッセージが出るので一度ファイルを閉じて再度開くと設定が有効になります。
© 2015 BeansWorks All rights reserved