Comments
Description
Transcript
データベースプログラミング
データベースプログラミング データベースプログラミングとは? 汎用プログラミング言語(Microsoft Access の場合には Visual Basic)を用いたデータベー ス・アプリケーションの実現 データベースプログラミングをいつ用いるか? • SQL だけでは記述できない複雑な処理を実現する場合 • 9 具体例 1:惜敗率の計算 9 具体例 2:ドント方式による比例代表選挙における各党派の議席数決定 9 具体例 3:重複立候補を考慮した比例代表選挙の当選者決定 SQL で記述できる場合には、SQL を用いた方が高速かつ保守が容易。 Visual Basic の概要 • Microsoft Access の標準プログラミング言語 • Microsoft Access の全機能を実現可能.(例外:初期設定マクロ) • モジュール機能を持つ構造化言語. (C 言語とほぼ同一機能を持つ.) 関数と手続き • 関数は値を返す.手続きは値を返さない. • 関数呼び出しは,関数,手続き,クエリー,テキストフィールドから行う. • 関数は,データベースやモジュール変数の値を変更できない.(ガイドライン) • 手続きは,データベースやモジュール変数の値を変更する. • 手続き呼び出しは,手続き,ボタンから行う. モジュール • モジュール変数,関数,手続きから構成. • モジュール変数には,モジュール内の関数,手続きのみがアクセス可能. • 互いに関連した機能を持つ関数や手続きをまとめるために使用. ダイナセット • Access のデータベースを操作するための特別なデータ構造 • テーブルの内容,クエリーの実行結果を保持する. ダイナセットの種類 機能 ダイナセット(DynaSet) 読み込み,変更がともに可能 スナップショット(SnapShot) 読み込みのみが可能 データベースとダイナセットの操作 • データベースの操作 Dim DB 変数名 AS Database Set DB 変数名 = DBEngine.Workspaces(0).Databases(0) ダイナセットの操作 または 更新クエリーの実行 DB 変数名.Close • 更新クエリーを実行する. Dim クエリー変数 As QueryDef Set クエリー変数 = DB 変数.OpenQueryDef(クエリー名) クエリー変数.Execute • ダイナセットの操作(テーブル) Dim 変数名 AS DynaSet Set 変数名 = DB 変数名.OpenTable(テーブル名) レコードの操作 変数名.Close • ダイナセットの Open(SQL クエリー) Dim 質問変数 As String Set 質問変数 = SQL 質問 Set 変数名 = DB 変数名.OpenRecordSet(質問変数,dbOpenRecordSet) レコードの操作 変数名.Close • ダイナセットの各レコードを順次アクセスする. 変数名.MoveFirst While NOT 変数名.EOF 当該レコードの操作 変数名.MoveNext Wend • 当該レコードの属性値を読み込む. 変数名![属性名] を式中で用いる. • 当該レコードの属性値を変更する. 変数名.Edit 変数名![属性名] に値を代入する. 変数名.Update • 当該レコードを消去する. 変数名.Edit 変数名.Delete 変数名.Update • ダイナセットの末尾に新規レコードを追加する. 変数名.AddNew 変数名![属性名] に値を代入する. 変数名.Update