プチIT化

【Access】実行時エラー’3044′ パスが正しくありません。の原因・対処

こんにちは、わたあめです。先日Accessのマクロ実行時にリンクテーブルを更新するマクロ(RefreshLinkメソッド)を実行したところ、以下のエラーに出会いました。

実行時エラー'3044'
パス*****は正しくありません。パス名に間違いがないことと、ファイルが置かれたサーバーに接続されていることを確認してください。

ちなみに、リンクテーブルを直接開いてみると以下のエラー。

オブジェクト'****'が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。'****'がローカルオブジェクトでない場合は、ネットワークの接続を確認するか、サーバ管理者に問い合わせてください。

内容はどちらもパスが正しいかどうか確認してね!というエラーになります。このエラーはなぜ出てしまうのか、どうやって対処すればいいのか…それでは、いってみましょう!

原因:参照パスが正しくないから

原因はエラーの内容に書いてある通り、リンクテーブルの参照パスが正しくないからです。考えられる状況としては、以下です。

  • 参照しているファイルが削除されていて存在しない
  • 参照しているファイルのファイル名やフォルダ名が変更になった
  • 参照しているファイルがネットワーク上にあり、ネットワークに接続できない
わたあめ
わたあめ
思い当たることが無いでしょうか。

詳しい対処手順は次章に記載していきます。その前に、リンクテーブルとは何か分からないという方は、「知識:リンクテーブルとは?」の章に説明を書いてみましたので、先にそちらに目を通してみてください。

対処:パスの確認と更新

対処としては、リンクテーブルの参照パスが正しいか確認し、正しくなければ更新します。

確認手順

  1. リンクテーブル(青色矢印とメモ帳みたいなアイコン)を右クリック>[リンクテーブルマネージャ]をクリック
  2. ()の中のファイルパスを確認
  3. その場所を確認して、ファイルがあるかどうか確認
    今回の場合、C:\test\test.csvなので、ローカルディスク(C:)のtestフォルダの中にtest.csvという名前のファイルがあるか確認します。

確認してなければ、パスの参照先が存在しないのが原因ということになるので、次の更新手順へ進みましょう。

更新手順

  1. リンクテーブル(青色矢印とメモ帳みたいなアイコン)を右クリック>[リンクテーブルマネージャ]をクリック
  2. 更新したいリンクテーブルにチェックを入れる>[OK]ボタン
  3. [****の新しい場所を選択]というダイアログが出るのでリンクしたいファイルを選択>[開く]ボタン

"選択されたテーブルのリンク先が更新されました"と出ればリンクされました。マクロの場合は、該当箇所のフォルダパスを変更してくださいね!

リンクマネージャから更新できない場合

リンクマネージャから更新しようとしても、ファイルパスが変更できないことがありました。上記更新手順で、ファイルを選択するもパスが変わらないことがありました。

ファイル名の変更だと変更できない。
フォルダ名の変更だと変更できる。

フォルダ名の変更だと可能でした。わたあめの環境だとファイル名だと変更できなかったので、同じ現象が起きた方はファイル名を元のファイル名で試してみてください。

知識:リンクテーブルとは?

リンクテーブルとは

Access外の別ファイルのデータに接続したテーブルのことです。今使っているAccessファイルから別のAccessファイルのテーブルに接続し、情報を共有したりできます。Accessファイルだけでなく、テキストやExcelファイルともリンクすることもできます。

リンクテーブルの作り方

Access2016を使用しており、"C:\test\test.csv"テキストファイルをリンクテーブルとする例で説明します。

  1. [外部データ]>[インポートとリンク]欄>取り込みたいファイルを選ぶ
    取り込みたいファイルは、元ファイルが何かによります。ExcelならExcelボタンを、テキストファイルなら[テキストファイル]ボタンをクリックします。
  2. [外部データの取り込み]ダイアログで[参照]ボタンをクリックし、取り込むファイルを選択し、[開く]ボタン
  3. [リンクテーブルを作成してソースデータにリンクする]を選択し、[OK]ボタン
  4. [テキストリンクウィザード]で任意で選択し、[次へ]ボタン
  5. [フィールド区切り文字]を選択して、[次へ]ボタン
  6. [フィールド名]を入力して、[次へ]ボタン
    前画面で先頭をフィールド名として使うにチェックを入れた場合は、フィールド名は既に1行目の値が入る
  7. [リンクしているテーブル名]を入力し[完了]ボタン
    データをリンクした後、Accessで使うテーブル名のことです。

"テーブル****をファイル****にリンクしました。"と出て、完了です。リンクテーブルが作成されます。

さいごに

いかがだったでしょうか。リンクテーブルの参照エラーについてと、リンクテーブルとは何か?を書いてみました。どなたかのお役に立てれば幸いです。それでは、また!

flier(フライヤー)