スポンサーリンク

Access - リンクテーブルの便利な使い方

Accessの使い方
リンクテーブルについて
リリ
リリ

インサイトブレイン業務ソフトシリーズの販売管理ソフトのデータって、起動したAccessファイルの中には存在しないよね?

SE
SE

そのとおりだよ。あえてプログラム部分のAccessファイルとデータ部分のAccessファイルを分割してあるんだ。そして、プログラム部分のAccessファイルからデータ部分のAccessファイルのテーブルをリンクしているんだ。

ファイル構成
リリ
リリ

どうして、分割しているの?

SE
SE

プログラムファイルとデータファイルが同じだと、プログラム部分の変更(バージョンアップや不具合修正)があった場合に、ファイルを差し替えるのが大変になる。でも、プログラム部分とデータ部分が別ファイルになっていれば、プログラム部分だけを差し替えればいいので、処理が簡単になるんだよ。つまり、ユーザにアプリケーションを配布するのに便利なんだ。

リリ
リリ

なるほど。でも、どうやってプログラムファイルからデータファイルのテーブルを参照するの?

SE
SE

テーブルのリンク機能(リンクテーブル)を使うんだ。

プログラムファイルから、リンクしたいテーブルを選択するんだよ。

スポンサーリンク

手動でのリンクテーブルの作成と更新と削除

リンクテーブルの作成

SE
SE

【手順①】[外部データ]-[新しいデータ ソース]-[データベースから]-[Access]をクリックします。

データソース メニュー
データソース メニュー
SE
SE

【手順②】「データのインポート元とインポート先、または、リンク元とリンク先の選択」画面の[参照]ボタンをクリックして、リンクしたいテーブルが存在しているAccessファイルを選択します。

【手順③】「リンクテーブルを作成してソースデータにリンクする」を選択して、[OK]ボタンをクリックします。

リンク元の指定
リンク元の指定
SE
SE

【手順④】「テーブルのリンク」画面に、テーブルのリストが表示されるので、リンクしたいテーブルを選択(複数選択も可能です)してから[OK]をクリックします。

リンクするテーブルの指定
リンクするテーブルの指定
SE
SE

【手順⑤】「ナビゲーションウィンドウ」にリンクしたテーブルのアイコンが表示されます。(アイコンの左側に→が付いているのがリンクテーブルです。)テーブルを開くと、リンク先のテーブルのデータを参照/編集できます。

リンクテーブル確認
リンクテーブル確認
リリ
リリ

本当だ。他のファイルのデータが参照できている。

SE
SE

リンクテーブルは、リンク先のデータソース(ファイル)情報とテーブル名を持っていて、その情報を利用してテーブルをリンクしているんだよ。

リンクテーブルの更新

リリ
リリ

リンクテーブルのリンク先のファイルが移動したり、ファイル名が変更されたりしたらどうなるの?

SE
SE

リンクテーブルを開こうとすると、データソース(ファイル)が見つからないって表示されるんだ。もちろんテーブルは開けないよ。

リンク切れのリンクテーブル
リンク切れのリンクテーブル
リリ
リリ

大変だ。こういう場合はどうしたらいいの?

SE
SE

リンク先を更新してあげればいいんだ。

【手順①】リンク先を更新したいテーブルを右クリックして、「リンク テーブル マネージャー」を選択します。

リンクテーブルマネージャーの表示
リンクテーブル マネージャーの表示
SE
SE

【手順②】「リンク テーブル マネージャー」画面の「データソース名」のチェック欄をクリックしてから、[再リンク]ボタンをクリックします。

リンクテーブル マネージャー
リンクテーブル マネージャー
SE
SE

【手順③】「新しい場所を選択Access」画面で、移動先のファイル(もしくは変更した元ファイル名)を選択します。

新たなリンク先のファイル名
新たなリンク先のファイル名
SE
SE

【手順④】テーブル名を聞いてくるので、そのまま[OK]をクリックします。

テーブル名
テーブル名
SE
SE

【手順⑤】「リンクテーブルマネージャー」画面で「データソース情報」が更新されたのを確認してから、[閉じる]をクリックします。

 リンクテーブル マネージャー
リンクテーブル マネージャー
SE
SE

【手順⑥】再度、「T_顧客マスタ」テーブルを開くと、データを見れるようになります。

  リンク先更新結果
リンク先更新結果
リリ
リリ

本当だ。また、データを参照できるようになった!!

リンクテーブルの削除(解除)

リリ
リリ

リンクテーブルが不要になったらどうしたらいいの?

SE
SE

リンクテーブルを削除してあげれば、リンクが解除されるよ。

リンクテーブルの削除
リンクテーブルの削除
リンクテーブルを削除すると

テーブルを削除した場合、通常のテーブルの場合は、テーブルとともにデータそのものが削除されますが、リンクテーブルの場合は、リンクだけが解除されますので、元ファイルのデータはそのままです。

VBAを利用したリンクテーブルの作成と更新と削除

SE
SE

さて、話を元に戻すと、ユーザにアプリケーションを配布するのに便利なので、プログラムファイルとデータファイルを分割しているわけだけど、プログラム部分が変更される度に、ユーザが手動でリンクテーブルのリンク先を変更するのは、面倒だよね。

リリ
リリ

確かに、皆が皆リンクテーブルの更新の仕方を知っているわけではないし、面倒なことはしたくないっていうのが本音だと思うよ。

SE
SE

そうだね。だから、リンクテーブルの更新などは、VBAで自動化すると便利なんだ。具体的には、TableDefオブジェクトを利用するんだ。

    Dim T As TableDef
    Dim LinFileName As String
    Dim TableName As String

On Error Resume Next

    LinFileName = "C:\temp\NewData.mdb"     'リンク先のファイル名
    TableName = "T_顧客マスタ"              'テーブル名

    CurrentDb.TableDefs.Delete TableName    'リンクを一旦削除
    
    Set T = CurrentDb.CreateTableDef(TableName) '新たなテーブルを作成するための変数を作成
    T.Connect = ";DATABASE=" & LinFileName      'リンク先を指定
    T.SourceTableName = TableName               'ソースとなるテーブルを代入
    CurrentDb.TableDefs.Append T                'リンクテーブルを作成
    
    Set T = Nothing                             '変数のクリア

Accessで作成された無料でも利用できる便利な売上仕入在庫管理ソフトは下記から取得できます。

無料 売上管理 フリーソフト カスタマイズ対応型 販売管理
標準利用無料で、納品書や請求書を簡単に作成できる売上管理ソフト(カスタマイズ対応型 販売管理ソフト)を開発し提供しています。一括メール送信機能やRFM分析機能など、便利な機能もたくさんついています。カスタマイズ対応型 販売管理ソフトなので、ソース公開版もあります。

コメント

タイトルとURLをコピーしました