Presentation is loading. Please wait.

Presentation is loading. Please wait.

ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材

Similar presentations


Presentation on theme: "ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材"— Presentation transcript:

1 ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材
  データベースアプリケーション開発実習  日本工業大学 情報工学科  “データベースの実際” 教材 copyright(c) 2001 Ohki Software Engineering Research Laboratory, All Rights reserved

2 ACCESSの基本構成要素(基本的な用語)
《 データベース理論およびSQLの世界 》 テーブル(Tabel) 関係表(実際にデータを格納した表) クエリ(Query) ビュー(いろいろなテーブルから利用する属性を集めたり,レコードを選択して作成した仮想的な表. ただし,関連付けされていないテーブルの属性を利用しようとしても,できないので注意 すること) クエリで作成した仮想的な表はDynaSetと呼ぶ フォーム(Form) 入出力画面の定義 レポート(Report) 出力帳票の定義

3 開発の手順 ①データベース概念モデル設計(ERD) ②データベーススキーマ設計(RDM) ③RDMからACCESSのテーブル 定義へ変換
ここまでは“SILVERRUN”を用いて設計したので省略.  ①データベース概念モデル設計(ERD)  ②データベーススキーマ設計(RDM) ③RDMからACCESSのテーブル  定義へ変換   [テーブルのデザインを用いる] ③‘  定義したテーブルへのデータ     入力用フォームを作成する  オートフォーム機能を用いると  よい.必要に応じてレイアウト  を編集する.  ⑥データ   入力作業 ④ 各種のクエリ定義 ・テーブルから指定した条件に合致する レコードを選択した仮想テーブル(導出 表)(Dynasetと呼ぶ)の定義や ・テーブルへデータを追加したり,テー ブルのデータを更新,削除するため操作 の定義を行う(詳細は後述).    [クエリのデザインを用いる] 入力を簡素 化するため にコンボボッ クスを利用 するとき ④‘  クエリの表示用フォームを     作成する  オートフォーム機能を用いると  よい.必要に応じてレイアウト  を編集する.  ⑤ 「起動時のフォーム」を作成し, ボタンを選択したとき,どのフォー ムを開くかのフォーム間の関連付 けを行う(フォームの使用順序決め)

4 ③ RDMからACCESSのテーブル定義へ変換
       [テーブルのデザインを用いる] 1) ACCESSのテーブル定義(テーブルを選びデザインメニューを選択) RDMで定義した データベーススキーマ ※主キーの指定は忘れないこと.  主キーはオートナンバにしておくと間違が少ない.

5 2) テーブル間のリレーション(関連)を定義する(“ツール”メニューの“リレーション”を選ぶ)
2) テーブル間のリレーション(関連)を定義する(“ツール”メニューの“リレーション”を選ぶ) ● リレーションの張り方は,テーブルの主キー属性(例えば“倉庫”の“倉庫番号”)を,関連する テーブルの外部キー(“格納”の“倉庫番号”)の上にドラッグして行う.すると,以下のダイアログ ボックスが表示される.二つの属性は主キーと外部キーとの関係にあるので,外部キーが主キーを参照し たとき,不整合があってはならない.したがって「参照整合性」をONにする. ③ RDMからACCESSテーブル定義   への変換  終わり

6 ③‘ 定義したテーブルへのデータ入力用フォームを作成する
 ③‘  定義したテーブルへのデータ入力用フォームを作成する [1] デザインしたテーブルを選択して メニュー“挿入/ オートフォーム”を選択すると   自動的に,テーブルに対するデータ入力用フォーム作成される. [2] 名前を付け保存するとデータ入力のフォームができあがる. [3] フォームのレイアウトを編集したければ,フォームを選び“デザイン”を選択する.   表示された以下のデザイン用画面で自由に文字や画像の貼り付けの貼り付けができる.  ③‘定義したテーブルへの   データ入力用フォーム作成        終わり

