アクセスでデータベースを作って管理する

その他

はじめに

皆さんエクセルはよく使うと思います。
簡単に表計算が出来て便利ですよね。ちょっとした電卓代わりに使うこともよくあります。

でもこんなことで悩んだりしませんか?
私も以下のようなことで悩んでいました。

  • 複雑な計算式で参照しているリンクがずれていた
  • 多くの人と共有で使っていて計算式が壊されていた
  • 印刷フォーマットが崩れてしまう

解決手段として Microsoft Accessの利用をお勧めします。

Accessの特徴とすれば以下のことがあります。

  • エクセルより多くのデータを扱える
  • 入力データを消される心配がない
  • 印刷するためのレポートが綺麗
  • 内部の計算式が壊される事がない
  • 入力フォームでエクセル入力が容易
この記事を読んで得られること見出し
  • Access データベースを作成するときのポイントがつかめる
  • VBA について理解できる

システム設計のポイント

Access のオブジェクトの詳細については専門書に任せます。
各オブジェクトの設計のポイントなどをまとめましたので参考にしてください。

テーブル作成時のポイント

テーブルはデータを格納する部分です。
もっとも最初に作る部分です。テーブルの設定がうまくいっているとその先がうまくいきます。
ポイントは以下のことになると思います。

リレーションシップを確立するために親テーブルが必要になります。
親テーブルは扇の要みたいなものですね。
この階層をしっかりと区別することが重要になってきます。
この階層を区別するためにもテーブル名には番号を付けることをお勧めします。

テーブル作成時のポイント
  • 親テーブルと子テーブルを区別する
  • テーブル名に番号を付与する

クエリ作成時のポイント

テーブルから必要なデータを抽出するのがクエリです。
集計、選択、削除などもできます。
ポイントは以下のことになると思います。

クエリ作成時のポイント
  • 選択クエリでは、リレーションシップがしっかりと確立しているか
  • テーブルと同様にクエリの中にも階層が生じることがあるので、親クエリとクエリを区別する。

フォーム作成時のポイント

フォームアクセスの肝になっています。
入力の支援を行うことで、誤入力を防ぎます。

フォーム作成時のポイント
  • 入力支援を行う
  • マクロ・VBAを活用する
  • メッセージボックスを活用する

レポート作成時のポイント

個人的にはアクセスのレポートはエクセルで難しいと思います。
一度作ってしまえば、システムを変えない限りずっと使うものです。
ポイントは以下のことになると思います。

レポート作成したポイント
  • フォントは游ゴシックを用いる。
    Windows でも Mac でも使えます。
  • 余白は広めに設定する。

使えるVBA

メッセージボックス

テキストボックスにフォーカスを取得した時にメッセージを表示するものです。
メッセージボックスが& vbCrLf &で改行されるため見やすくになっています。

Private Sub テキストボックス名_GotFocus()
MsgBox (“この中にメッセージを入力& vbCrLf &この中にメッセージを入力“)
End Sub

レポートを開く

コマンドボタンを押すとレポートをプレビューで開くコードです。
OpenReport のアクションを変えることでテーブル、クエリを開くこともできます。

Private Sub コマンドボタン名_Click()
DoCmd.OpenReportレポート名“, acViewPreview
End Sub

フォームを開くときに最大化して最後のレコードを表示する

メインのフォームを開くときに便利なコードです。
発生イベントはフォームを開くときに設定します。

Private Sub Form_Open(Cancel As Integer)
 DoCmd.Maximize
 DoCmd.GoToRecord , , acLast
End Sub

データを更新する

途中入力をおこなったものを反映させます。
対象のクエリを更新するものになります。
開いて閉じる作業をしているだけです。

DoCmd.OpenQuery “クエリ名“, acViewNormal, acEdit
DoCmd.Close acQuery, “クエリ名“, acSaveYes

Null値の確認

データの有無を判断します。
新規レコードはNullなので、判別に利用します。
Falseは値がある場合になります。

If IsNull(テキストボックス名) = False Then
Else
End If

繰り返し処理をする-Do Loop

データがいくつもあるとき繰り返し計算に使います。
ループから抜け出せるようにしておかないと永久に計算しますので注意してください。
Exit Doでループから抜けます。
下記は、If 文で条件判別をして計算を繰り返すパターンになっております。

Do
   If 〇 then
     〇×〇
    Else
     Exit Do
   End If
Loop

エラーを見つけるのに便利-Debug.Print

VBA 編集の途中で変数に何を確認したのかを確認できます。
思った通りに計算が進んでない場合に、変数の値がイミディエイトウィンドウに表示され確認できます。

下記のコードでは数量×金額でテキストに値が入力され、その値がイミディエイトウィンドウに表示されます

テキスト金額 = 数量 * 金額
Debug.Print テキスト金額

最後に

アクセスの設定の仕方について記事にしてみました。
自分で使って便利な VBA のコードも載せてみました。
今後、追加もしていきたいと思っています。
最後まで読んでいただきありがとうございました。

スポンサーリンク

コメント

タイトルとURLをコピーしました