Abstract#
なんと授業でMS ACCESSを使ったシステムのプロトタイプを作ることに。。。Topic#
基本手順#
- このDBで何をするか決めましょう
- クラス図やERDを使って、扱うべき情報を定義しましょう。ただし、それらは正規化が終わっている必要があります。
- サンプルデータを入力する
- 必要な情報を集めるクエリを作る
- 必要な情報追加をするクエリを作る
- 必要な情報更新をするクエリを作る
- その他必要なクエリを作る
- クエリの結果を表示するレポートを作る
- フォームをつくり、クエリを呼び出すボタンを作る
- フォームをつくり、レポートを呼び出すボタンを作る
こんなイメージを持ちました。この便利さは、使ってみないとわかりません。 |
MS ACCESSテクニック#
おもに[1]の情報を参考に進めました。 |
- VBAでクエリ名などを指定するときは
””で囲いましょう |
- Formでクエリ起動のボタンを押したとき、フォーム上の値を使いたいときは、
呼び出されるクエリのデザイン画面でCriteriaにBuilderからFormのその値を指定しましょう。 |
- VBAのデバッグには
Msgboxが便利。まあ、慣れてくれば、Debuggerを使いましょう。Eclipseなどの他のIDEと同じように、プログラムエディタの左端に泊まってほしいポイントにマーカーをつけていると、プログラムを実行したときにそこで止まり、その時点の変数の中に入っている値を見たり、一歩一歩処理を進めたりできます。 |
- VBAでフォーム上のオブジェクトにアクセスしたい場合は、
同じフォーム上のコマンドの中での話ですが、”Me."を使ってみましょう |
- リストを消去するには、
RowSourceプロパティに””を代入 |
- クエリで得た合計値をVBAで扱うには?
できませんでした。そのクエリと同等のSQLをACCESSのSQL ViewからVBAエディタにカットアンドペーストして、RecordSetを使って、VBAの中で計算しました。できそうなんだけどなー。 |
- VBAの中のSQLで日付を扱いたい
抽出条件のデータ型が一致しないとか言われたら、日付の文字列を#で囲ってみましょう。#2009/04/10#とか。 |
- ActiveXのカレンダーのデフォルトを今日の日付にしたい
そのカレンダーActiveXの名前が”Calendar1とつけている場合、”Me.Calendar1.Today”とFormのLoadイベントを記述しましょう! |
- 使えるTools
メニューにToolsとあります。わりと使えるツールが揃っています。 |
”Database Utilities * | SwitchBoard Manager”はアプリケーションのメニューフォームを作るのに便利です。 |
”Database Utilities * | StartUp”はアプリケーションが起動されたときの動作を設定するのに便利です。特にメニューを起動時に表示させたいときとか。 |
ただ、気をつけてください。下手に開発系のメニューを削除すると、復活できません。 |
- セキュリティ設定
気をつけてください。下手に設定すると、セキュリティの設定を外すことができません。 |
Adminという最初からあるアカウントのパスワードをクリアすると、セキュリティの設定が外れたような状態になった。これは。。。 |
Reference#
- [#1]cbcnet. 2004. ACCESS VBA 基礎講座. http://www.geocities.jp/cbc_vbnet/