ACCESSで『絵画コレクションデータベース』の作り方【詳しく解説】

絵画コレクション

なにか集めるのが趣味!という方 いませんか?
絵画に限らず、書籍やDVD、またはトレーディングカードやアクセサリーなど。買ったものはExcelで記録してませんか。
しかし、Accessを使うと、Excelよりはるかに便利な機能がたくさんあります。

ACCESSを知るために、まずは手始めに『絵画データベース』というシステムを作ってみましょう。
これでACCESSの使い方の基礎がわかります。

目次

ACCESS 開発環境

 Windows 10  Microsoft 365 ACCESS  

Amazon.co.jpから購入

amazon.co.jpから購入
【対象商品と同時購入限定】Microsoft 365 Personal(15ヶ月版)
オンラインコード版

パソコン、タブレットなども購入を予定している方は
同時購入により 3,000円OFF となります

楽天から購入

ももい

Microsoft 365 から ACCESSがとっても身近になりましたよね
たなかさん 絵 いっぱい持ってますよね
ACCESS 教えるんで コレクションデータベース 作ってみませんか?

骨董屋で 絵 いっぱい買うてん
なんぼぐらいあるんやろ?この際 整理のために
ACCESS っちゅうのん 教わろうっかな

このようなコレクションの登録フォームを作っていきます

完成

『絵画コレクションデータベース』 の準備

『絵画』にある情報 項目の洗い出し

テーブルの項目
  • 購入日
  • 作品名
  • 作者
  • サイズ
  • 技法
  • 購入額
  • 画像

ACCESSデータベースの作成手順

ACCESSファイルの作り方

STEP
ACCESSを起動

資金管理や連絡先などいろいろなテンプレートが用意してありますが、
空のデータベースを選びます

ACCESS起動
STEP
ファイル名をつけます

ACCESSの場合、WordやExcelと違って、まずファイルを保存しなくてはいけません。絵画コレクションというファイル名にします。そして横のファイルボタンをクリックしてデータベースの保存場所を指定します。

ファイル名保存
STEP
任意の場所に保存します

保存したい場所を選んで 絵画コレクションという名前で保存します。

保存場所

テーブル 作り方

STEP
テーブルデザイン

絵画コレクション.accdb を起動し、作成 から テーブルデザインを選びます

データベースを起動
STEP
テーブルを作成します

洗い出した絵画コレクションの情報から、フィールド名に項目を追加していきます。データ型も項目にあった型を選びます。

テーブル作成
STEP
テーブルを保存します

左上の名前を付けて保存を選びます。
T_Data というテーブル名をつけて OK を押します

テーブル保存
STEP
主キーの設定をうながすメッセージ

主キーを設定せずに保存しようとすると、上のようなメッセージがでます。
はい を押します 。

主キーメッセージ
STEP
主キーが自動的に設定される

自動的に ID に主キーが設定されました。

自動的に主キーセット
主キーとは

主キーとは、テーブル内のレコードを識別するためのフィールドです。以下の条件に当てはまるフィールドを主キーに選びます。

・テーブル内の他のレコードと値が重複しない
・必ず値が入力される
テーブルにこのようなフィールドが存在しない場合は、オートナンバー型のフィールドを設けると、自動的にレコード固有の値が割り振られます。

絵画コレクションのテーブル項目では IDをオートナンバー型で設定したため、自動的に割り振られました

これで絵画コレクションのテーブルが完成しました。

コレクションのデータ登録画面 作成

フォーム 作り方

コレクションを登録するテーブルができたら、今度はデータを登録するフォームを作ります。

STEP
フォームデザイン

フォームのプロパティシートから レコードソースにテーブル 『T_Data』を選びます

フォームデザイン
STEP
レコードソースの登録

フォームのプロパティシートから レコードソースにテーブル 『T_Data』を選びます

レコードソース登録
STEP
フィールドの追加

既存のフィールドの追加でT_Dataの項目(フィールド)リストが表示されます

フィールドの追加

フィールドを選んでフォームデザイン画面にドラッグアンドドロップすることでフォームにフィールドが追加されます

フィールド追加
STEP
コントロールの配置

フォームヘッダーにフォームの名前をつけたり 背景の色を変えるなどできます。フィールドも配置していきます。

フォーム1
STEP
フォームの保存

フォームを保存しましょう F_Data という名前をつけます

フォーム保存
フォーム保存完成

フォームからデータを登録してみましょう

IDは自動的に振られるので入力は不要です
購入日 作品名 作者 技法 サイズ 購入額を 登録していきましょう

ボタン161

横に 画像を登録します。 ダブルクリックで 添付ファイルを追加するダイアログが表示されます

ボタン171

追加で ファイルを選択できます

添付ファイル

画像を選んで開くボタンを押すと ひとつ添付ファイルとして登録されます

ファイルを選ぶ
添付ファイル追加

これでひとつのデータが登録できました。
この調子でどんどん登録していきましょう。

完成

フォームを便利にカスタマイズ

たなかさん

わーお 楽しそう どんどん 登録していくわ~

ももい

せっかくだから フォームをカスタマイズして
便利な機能をつけて、登録を簡単にしていきません?

レコードの追加や移動ができるボタンを設置

登録するための新規追加ボタンや先頭や最終データに移動、ひとつ前や次に移動できるボタンをつけていきましょう。

ボタン001
STEP
コマンドボタンの設置

フォームデザインのボタンを選びます

コマンドボタン

フォームにコマンドボタンができます

コマンドボタン

同様にボタンを5つ 配置します。