7 . ④ 各種のクエリ定義 “デザインビューでクエリを作成する” を選び, “テーブルを追加する”を選ぶと必要なテーブルが表示される
               ④  各種のクエリ定義 (1)いろいろなテーブルから,指定した条件に合致するレコードを選択した仮想テーブルを作成する. (2)テーブルへデータを追加したり,テーブルのデータを更新,削除したりする操作を  定義する. “デザインビューでクエリを作成する” を選び, “テーブルを追加する”を選ぶと必要なテーブルが表示される テーブルの中から“欲しい情報を表示するのに必要な属性を選んだり”,“特定の条件を満たす レコードを選択するための条件式”を指定する(詳しくは後述).

8 1 選択クエリ(テーブル群から必要な属性とレコードを選択して仮想表―名前は 保存すると気に指定する―を作成する)
保存すると気に指定する―を作成する)  この中で右ボタンを押すと“クエリの種類”が表示されるので,そこから“選択”を選ぶ 「レンタル日付が#01/04/01# 以降のレコードを選択せよ」の 意味 このような指定から,背後で以下のSQLが生成されデータベースに渡される このクエリを実行する(すなわち,クエリを開く)と,このSQLが実行され,仮想的なクエリ表が作成される・ SELECT  会員.会員番号,  レンタル.レンタル日付,  会員.氏名, 会員.電話番号 FROM   会員  INNER JOIN  レンタル          ON  会員.会員番号 = レンタル.レンタル会員番号 WHERE (((会員.会員番号)=[会員番号を指定してください]) AND          ((レンタル.レンタル日付)>=#4/1/2001#));

9 レコード抽出条件(検索条件)のパラメータ指定
(抽出する条件を,クエリを実行する前に指定したいとき) このように抽出条件を指定しておくと,クエリの実行(すなわち, クエリを開く)前に,以下のようなダイアログボックスが表示される ので,具体的な抽出条件の値(この例では,会員番号の値)を入力する.               すると入力した値と会員番号が一致する               レコードのみが選択される

10 導出属性の指定方法 (テーブルには含まれないが,計算によって一時的に属性を作成したいとき) 導出属性の名前
          導出属性の指定方法 (テーブルには含まれないが,計算によって一時的に属性を作成したいとき)  導出属性の名前  導出属性の値を計算する計算式 (計算式の中で用いられている   [ 会員 ] ! [入会日付 ] は以下を意味する ) テーブル名  属性名 

11 《補足》 フィールドの計算式や抽出条件の指定に便利な機能
《補足》 フィールドの計算式や抽出条件の指定に便利な機能 条件式や計算式を入力するときには,セル内で右ボタンを押すとポップアップメニューが表示されるので,その中から“ビルド”を選ぶと,式の入力をいろいろガイドしてくれる.

12 集計の指定方法 (選択したレコードをグループ化したいとき) (a)このクエリ定義を実行する(すなわち,定 義したクエリを開く)と・・
    集計の指定方法  (選択したレコードをグループ化したいとき) (a)このクエリ定義を実行する(すなわち,定 義したクエリを開く)と・・ “カウント”とすると自動的にフィールド名が付く ①レンタルした会員番号毎にレコードをグループ化したいとき指定する ②グループ化したレコードの数 (カウントした数)を作成した  いとき,指定する (b)レンタルテーブルの同じ“レンタル会員番号”を持つレコードがグループ化して一つにまとめられ,そのカウント数が“レンタル会員番号”と共に表示される 《 グループやカウントの指定方法 》 フィールドにカーソルを移動するとコンボボックスが表示されるのでそこから選ぶ

