名前のオートコレクトは、データベースの設計が変更されたときに Access デスクトップ データベースが破損するのを防ぐのに役立ちます。 名前のオートコレクトは、次のことができます。
- データベース オブジェクトの名前を変更すると他のオブジェクトが壊れるタイミングを検出する
- この問題を自動的に修正する
- 行った修正をログに記録します
既定では、名前のオートコレクトは問題を検出して修正しますが、修正はログに記録されません。 名前のオートコレクトはパフォーマンスに若干の影響を与える可能性があるため、データベース設計が予期せず変更される可能性が低い場合は無効にすることをお勧めします。 または、Access で行われた修正を追跡することもできます。 各デスクトップ データベースに名前のオートコレクトのオプションを設定できます。
注
名前のオートコレクトは、データベース オブジェクトの名前の同期を維持するのに役立ちます。 削除されたデータベース オブジェクトに起因する問題など、他の設計変更の問題は直接処理しません。
この記事の内容
なぜ名前のオートコレクトを使用する必要があるのですか?
設計が頻繁に変更される Access データベースで作業している場合、他のデータベース オブジェクトの設計が変更されると、データベース オブジェクトが動作しなくなることがあります。 たとえば、オブジェクトの名前が変更されたが、元のオブジェクトに依存するオブジェクトが更新されない場合などです。
たとえば、Customers テーブルに基づくクエリを作成し、テーブルの名前が後に Customer に変更された場合、この名前の変更により、作成したクエリは動作を停止します。 クエリに他の問題はなく、クエリ デザインのテーブル名を修正すると、クエリは再び機能します。
名前のオートコレクト機能を使用すると、名前の変更を追跡できます。 また、フォーム、レポート、テーブル、クエリ、フィールド、またはテキスト ボックスなどのコントロールの名前を自動的に修正することもできます。
名前: オートコレクトとオブジェクトの依存関係情報
名前のオートコレクトは、テーブル、クエリ、フォーム、およびレポートのオブジェクト依存関係情報の名前 マップ を作成します。 これらのマップを使用すると、[ オブジェクトの依存関係 ] 作業ウィンドウを使用して、選択したテーブルまたはフォームに依存するオブジェクトの一覧を表示できます。 また、テーブルまたはフォームが依存しているオブジェクトを表示することもできます。 オブジェクトの名前マップは、オブジェクトを保存して閉じるたびに更新されます。
注
既定では、古いバージョンの Access で作成されたデータベースを新しいファイル形式に変換した後でも、名前変更の追跡は有効になっていません。 ただし、これらのデータベースを変換した後で、名前変更の追跡を有効にすることができます。
名前のオートコレクトを使用すべきでないのはどのような場合ですか?
次の状況では、名前のオートコレクトを使用しないでください。
- データベース デザインが変更されない データベースの設計を変更しない場合は、名前のオートコレクトをオフにすることでパフォーマンスを向上させることができます。
- データベース ファイルのサイズを小さくしたい場合に、オブジェクト名の変更を手動で管理したい データベースで名前のオートコレクトを有効にすると、データベースが大きくなることがあります。 この増加は、名前のオートコレクトによって作成される名前マップから生じます。 名前のオートコレクトを無効にすると、名前マップが削除され、データベースのサイズが小さくなります。
名前のオートコレクトが修正されないもの
名前のオートコレクトでは、次の問題は修正されません。
- フォーム名、レポート名、またはコントロール名に対する変更は追跡されません。
- マクロまたはコード内のテーブル名、クエリ名、フィールド名が修正されない。
名前のオートコレクトのしくみ
名前のオートコレクトには、名前のオートコレクト情報を追跡する、名前のオートコレクト情報を実行する、名前のオートコレクトの変更をログに記録する、という 3 つのオプションがあります。 最後の 2 つのオプションはそれぞれ、有効になっている前のオプションによって異なります。
[名前の自動修正情報をトラックする]
名前のオートコレクトを有効にしてデータベースの名前の変更を追跡すると、Access では次の処理が行われます。
- データベースへの排他的アクセスを試みます。
- 開いているオブジェクトを検索します。
- 開いているオブジェクトを閉じてから閉じるようにプロンプトを表示します。
- Updates 名前マップは、すべてのテーブル、クエリ、フォーム、およびレポートを開いたり、保存したり、閉じたりします。
- データベースを排他的に昇格する前の状態に戻します。
中断された名前マッピング
ネーム マップの作成には数分かかることがあります。 Esc キーを押すと、この手順をキャンセルできます。 ただし、一部のオブジェクトの名前マップは古くなり、名前マップが更新されるまで、それらのオブジェクトの依存関係情報を表示できません。
注
名前マップの更新中に Esc キーを押して Access を中断しても、 Access は [名前のオートコレクト情報の追跡 ] オプションを無効にしません。 すべての名前マップが更新されていない場合でも、[ 名前のオートコレクト情報の追跡 ] オプションはオンのままになります。 ネーム マップの更新プロセスを再開するには、次の手順を実行します。
- リボンの [ファイル>オプション] を選択して、[Access オプション] ダイアログ ボックスを開きます。
- [Access のオプション] ダイアログ ボックスの左側のウィンドウで、[現在のデータベース] を選択します。
- [名前の自動修正情報の追跡] チェック ボックスをオフにし、[OK] を選択します。 Access では、変更を有効にするには、開いているすべてのデータベース オブジェクトを閉じなければならないという警告が表示されます。
- データベースを閉じ、もう一度開きます。
- [ Access オプション] ダイアログ ボックスをもう一度開きます。 次に、[現在のデータベース] で、[名前の自動修正情報の追跡] チェック ボックスをオンにし、[OK] を選択します。
または、特定のオブジェクトの名前マップを手動で更新するには、オブジェクトをデザイン ビューで開いて保存します。
名前のオートコレクト情報の追跡を無効にするとどうなりますか?
名前のオートコレクトをオフにして名前の変更の追跡を停止すると、Access では次の処理が行われます。
- データベースへの排他的アクセスを試みます。
- 開いているオブジェクトを検索します。
- 開いているオブジェクトを閉じてから閉じるようにプロンプトを表示します。
- すべてのテーブル、クエリ、フォーム、レポートからネーム マップを削除します。
- データベースを排他的に昇格する前の状態に戻します。
Access で変更の追跡処理やネーム マップの削除処理が完了しない場合は、 Name AutoCorrect Save Failures テーブルにエラーが記録されます。
[名前の自動修正を行う]
[名前のオートコレクトの実行] オプションを有効にするには、まず [名前のオートコレクト情報の追跡] オプションを有効にする必要があります。
[名前の オートコレクトを実行する] オプションを有効にすると、Access は名前マップを使用して、名前の変更が他のデータベース オブジェクトに影響を与えるかどうかを判断します。 その後、変更された名前が他のオブジェクトに表示されるたびに修正されます。
[名前の自動修正の変更を記録する]
[ 名前のオートコレクト情報を記録 する] オプションと [ 名前のオートコレクトの実行 ] オプションを有効にしてから、[ 変更のログ名のオートコレクト ] オプションを有効にする必要があります。
[ 名前のオートコレクトの変更をログに記録する] オプションを有効にすると、Access はオブジェクト名の変更のために行った修正を追跡します。 各修正は、 Name AutoCorrect Log テーブルにレコードとして表示されます。
名前のオートコレクト オプションを有効または無効にする
3 つの名前のオートコレクト オプションはすべて、[ Access オプション] ダイアログ ボックスで有効にできます。 名前のオートコレクトのオプションを有効または無効にできるのは、現在のデータベースに対してのみです。
リボンの [ファイル>オプション] を選択して、[Access オプション] ダイアログ ボックスを開きます。
[Access のオプション] ダイアログ ボックスの左側のウィンドウで、[現在のデータベース] を選択します。
[ 名前のオートコレクト オプション] で、必要なオプションをオンまたはオフにします。
トラック名 オートコレクト情報 このオプションを選択すると、Access によりデータベース内のオブジェクト名の変更が追跡されます。 トラッキング情報はネーム マップに保存されます。 このオプションを初めて有効にした場合、Access では既存のデータベース オブジェクトごとにネーム マップが作成されます。 このオプションをオンにしている限り、ネーム マップは最新の状態に保たれます。 ネーム マップは、名前変更によって発生するエラーを修正し、オブジェクトの依存関係情報を生成するために使用されます。 ネーム マップに直接アクセスすることはできません。 他の名前のオートコレクト オプションを選択するには、このオプションを選択する必要があります。
注
このオプションを有効にしても、名前の変更は自動的に修正されません。 このオプションを有効にすると、将来の修正に使用されるマップのみが作成されます。
名前のオートコレクトの実行 このオプションを選択すると、名前が変更されたときに Access によって自動的に修正されます。 このオプションは、[ 名前のオートコレクト情報の追跡 ] オプションが既に選択されている場合にのみ選択できます。 名前のオートコレクトを実行するために、Access は、[ 名前のオートコレクト情報の追跡 ] オプションが有効になっているときに作成された名前マップを使用します。 [ 変更のログ名のオートコレクト ] オプションを選択する前に、このオプションを選択する必要があります。
ログ名 オートコレクトの変更 Access では、名前のオートコレクトによって行われた修正のログが保持されます。 各修正は、
Name AutoCorrect Logテーブルにレコードとして表示されます。