Office 2019 Access 2019

ファイルのバージョンが異なる場合はメッセージを表示して更新をお知らせ

投稿日:2019年8月20日 更新日:

Accessでデータベースを作成して、それを複数人で共有する場合、データベースを分割して、リンクテーブルがあるフロントエンド側にフォームやレポートなどのオブジェクトを作成して、それを配布することはよくあります。

配布用のファイルでフォームなどを更新した場合は、更新したことをお知らせしなければなりません。その場合の方法です。

バージョン管理用のテーブルを作成して、配布用のファイルを起動した時にバージョンが異なる場合は、メッセージフォームを表示してバージョンアップを促します。

バージョンアップのメッセージウィンドウ

参考データベースを分割ツールを使用して、FrontendとBackendに分割する方法は以下の記事で解説しています。

[データベース分割ツール]を使ってテーブルとその他のファイルに分割

Accessで作成したデータベースをテーブルとその他のファイルに分割する方法です。 データベース分割ツールを使って簡単に作成できます。 複数人でデータ ...

続きを見る

また、ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方にとっては、 ...

続きを見る

バージョン管理用のテーブルを作成

バックエンドとフロントエンドのファイルにバージョン管理用のテーブルを作成します。

同じデザインにしています。

テーブルの名前は、バックエンドの方は[T_バージョンback]、フロントエンドの方は[T_バージョンfront]にしています。

バックエンドのテーブル[T_バージョンback]には、バージョン管理のために[変更日]と[内容]フィールドを追加しています。

バックエンドのテーブル[T_バージョンback]はリンクテーブルとしています。

2つのテーブルのデザインビュー

データシートビューに切り替えると、以下のようになっています。

テーブル[T_バージョンfront]の[バージョン]の値とテーブル[T_バージョンback]の[バージョン]の最大値は異なる数字になるようにしておきます。

2つのテーブルのデータシートビュー

参考リンクテーブルの作成については、以下の記事で解説しています。

リンクテーブルの作成(他のデータベースに接続してデータを利用する)

Accessでは、テーブルを他のデータベースからリンクして使用することができます。 リンク先のデータが更新されると、元データも更新されます。 データベ ...

続きを見る

フォームを作成

配布用のフロントエンドのファイルを開く時にバージョンが異なるならメッセージウィンドウが表示されるようにします。

フロントエンドとバックエンドのバージョンを比較するためのフォームを作成します。

[作成]タブをクリックして、[フォーム]グループにある[空白のフォーム]をクリックします。

[作成]タブの[空白のフォーム]

参考メッセージボックスは、アプリケーションパーツから作成してもいいと思います。

アプリケーションパーツからメッセージボックスなどのフォームを作成

Access2010では、[作成]タブにある[アプリケーションパーツ]から、テンプレートを選択してフォームなどを簡単に作成することができます。 データ ...

続きを見る

非連結のテキストボックスを挿入

フォームを[デザインビュー]で開きます。そして、[デザイン]タブの[コントロール]グループにある[テキストボックス]をクリックして、以下のように非連結のテキストボックスを2つ作成します。

もし、[テキストボックスウィザード]が表示されたら、[キャンセル]ボタンをクリックして閉じます。

[デザイン]タブの[テキストボックス]を選択して2個のテキストボックスを作成

ラベルの標題を入力

