Accessでデータベースを作成して、それを複数人で共有する場合、データベースを分割して、リンクテーブルがあるフロントエンド側にフォームやレポートなどのオブジェクトを作成して、それを配布することはよくあります。
配布用のファイルでフォームなどを更新した場合は、更新したことをお知らせしなければなりません。その場合の方法です。
バージョン管理用のテーブルを作成して、配布用のファイルを起動した時にバージョンが異なる場合は、メッセージフォームを表示してバージョンアップを促します。
参考データベースを分割ツールを使用して、FrontendとBackendに分割する方法は以下の記事で解説しています。
-
[データベース分割ツール]を使ってテーブルとその他のファイルに分割
Accessで作成したデータベースをテーブルとその他のファイルに分割する方法です。 データベース分割ツールを使って簡単に作成できます。 複数 ...
また、ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
この記事の目次
バージョン管理用のテーブルを作成
バックエンドとフロントエンドのファイルにバージョン管理用のテーブルを作成します。
同じデザインにしています。
テーブルの名前は、バックエンドの方は[T_バージョンback]、フロントエンドの方は[T_バージョンfront]にしています。
バックエンドのテーブル[T_バージョンback]には、バージョン管理のために[変更日]と[内容]フィールドを追加しています。
バックエンドのテーブル[T_バージョンback]はリンクテーブルとしています。
データシートビューに切り替えると、以下のようになっています。
テーブル[T_バージョンfront]の[バージョン]の値とテーブル[T_バージョンback]の[バージョン]の最大値は異なる数字になるようにしておきます。
参考リンクテーブルの作成については、以下の記事で解説しています。
-
リンクテーブルの作成(他のデータベースに接続してデータを利用する)
Accessでは、テーブルを他のデータベースからリンクして使用することができます。 リンク先のデータが更新されると、元データも更新されます。 ...
フォームを作成
配布用のフロントエンドのファイルを開く時にバージョンが異なるならメッセージウィンドウが表示されるようにします。
フロントエンドとバックエンドのバージョンを比較するためのフォームを作成します。
[作成]タブをクリックして、[フォーム]グループにある[空白のフォーム]をクリックします。
参考メッセージボックスは、アプリケーションパーツから作成してもいいと思います。
-
アプリケーションパーツからメッセージボックスなどのフォームを作成
Access2010では、[作成]タブにある[アプリケーションパーツ]から、テンプレートを選択してフォームなどを簡単に作成することができます ...
非連結のテキストボックスを挿入
フォームを[デザインビュー]で開きます。そして、[デザイン]タブの[コントロール]グループにある[テキストボックス]をクリックして、以下のように非連結のテキストボックスを2つ作成します。
もし、[テキストボックスウィザード]が表示されたら、[キャンセル]ボタンをクリックして閉じます。
ラベルの標題を入力
ラベルは、以下のように[現バージョン]と[新バージョン」という名前にしておきます。
ラベルの標題はラベルに直接入力してもいいですし、プロパティを表示して、[書式]タブの[標題]に入力しても構いません。
プロパティシートは[デザイン]タブの[ツール]から[プロパティシート]ボタンをクリックするか、キーボードから[F4]キーを押して表示します。
非連結のテキストボックスにバージョンを表示
テキストボックスにテーブル[T_バージョンfront]の[バージョン」フィールドの値と、テーブル[T_バージョンback]の[バージョン]フィールドの最大値を表示します。
バージョン管理用のテーブル[T_バージョンback]のバージョンは徐々に増えていきますから、一番数の多いバージョンを表示するようにします。
現バージョンのテキストボックスのコントロールソースに以下のように入力します。
[バージョン]は[テーブルのフィールド名]、[T_バージョンfront]は[テーブル名]です。
=DLookUp("バージョン","T_バージョンfront")
新バージョンのテキストボックスには、以下のように入力します。
=DMax("バージョン","T_バージョンback")
Dmax関数とDlookUp関数については、以下のMicrosoftの記事を参考にしてください。
DMin、DMax 関数 - Microsoft サポート(Microsoft)
DLookup 関数 - Microsoft サポート(Microsoft)
これで、フォームビューに切り替えると、各テーブルの最大のバージョン値が表示されるようになります。先に各テーブルに仮のバージョン値を入力しておいてください。
テキストボックスを使用不可の設定
テキストボックスを使用できないようにプロパティで設定します。参照のみの設定にします。
テキストボックスのプロパティを表示して、[データ]タブの[使用可能]を[いいえ]、[編集ロック]を[はい]にします。
こうすると、フォーカスを取得できませんし、コピーも編集もできません。データは普通に表示されます。参照用になります。
参考[非連結]のテキストボックスの[使用可能]と[編集ロック]の組み合わせは以下のようになります。
使用可能 | 編集ロック | 内容 |
はい(既定) | はい | フォーカスの取得可。データのコピーは可、編集は不可。 |
はい(既定) | いいえ(既定) | フォーカスの取得可。データのコピーも編集も可。 |
いいえ | はい | フォーカスの取得不可。データのコピーも編集も不可。 |
いいえ | いいえ(既定) | フォーカスの取得不可。データは無効、淡色表示。 |
テキストボックスの名前の確認
テキストボックスの名前を記憶しておきます。テキストボックスのプロパティシートにある[選択の種類ボックス」で確認できます。あるいは、[その他]タブの[名前]で確認します。また、必要であればここで名前を変更しても構いません。
ここでは、[現バージョン]のテキストボックスは[テキスト0]、[新バージョン]のテキストボックスは[テキスト3]です。
メッセージの入力
テキストボックスの大きさや位置を整えて、ラベルを追加して、メッセージを入力します。
上記は、入力しやすいようにグリッド線をオフにしています。
[詳細]エリアで右クリックして、ショートカットメニューから[グリッド線]をクリックしてオフにします。
また、ラベルを選択して、[書式]タブの[フォントグループ]の[太字]の設定をしています。
ラベルのメッセージの内容や書式などは、任意で設定してください。
開く時のイベントプロシージャを作成
フォームを開く時に2つのテキストボックスの値を比較して、同じならフォームを閉じて、別の目的のフォームを表示します。そして、それ以外なら、このままフォームを表示するようにします。
フォームのプロパティを表示します。
選択の種類が[フォーム]になっていることを確認します。なっていなければ、[選択の種類]ボックスの▼ボタンをクリックして選択します。あるいは、フォームの左上の■をクリックしてください。
フォームのプロパティシートの[イベント]タブをクリックして、[開く時]の[ビルダー選択]ボタン[…]をクリックします。
以下の[ビルダーの選択]ダイアログボックスが表示されますので、[コードビルダー]を選択して[OK]ボタンをクリックします。
VBEが起動します。以下のようにコードを入力します。
開く時にテキストボックス[テキスト0]と[テキスト3]の値を比較して、同じ値ならこのフォームを閉じて、[F_menu]のフォームを開きます。そして、それ以外なら、このままフォームを表示するという内容です。
If Me.テキスト0 = Me.テキスト3 Then
DoCmd.Close
DoCmd.OpenForm "F_menu"
Else
End If
埋め込みマクロ
[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択して、以下のように設定しても同じです。
参考埋め込みマクロの設定については、以下の記事が参考になると思います。
-
パスワード入力フォームを作成してパスワードが合えば開くようにする
Accessでパスワード入力フォームを作成して、パスワードを入力してパスワードが合えばフォームを開くようにする方法です。 注意ここでは、Ac ...
リンクの設定
リンクの設定をして、配布用のファイルが保存してあるフォルダーが開くように設定します。
[デザイン]タブの[コントロール]グループにある[リンク]をクリックします。
[ハイパーリンクの挿入]ダイアログボックスが表示されます。[表示文字列]のテキストボックスに表示したい文字列を入力します。
リンク先のフォルダーを指定して、[OK]ボタンをクリックします。
テキストリンクを任意の位置に移動させます。必要であれば、ラベルを挿入してメッセージを入力してください。
ハイパーリンクの編集
ハイパーリンクを編集する場合は、ラベルのプロパティを表示して[書式]タブの[ハイパーリンクアドレス]の[ビルダー選択]ボタン[…]をクリックします。
[ハイパーリンクの挿入]ダイアログボックスが表示されます。
右クリックのショートカットメニューにもあります。
ショートカットメニューの[ハイパーリンク]から[ハイパーリンクの編集]をクリックすると、[ハイパーリンクの挿入]ダイアログボックスが表示されます。
[Accessの終了]ボタンを設置
起動中のAccessを終了させないと上書きできませんので、Accessを終了するボタンを設置します。
[デザイン]タブの[コントロール]グループにある[ボタン]をクリックして、任意の位置に設置します。[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンを押して閉じます。
ここでは埋め込みマクロを使用して作成します。
参考コマンドボタンウィザードを使用して作成することもできます。以下の記事で解説しています。
-
コマンドボタンウィザードを使用したボタンの作成
Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。 コマンド ...
コマンドボタンを選択して、プロパティを表示します。
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[…]をクリックします。
以下の[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]を選択して[OK]ボタンをクリックします。
以下の[マクロツール]が表示されます。▼ボタンをクリックして、プルダウンメニューを表示します。
メニューの中から[Accessの終了]を選択します。
[Accessの終了]の[オプション]は[終了]を選択します。
設定が終わったら、[上書き保存]ボタンをクリックして[閉じる]ボタンをクリックします。
[イベント]タブの[クリック時]には、以下のように[埋め込みマクロ]と表示されます。
参考コマンドボタンウィザードを使用した場合も同じ表示になります。
コマンドボタンの標題を変更します。ボタンの大きさなども調整します。
最後にメッセージを追加して、ラベルやボタンなどの位置や大きさを調整します。書式なども任意で設定してください。
フォームをメッセージ用に設定
フォームのプロパティの「書式」タブで以下のように設定すると、メッセージボックスらしくなります。以下を参考に必要な設定をしてください。
- [標題]には、任意の名前を入力します。フォームビューで開いたときに左上に表示されます。
- [自動中央寄せ]-[はい]
- [境界線スタイル]-[ダイアログ]最小化、最大化、サイズ変更ができなくなります。
- [レコードセレクタ]-[いいえ]
- [移動ボタン]-[いいえ]
- [スクロールバー]-[なし]
- [閉じるボタン]-[いいえ]
フォームの大きさなども調整して、フォームに名前を付けて保存します。
ここでは、[F_バージョン情報]というフォーム名にします。
ハイパーリンクをクリックすると、以下の[Microsoft Accessのセキュリティに関する通知]ウィンドウが表示されます。
[はい]をクリックすると設定したフォルダーが表示されます。
【運用方法】管理者は、フォームやレポートなどのオブジェクトの編集が終わったら、テーブル[T_バージョンfront]の[バージョン」と、テーブル[T_バージョンback]の[バージョン]の値を入力して(同じ値)にして保存します。
ユーザー側はローカルに保存したAccessのテーブル[T_バージョンfront]の[バージョン]の値とテーブル[T_バージョンback]の[バージョン]の値が異なるので、メッセージウィンドウが表示されることになります。
起動時にバージョン情報のフォームを開く設定
起動時にフォーム[F_バージョン情報]が開くように設定します。
[ファイル]タブをクリックして、[オプション]をクリックします。
または、キーボードから[Alt]→[F]→[T]の順に押して表示します。これは、Word、Excel、PowerPointなどでも使用できます。
[Accessのオプション]ダイアログボックスが表示されます。
[現在のデータベース]を選択して、[アプリケーションオプション]の[フォームの表示]にある▼ボタンをクリックして、[F_バージョン情報]を選択します。
[OK]ボタンをクリックして閉じます。
再起動が必要です。
参考起動時の設定については、以下の記事で解説しています。特定のフォームを開く以外の設定についても解説しています。
-
起動時に特定のフォームを開いて開発用の機能を非表示にするには
Accessを起動したときに特定のフォームを開くようにするための設定です。 特にメニューフォームなどを作成したら設定が必要になりますね。 オ ...
バージョン情報フォームに更新内容や更新日時も表示するには
上記で作成したフォーム[F_バージョン情報]にテーブル[T_バージョンback]の[変更日]や[内容]も表示したいのであれば、以下のように修正するといいと思います。
フォーム[F_バージョン情報]をデザインビューで開きます。
レコードソースの設定
フォームのプロパティを表示して、[データ]タブの[レコードソース]の▼ボタンをクリックして、一覧から[T_バージョンBack]を選択します。
これで、テーブル[T_バージョンback]のフィールドを挿入できるようになります。
フィールドの挿入
テーブル[T_バージョンback]の[変更日]と[内容]を挿入します。
[デザイン]タブの[ツール]グループにある[既存のフィールドの追加]をクリックします。
フィールドのリストから、[変更日]と[内容]をフォームの詳細領域へドラッグします。
大きさや位置を調整します。
参考このときラベルは追加したくない、テキストボックスのみを追加したい場合は、[Ctrl]キーを押しながらドラッグしてください。
-
テキストボックス作成時(フィールドの追加時)にラベルを挿入したくない
Accessのフォームやレポートのデザインビューでテキストボックスを作成すると、自動的にラベルも挿入されてしまいます。 これは、意外と面倒に ...
この2つのテキストボックスも参照用にするためにプロパティを表示して、[データ]タブの[使用可能]を[いいえ]、[編集ロック]を[はい]にします。
まとめて設定します。
テーブル[T_バージョンback]の[バージョン]も変更します。
新バージョンのバージョンを表示していた非連結の[テキスト5]を選択して、プロパティを表示します。
[データ]タブの[コントロールソース]の▼ボタンをクリックして[バージョン]を選択します。
ただ、このままではバージョンの大きいものは表示されません。
以下は、フォームビューに切り替えて確認した画像です。
[バージョン]の降順に並べ替え
[バージョン]の降順に並べ替えます。
フォームのプロパティを表示します。[データ]タブの[並べ替え]に以下のように入力します。
バージョンとDESCの間には半角スペースを入力します。DESCは小文字でも構いません。
バージョン DESC
このフォームでの並べ替えについては、以下の記事で解説しています。
-
フォームでのレコードの並べ替え(プロパティシートで設定)
Accessのフォームでレコードの並べ替えは、フォームのプロパティで行うことができます。 下のようなテーブルを基に作成した帳票フォームがあり ...
フォームビューに切り替えると、以下のようになります。
デザインビューからフォームビューに切り替えるショートカットキーは、[F5]キーです。
再度、デザインビューに切り替えて、フォームのプロパティを表示すると、以下のようになっています。