5つコマンドボタン
STEP
ボタンに機能をつけます
機能
  1. 左端のコマンドボタンを選択します
  2. プロパティシートから ピクチャの右のボタンをクリックします
  3. ピクチャービルダーより『先頭へ』を選び
  4. OKボタンを押します
STEP
ボタンのピクチャ(イメージ)を設定

5つのボタンすべてにピクチャを設定します

ボタンにピクチャ
  1. 先頭へ
  2. 前へ
  3. 次へ
  4. 最終へ
  5. 新規へ
STEP
ボタンに名前を設定(VBAコーディングのための準備)

それぞれのボタンのプロパティシートから名前をつけます

ボタンに名前

5つすべてに 名前を設定します

レコード移動ボタンをVBAで作成

DoCmdオブジェクトのGoToRecordメソッドを使用してフォームよりレコードを操作する方法を説明します。

DoCmd.GotoRecord [,DataObjectType] [,ObjectName] [,AcRecord] [,Offset]

GoToRecordメソッドの引数は以下の通りです。引数を省略した場合は規定値が設定されます。

引数説明
DataObjectType対象となるオブジェクトを指定します。
acActiveDataObjectアクティブオブジェクト(規定値)
acDataFormフォーム
acDataFunction関数
acDataQueryクエリ
acDataServerViewサーバービュー
acDataTableテーブル
ObjectName対象となるオブジェクトの名前を指定します。
AcRecord移動の種類を指定します。
acNext次のレコードへ移動
acPrevious前のレコードへ移動
acFirst先頭のレコードへ移動
acLast最後のレコードへ移動
acGoto指定したレコードへ移動
acNewRec新規レコードへ移動

『先頭へ』のボタンを選んでプロパティシートのイベントタブからクリック時にイベントブロシージャを選びます

ボタン07

Microsoft Visual Basic for Applications のエディターが開きます 
ここにプログラムをコーディングしていきましょう

ボタン08

まずは エラートラップの基本コードを記述します。

前へのボタンで 前のレコードがない場合 エラーとなるので そこでシステムが動かなくなってしまいます。それを回避するために、エラーになったらエラーメッセージを出してシステムを終了しますというコードが下のコードとなります。

ボタン09

『前へ』ボタンのクリック時のイベントのプログラムを記述します

ボタン10
Private Sub 先頭へ_Click()
On Error GoTo Err_先頭へ_Click
    
    DoCmd.GoToRecord , , acFirst
    
Exit_先頭へ_Click:
    Exit Sub
Err_先頭へ_Click:
    MsgBox Err.Description
    Resume Exit_先頭へ_Click
End Sub

あと『前へ』『次へ』『最終へ』『新規へ』のボタンも同様に記述していきましょう。

Private Sub 前へ_Click()
On Error GoTo Err_前へ_Click
    
    DoCmd.GoToRecord , , acPrevious
    
Exit_前へ_Click:
    Exit Sub
Err_前へ_Click:
    MsgBox Err.Description
    Resume Exit_前へ_Click
End Sub
Private Sub 次へ_Click()
On Error GoTo Err_次へ_Click
    
    DoCmd.GoToRecord , , acNext
    
Exit_次へ_Click:
    Exit Sub
Err_次へ_Click:
    MsgBox Err.Description
    Resume Exit_次へ_Click
End Sub
Private Sub 最終へ_Click()
On Error GoTo Err_最終へ_Click
    
    DoCmd.GoToRecord , , acLast
    
Exit_最終へ_Click:
    Exit Sub
Err_最終へ_Click:
    MsgBox Err.Description
    Resume Exit_最終へ_Click
End Sub
Private Sub 新規へ_Click()
On Error GoTo Err_新規へ_Click
    
    DoCmd.GoToRecord , , acNewRec
    
Exit_新規へ_Click:
    Exit Sub
Err_新規へ_Click:
    MsgBox Err.Description
    Resume Exit_新規へ_Click
End Sub

レコード移動のボタンが完成しました。

たなかさん

いや~ぁ なんか システムっていう感じやわぁ こんなん自分でできるなんて思てへんかったわぁ。

ももい

では、どんどん登録したら、 こんどは もう一つの登録方法 一覧形式のフォームを作ってみましょう

もうひとつの登録画面 一覧表(帳票型)をつくってみよう

こんな一覧表画面から登録できるフォームをつくります

帳票型登録画面

一覧表フォームの作成手順 

STEP
カード型の登録フォームをコピー

F_Data をコピーして F_Data一覧をつくる

フォームコピー
STEP
単票フォームから帳票フォームに

フォームのプロパティシートの規定のビューを 単票フォームから帳票フォームに変更する

デザインビュー
プロパティ変更
STEP
ラベルをフォームヘッダーに移動

単票フォームに設置しているラベルを フォームヘッダーに移動します

ラベル

ちょっとコツがいりますが、選んで もう一回選んで 切り取り フォームヘッダーを選んで 貼り付けでこうなります

ヘッダーへ
STEP
コントロールの配置替え
  • ヘッダーに張り付けたラベルを配置
  • コントロールを横一列に配置
  • レコードの移動ボタンを削除
コントロール配置
STEP
コントロールのプロパティ 変更

テキストボックスの背景や高さを変えます 背景は透明にしました

コントロール
STEP
帳票型 登録画面 完成
帳票型登録画面

新規追加 変更もできます

新規追加
ももい

カード型でも一覧型でもどちらでもお好きな方で登録できますね

たなかさん

こんだけ登録してきたら 帳票型から登録するのって
楽しいわぁ

目次