ラベルは、以下のように[現バージョン]と[新バージョン」という名前にしておきます。

ラベルの標題はラベルに直接入力してもいいですし、プロパティを表示して、[書式]タブの[標題]に入力しても構いません。

プロパティシートは[デザイン]タブの[ツール]から[プロパティシート]ボタンをクリックするか、キーボードから[F4]キーを押して表示します。

ラベルの[標題]を入力

非連結のテキストボックスにバージョンを表示

テキストボックスにテーブル[T_バージョンfront]の[バージョン」フィールドの値と、テーブル[T_バージョンback]の[バージョン]フィールドの最大値を表示します。

バージョン管理用のテーブル[T_バージョンback]のバージョンは徐々に増えていきますから、一番数の多いバージョンを表示するようにします。

現バージョンのテキストボックスのコントロールソースに以下のように入力します。

[バージョン]は[テーブルのフィールド名]、[T_バージョンfront]は[テーブル名]です。

=DLookUp("バージョン","T_バージョンfront")

新バージョンのテキストボックスには、以下のように入力します。

=DMax("バージョン","T_バージョンback")

テキストボックスのコントロールソース

Dmax関数とDlookUp関数については、以下のMicrosoftの記事を参考にしてください。

DMin、DMax 関数 - Access(Microsoft)

DLookup 関数 - Access(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でパスワード入力フォームを作成して、パスワードを入力してパスワードが合えばフォームを開くようにする方法です。 注意ここでは、Accessの ...

続きを見る

リンクの設定

リンクの設定をして、配布用のファイルが保存してあるフォルダーが開くように設定します。

[デザイン]タブの[コントロール]グループにある[リンク]をクリックします。

[デザイン]タブの[コントロール]グループにある[リンク]

[ハイパーリンクの挿入]ダイアログボックスが表示されます。[表示文字列]のテキストボックスに表示したい文字列を入力します。

リンク先のフォルダーを指定して、[OK]ボタンをクリックします。

[ハイパーリンクの挿入]ダイアログボックス

テキストリンクを任意の位置に移動させます。必要であれば、ラベルを挿入してメッセージを入力してください。

テキストリンクの挿入

ハイパーリンクの編集

ハイパーリンクを編集する場合は、ラベルのプロパティを表示して[書式]タブの[ハイパーリンクアドレス]の[ビルダー選択]ボタン[…]をクリックします。

[ハイパーリンクの挿入]ダイアログボックスが表示されます。

プロパティからハイパーリンクの編集

右クリックのショートカットメニューにもあります。

ショートカットメニューの[ハイパーリンク]から[ハイパーリンクの編集]をクリックすると、[ハイパーリンクの挿入]ダイアログボックスが表示されます。

右クリックのショートカットメニュー

[Accessの終了]ボタンを設置

起動中のAccessを終了させないと上書きできませんので、Accessを終了するボタンを設置します。

[デザイン]タブの[コントロール]グループにある[ボタン]をクリックして、任意の位置に設置します。[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンを押して閉じます。

ここでは埋め込みマクロを使用して作成します。

参考コマンドボタンウィザードを使用して作成することもできます。以下の記事で解説しています。

コマンドボタンウィザードを使用したボタンの作成

Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。 コマンドボタンをウ ...

続きを見る

コマンドボタンの作成

コマンドボタンを選択して、プロパティを表示します。

[イベント]タブの[クリック時]の[ビルダー選択]ボタン[…]をクリックします。

プロパティの[イベント]タブ

以下の[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]を選択して[OK]ボタンをクリックします。

[ビルダーの選択]ダイアログボックス

以下の[マクロツール]が表示されます。▼ボタンをクリックして、プルダウンメニューを表示します。

メニューの中から[Accessの終了]を選択します。

[マクロツール]から[Accessの終了]を選択

[Accessの終了]の[オプション]は[終了]を選択します。

設定が終わったら、[上書き保存]ボタンをクリックして[閉じる]ボタンをクリックします。

[マクロツール]の[上書き保存]と[閉じる]ボタン

[イベント]タブの[クリック時]には、以下のように[埋め込みマクロ]と表示されます。

参考コマンドボタンウィザードを使用した場合も同じ表示になります。

コマンドボタンのプロパティに[埋め込みマクロ]の表示

コマンドボタンの標題を変更します。ボタンの大きさなども調整します。

コマンドボタンの[標題]

最後にメッセージを追加して、ラベルやボタンなどの位置や大きさを調整します。書式なども任意で設定してください。

フォームにメッセージを追加

フォームをメッセージ用に設定

フォームのプロパティの「書式」タブで以下のように設定すると、メッセージボックスらしくなります。以下を参考に必要な設定をしてください。

  • [標題]には、任意の名前を入力します。フォームビューで開いたときに左上に表示されます。
  • [自動中央寄せ]-[はい]
  • [境界線スタイル]-[ダイアログ]最小化、最大化、サイズ変更ができなくなります。
  • [レコードセレクタ]-[いいえ]
  • [移動ボタン]-[いいえ]
  • [スクロールバー]-[なし]
  • [閉じるボタン]-[いいえ]

フォームのプロパティ[書式]タブの設定

フォームの大きさなども調整して、フォームに名前を付けて保存します。

ここでは、[F_バージョン情報]というフォーム名にします。

フォームビュー

ハイパーリンクをクリックすると、以下の[Microsoft Accessのセキュリティに関する通知]ウィンドウが表示されます。

[Microsoft Accessのセキュリティに関する通知]ウィンドウ

[はい]をクリックすると設定したフォルダーが表示されます。

ファイル保存先フォルダー

【運用方法】管理者は、フォームやレポートなどのオブジェクトの編集が終わったら、テーブル[T_バージョンfront]の[バージョン」と、テーブル[T_バージョンback]の[バージョン]の値を入力して(同じ値)にして保存します。

ユーザー側はローカルに保存したAccessのテーブル[T_バージョンfront]の[バージョン]の値とテーブル[T_バージョンback]の[バージョン]の値が異なるので、メッセージウィンドウが表示されることになります。

起動時にバージョン情報のフォームを開く設定

起動時にフォーム[F_バージョン情報]が開くように設定します。

[ファイル]タブをクリックして、[オプション]をクリックします。

または、キーボードから[Alt]→[F]→[T]の順に押して表示します。これは、Word、Excel、PowerPointなどでも使用できます。

キーボード[Alt]→[F]→[T]

[Accessのオプション]ダイアログボックスが表示されます。

[現在のデータベース]を選択して、[アプリケーションオプション]の[フォームの表示]にある▼ボタンをクリックして、[F_バージョン情報]を選択します。

[OK]ボタンをクリックして閉じます。

再起動が必要です。

[Accessのオプション]ダイアログボックス

参考起動時の設定については、以下の記事で解説しています。特定のフォームを開く以外の設定についても解説しています。

起動時に特定のフォームを開いて開発用の機能を非表示にするには

Accessを起動したときに特定のフォームを開くようにするための設定です。 特にメニューフォームなどを作成したら設定が必要になりますね。 オプションで ...

続きを見る

バージョン情報フォームに更新内容や更新日時も表示するには

上記で作成したフォーム[F_バージョン情報]にテーブル[T_バージョンback]の[変更日]や[内容]も表示したいのであれば、以下のように修正するといいと思います。

フォーム[F_バージョン情報]をデザインビューで開きます。

レコードソースの設定

フォームのプロパティを表示して、[データ]タブの[レコードソース]の▼ボタンをクリックして、一覧から[T_バージョンBack]を選択します。

これで、テーブル[T_バージョンback]のフィールドを挿入できるようになります。

フォームのプロパティ[レコードソース]

フィールドの挿入

テーブル[T_バージョンback]の[変更日]と[内容]を挿入します。

[デザイン]タブの[ツール]グループにある[既存のフィールドの追加]をクリックします。

フィールドのリストから、[変更日]と[内容]をフォームの詳細領域へドラッグします。

大きさや位置を調整します。

参考このときラベルは追加したくない、テキストボックスのみを追加したい場合は、[Ctrl]キーを押しながらドラッグしてください。

テキストボックス作成時(フィールドの追加時)にラベルを挿入したくない

Accessのフォームやレポートのデザインビューでテキストボックスを作成すると、自動的にラベルも挿入されてしまいます。 これは、意外と面倒に思っていら ...

続きを見る

既存のフィールドリストの追加

この2つのテキストボックスも参照用にするためにプロパティを表示して、[データ]タブの[使用可能]を[いいえ]、[編集ロック]を[はい]にします。

まとめて設定します。

2つのテキストボックスを選択してプロパティを表示

テーブル[T_バージョンback]の[バージョン]も変更します。

新バージョンのバージョンを表示していた非連結の[テキスト5]を選択して、プロパティを表示します。

[データ]タブの[コントロールソース]の▼ボタンをクリックして[バージョン]を選択します。

非連結のテキストボックスを変更

ただ、このままではバージョンの大きいものは表示されません。

以下は、フォームビューに切り替えて確認した画像です。

フォームビューで確認

[バージョン]の降順に並べ替え

[バージョン]の降順に並べ替えます。

フォームのプロパティを表示します。[データ]タブの[並べ替え]に以下のように入力します。

バージョンとDESCの間には半角スペースを入力します。DESCは小文字でも構いません。

バージョン DESC

このフォームでの並べ替えについては、以下の記事で解説しています。

フォームでのレコードの並べ替え(プロパティシートで設定)

Accessのフォームでレコードの並べ替えは、フォームのプロパティで行うことができます。 下のようなテーブルを基に作成した帳票フォームがあります。ID ...

続きを見る

フォームプロパティで[並べ替え]を設定

フォームビューに切り替えると、以下のようになります。

デザインビューからフォームビューに切り替えるショートカットキーは、[F5]キーです。

フォームビューに切り替えて確認

再度、デザインビューに切り替えて、フォームのプロパティを表示すると、以下のようになっています。

フォームのプロパティ[並べ替え]

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

Profile

執筆者/はま

-Office 2019 Access 2019

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.