13 2 クロス集計クエリ(2つの属性でグループ化した行列形式の各セルに, 集計対象属性が何回出現するかを集計したもの.アンケート集計に必ず
用いられる) この中で右ボタンを押すと“クエリの種類”が表示されるので,そこから“クロス集計”を選ぶ 会員番号200023の会員が,01/1/19に2回レンタルしたとすると,その回数がここに集計される “カウント”とすると自動的にフィールド名が付く 行:会員番号 各セルに出現する回数を集計する対象であることを意味する 200023 200025 200028 01/1/19 01/1/20 列:レンタル日付 01/1/21

14 3 テーブル作成クエリ (いろいろなテーブルの属性を合成したテーブルを作成する)
  (いろいろなテーブルの属性を合成したテーブルを作成する)  この中で右ボタンを押すと“クエリの種類”が表示されるので,そこから“テーブルの作成”を選ぶ “レンタル”テーブルのすべての属性を意味する このクエリを実行する(すなわち,定義したクエリを開く)と新しい一時的なテーブル“会員No(別途テーブル名は指定した)”が生成される 《 背後で生成されたSQL文 》 このクエリは背後でこのSQLが実行し,新しいテーブルを作成する SELECT  レンタル.*, 会員.会員番号, 会員.電話番号 INTO 会員No FROM  会員  INNER JOIN  レンタル  ON           会員.会員番号 = レンタル.レンタル会員番号;

15 4 更新クエリ(テーブルから,指定した条件を満たすレコードを選択し, それらのレコードについて,指定した属性の値を“レコードの更新”で
指示した値に変更する)  この中で右ボタンを押すと“クエリの種類”が表示されるので,そこから“更新”を選ぶ (b)選択条件を満たしたレコードについて,このフィールドにセットする値(この例では,2000を加算して,セットしなおしている) (a)特定のレコードを選択する選択条件(この例では,“レンタル日付”が01/01/01以降のレコードを選択する 《 背後で生成されたSQL文 》 このクエリを実行する(すなわち, クエリを開く)と,このSQLが実行 され,テーブルが更新される UPDATE レンタル SET  レンタル.レンタル番号 = [レンタル]![レンタル番号]+2000 WHERE (((レンタル.レンタル日付)>=#1/1/2001#));

16 5 追加クエリ(指定した条件を満たすレコードをテーブルから抽出して, 追加先テーブルに追加する) 《 背後で生成されたSQL文 》
       追加先テーブルに追加する) この中で右ボタンを押すと“クエリの種類”が表示されるので,そこから“追加”を選ぶ. ※すると追加先のテーブル名を指定するダイアログボックスが表示されるので,この例では “レンタル”と指定する(ただし,“レンタル”テーブルと“追加テーブル”の属性は同じでないとまずい). 追加先テーブル(この例では“レンタル”)に追加すべきレコードを“追加レンタル”テーブルから抽出する条件を指定する. 《 背後で生成されたSQL文 》 INSERT INTO レンタル ( レンタル番号, レンタル日付, レンタル会員番号 ) SELECT 追加レンタル.レンタル番号, 追加レンタル.レンタル日付, 加レンタル.レンタル会員番号 FROM 追加レンタル WHERE (((追加レンタル.レンタル番号) Between 1 And 10)); このクエリを実行する(すなわち,クエリを開く)と,このSQLが実行され,テーブルにレコードが追加される.

17 6 削除クエリ (テーブルから指定したレコードを削除するとき用いる.抽出条件を満足する レコードが削除される)
レコードが削除される)  この中で右ボタンを押すと“クエリの種類”が表示されるので,そこから“削除”を選ぶ.  “レンタル”テーブルのすべての属性を意味する 削除するレコードの条件(この場合,レンタル会員番号が2のもの) 《 背後で生成されたSQL文 》 このクエリを実行する(すなわち, クエリを開く)と,このSQLが実行 され,レコードが削除される DELETE レンタル.*, レンタル.レンタル会員番号  FROM レンタル   WHERE (((レンタル.レンタル会員番号)=2));

18 ④‘ クエリの表示用フォームを作成する [1] デザインしたクエリを選択して メニュー“挿入/ オートフォーム”を選択すると
     ④‘ クエリの表示用フォームを作成する [1] デザインしたクエリを選択して メニュー“挿入/ オートフォーム”を選択すると   自動的に,そのクエリに対するフォーム作成される. [2] 名前を付け保存するとクエリの結果を表示するフォームができあがる.

19   クエリの表示用フォームの編集 配置したフィールドを右クリックして“プロパティ”を表示し, “コントロールソース(値の発生源や計算式)”として,テーブルの属性値や計算式を指定できる. ツールボックスを利用すると,新たなフィールドを自由に追加して配置できる

20 ⑤ 「起動時のフォーム」を作成し,ボタンを選択したとき,どのフォームを 開くかのフォーム間の関連付けを行う
 ⑤ 「起動時のフォーム」を作成し,ボタンを選択したとき,どのフォームを     開くかのフォーム間の関連付けを行う コマンドボタンをツールボックスから配置し,コマンドボタンウィザードを使って「ボタンをクリックしたら “会員フォーム”を開く」ようにする. 他のフォームの操作も同様に指定する. もろろん,「フォームを閉じる」ようにしてもよい.

21 いろいろなフォームの使用順序を決定する 多数のフォームを扱うときは,あらかじめフォームの表示順序を設計しておく フォーム表示の状態遷移図
 いろいろなフォームの使用順序を決定する 多数のフォームを扱うときは,あらかじめフォームの表示順序を設計しておく 【すべてに通じる設計の基本精神】  会員登録フォーム フォーム表示の状態遷移図 “登録”ボタンクリック “会員を見る”ボタンクリック   会員フォーム    開始フォーム “更新”ボタンクリック / [会員番号の入力] “戻る”ボタン クリック “レンタル状況”ボタンクリック / [会員番号の入力]  会員更新フォーム “レンタルを見る”ボタンクリック “戻る”ボタンクリック “戻る”ボタン クリック   レンタル履歴フォーム レンタル状況フォーム “仕入れを見る”ボタンクリック “売上集計”ボタンクリック   仕入先フォーム  売上集計フォーム

22 a) いろいろなコマンドボタンを配置して起動用時に表示するフォームを完成させたら..
b) “ツール”メニューの“起動時の設定” を選び 起動用時に表示するフォームとして指定する c) すると,ACCESSを起動したとき,最初にこのフォームが表示される

