なにか集めるのが趣味!という方 いませんか?
絵画に限らず、書籍やDVD、またはトレーディングカードやアクセサリーなど。買ったものはExcelで記録してませんか。
しかし、Accessを使うと、Excelよりはるかに便利な機能がたくさんあります。
ACCESSを知るために、まずは手始めに『絵画データベース』というシステムを作ってみましょう。
これでACCESSの使い方の基礎がわかります。
ACCESS 開発環境
Windows 10 Microsoft 365 ACCESS
Microsoft 365 から ACCESSがとっても身近になりましたよね
たなかさん 絵 いっぱい持ってますよね
ACCESS 教えるんで コレクションデータベース 作ってみませんか?
骨董屋で 絵 いっぱい買うてん
なんぼぐらいあるんやろ?この際 整理のために
ACCESS っちゅうのん 教わろうっかな
このようなコレクションの登録フォームを作っていきます
『絵画コレクションデータベース』 の準備
『絵画』にある情報 項目の洗い出し
- 購入日
- 作品名
- 作者
- サイズ
- 技法
- 購入額
- 画像
ACCESSデータベースの作成手順
ACCESSファイルの作り方
資金管理や連絡先などいろいろなテンプレートが用意してありますが、
空のデータベースを選びます
ACCESSの場合、WordやExcelと違って、まずファイルを保存しなくてはいけません。絵画コレクションというファイル名にします。そして横のファイルボタンをクリックしてデータベースの保存場所を指定します。
保存したい場所を選んで 絵画コレクションという名前で保存します。
テーブル 作り方
絵画コレクション.accdb を起動し、作成 から テーブルデザインを選びます
洗い出した絵画コレクションの情報から、フィールド名に項目を追加していきます。データ型も項目にあった型を選びます。
左上の名前を付けて保存を選びます。
T_Data というテーブル名をつけて OK を押します
主キーを設定せずに保存しようとすると、上のようなメッセージがでます。
はい を押します 。
自動的に ID に主キーが設定されました。
主キーとは、テーブル内のレコードを識別するためのフィールドです。以下の条件に当てはまるフィールドを主キーに選びます。
・テーブル内の他のレコードと値が重複しない
・必ず値が入力される
テーブルにこのようなフィールドが存在しない場合は、オートナンバー型のフィールドを設けると、自動的にレコード固有の値が割り振られます。
絵画コレクションのテーブル項目では IDをオートナンバー型で設定したため、自動的に割り振られました
これで絵画コレクションのテーブルが完成しました。
コレクションのデータ登録画面 作成
フォーム 作り方
コレクションを登録するテーブルができたら、今度はデータを登録するフォームを作ります。
フォームのプロパティシートから レコードソースにテーブル 『T_Data』を選びます
フォームのプロパティシートから レコードソースにテーブル 『T_Data』を選びます
既存のフィールドの追加でT_Dataの項目(フィールド)リストが表示されます
フィールドを選んでフォームデザイン画面にドラッグアンドドロップすることでフォームにフィールドが追加されます
フォームヘッダーにフォームの名前をつけたり 背景の色を変えるなどできます。フィールドも配置していきます。
フォームを保存しましょう F_Data という名前をつけます
フォームからデータを登録してみましょう
IDは自動的に振られるので入力は不要です
購入日 作品名 作者 技法 サイズ 購入額を 登録していきましょう
横に 画像を登録します。 ダブルクリックで 添付ファイルを追加するダイアログが表示されます
追加で ファイルを選択できます
画像を選んで開くボタンを押すと ひとつ添付ファイルとして登録されます
これでひとつのデータが登録できました。
この調子でどんどん登録していきましょう。
フォームを便利にカスタマイズ
わーお 楽しそう どんどん 登録していくわ~
せっかくだから フォームをカスタマイズして
便利な機能をつけて、登録を簡単にしていきません?
レコードの追加や移動ができるボタンを設置
登録するための新規追加ボタンや先頭や最終データに移動、ひとつ前や次に移動できるボタンをつけていきましょう。
フォームデザインのボタンを選びます
フォームにコマンドボタンができます
同様にボタンを5つ 配置します。
- 左端のコマンドボタンを選択します
- プロパティシートから ピクチャの右のボタンをクリックします
- ピクチャービルダーより『先頭へ』を選び
- OKボタンを押します
5つのボタンすべてにピクチャを設定します
- 先頭へ
- 前へ
- 次へ
- 最終へ
- 新規へ
それぞれのボタンのプロパティシートから名前をつけます
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 | 新規レコードへ移動 |
『先頭へ』のボタンを選んでプロパティシートのイベントタブからクリック時にイベントブロシージャを選びます
Microsoft Visual Basic for Applications のエディターが開きます
ここにプログラムをコーディングしていきましょう
まずは エラートラップの基本コードを記述します。
前へのボタンで 前のレコードがない場合 エラーとなるので そこでシステムが動かなくなってしまいます。それを回避するために、エラーになったらエラーメッセージを出してシステムを終了しますというコードが下のコードとなります。
『前へ』ボタンのクリック時のイベントのプログラムを記述します
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
レコード移動のボタンが完成しました。
いや~ぁ なんか システムっていう感じやわぁ こんなん自分でできるなんて思てへんかったわぁ。
では、どんどん登録したら、 こんどは もう一つの登録方法 一覧形式のフォームを作ってみましょう
もうひとつの登録画面 一覧表(帳票型)をつくってみよう
こんな一覧表画面から登録できるフォームをつくります
一覧表フォームの作成手順
F_Data をコピーして F_Data一覧をつくる
フォームのプロパティシートの規定のビューを 単票フォームから帳票フォームに変更する
単票フォームに設置しているラベルを フォームヘッダーに移動します
ちょっとコツがいりますが、選んで もう一回選んで 切り取り フォームヘッダーを選んで 貼り付けでこうなります
- ヘッダーに張り付けたラベルを配置
- コントロールを横一列に配置
- レコードの移動ボタンを削除
テキストボックスの背景や高さを変えます 背景は透明にしました
新規追加 変更もできます
カード型でも一覧型でもどちらでもお好きな方で登録できますね
こんだけ登録してきたら 帳票型から登録するのって
楽しいわぁ
自力でACCESSシステム作成をサポートします
ACCESSって おもしろいかも と思ってくださった方
いやまだ ACCESSって よくわからない という方
そして 自分でACCESSシステムがつくれるようになったらいいな という方々へ
自力でACCESSシステム作成をサポートします
ACCESSシステムを作って公開するにあたって
マニア建機リースの社員情報や車両情報などのデータがないと作ることはできません
しかし 実際のデータを使うことはできません
そこで そんなデータをランダムに作ってくれるツールがあります