23 VBAでかなり高度なことができるので,データベースアプリケーション開発で仕事をしたい人は,勉強しておくとよい.
コマンドボタンをクリックしたとき,さらに凝った制御を行いたい人は, VBAのプログラムマニュアルを参照してください. VBAでかなり高度なことができるので,データベースアプリケーション開発で仕事をしたい人は,勉強しておくとよい.

24 ⑥ データ入力作業 テーブルのデータ入力用として作成したフォームを利用して, データを次々と入力してゆくことができる.
            ⑥ データ入力作業 テーブルのデータ入力用として作成したフォームを利用して, データを次々と入力してゆくことができる. テーブル「会員」の入力用フォーム 各フィールドにデータを入力 画像やイメージデータのときは,入力フィールド上で右クリックし,“ オブジェクトの挿入” を選択すると,オブジェクトの種類に対応したデータを入力するツールが起動する.

25 ※ データ入力をコンボボックスを用いて簡素化するには!
※ データ入力をコンボボックスを用いて簡素化するには! ①選択クエリ “得意先名”として保存する ②コンボボックスを選んで  フォームの一つのフィールド  として 貼り付ける

26 ③ コンボボックス・ウィーザードにしたがって,フォーム“得意先名”をの値を
  コンボボックスのリストとして表示することを指示する

27 コンボボックスのもつプロパティを, コントロールソースを“得意先名”とする (コンボボックス上で右クリック)

28 質問?


Download ppt "ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材"

Similar presentations


Ads by Google