テキスト ファイルのデータをインポートまたはリンクする

テキスト ファイルのデータをインポートまたはリンクする

テキスト ファイルから Access にデータを取り込むには 2 つの方法があります。データのコピーを Access 内で編集できるようにする場合は、テキスト インポート ウィザードを使って新規または既存のテーブルにファイルをインポートします。豊富なクエリやレポートのために Access で最新のソース データを表示するだけの場合は、テキスト リンク ウィザードを使ってデータベースにテキスト ファイルへのリンクを作成します。

この記事では、これらのウィザードを使ってテキスト ファイルをインポートまたはテキスト ファイルにリンクする方法について説明します。

この記事の内容

テキスト ファイルとサポートされる形式について

テキスト ファイルからデータをインポートする

インポートに関して知っておく必要があること

インポートしたテーブルでの存在しない値または正しくない値のトラブルシューティング

テキスト ファイルにリンクする

リンク テーブルでの #Num! および正しくない値のトラブルシューティング

テキスト ファイルとサポートされる形式について

テキスト ファイルには、文字や数字などの書式設定されていない読み取り可能な文字と、タブ、改行、復帰などの特殊文字が含まれています。Access がサポートするファイル名拡張子は、.txt、.csv、.asc、.tab です。

インポートまたはリンクのソース ファイルとしてテキスト ファイルを使用するには、インポート ウィザードおよびリンク ウィザードが内容をレコード (行) のセットに分割し、各レコードをフィールド (列) のコレクションに分割できるように、ファイルの内容が編成されている必要があります。適切に編成されたテキスト ファイルは、次の 2 種類のいずれかです。

  • 区切りファイル    区切りファイルでは、各レコードは個別の行で表され、フィールドは区切り記号と呼ばれる 1 つの文字で区切られます。区切り記号には、タブ、セミコロン、コンマ、スペースなど、フィールド値に含まれない任意の文字を使うことができます。次に、コンマ区切りテキストの例を示します。

    1,Company A,Anna,Bedecs,Owner
    2,Company C,Thomas,Axen,Purchasing Rep
    3,Company D,Christina,Lee,Purchasing Mgr.
    4,Company E,Martin,O’Donnell,Owner
    5,Company F,Francisco,Pérez-Olaeta,Purchasing Mgr.
    6,Company G,Ming-Yang,Xie,Owner
    7,Company H,Elizabeth,Andersen,Purchasing Rep
    8,Company I,Sven,Mortensen,Purchasing Mgr.
    9,Company J,Roland,Wacker,Purchasing Mgr.
    10,Company K,Peter,Krschne,Purchasing Mgr.
    11,Company L,John,Edwards,Purchasing Mgr.
    12,Company M,Andre,Ludo,Purchasing Rep
    13,Company N,Carlos,Grilo,Purchasing Rep
  • 固定幅ファイル    固定幅ファイルでは、各レコードは個別の行で表され、各フィールドの幅は、すべてのレコードに渡って一定に維持されています。たとえば、各レコードの最初のフィールドの長さは常に 5 文字であり、2 番目のフィールドの長さは常に 12 文字などとなっています。あるフィールドの値の実際の長さがレコードによって異なる場合、必要な幅より短い値の末尾にはスペース文字を埋め込む必要があります。次に、固定幅テキストの例を示します。

    1   Company A   Anna       Bedecs         Owner            
    2 Company C Thomas Axen Purchasing Rep
    3 Company D Christina Lee Purchasing Mgr.
    4 Company E Martin O’Donnell Owner
    5 Company F Francisco Pérez-Olaeta Purchasing Mgr.
    6 Company G Ming-Yang Xie Owner
    7 Company H Elizabeth Andersen Purchasing Rep
    8 Company I Sven Mortensen Purchasing Mgr.
    9 Company J Roland Wacker Purchasing Mgr.
    10 Company K Peter Krschne Purchasing Mgr.
    11 Company L John Edwards Purchasing Mgr.
    12 Company M Andre Ludo Purchasing Rep
    13 Company N Carlos Grilo Purchasing Rep

ページの先頭へ

テキスト ファイルからデータをインポートする

テキスト ファイルに含まれるデータの一部または全部を Access データベースに格納する場合は、新しいテーブルにファイルの内容をインポートするか、既存のテーブルにデータを追加する必要があります。インポートしたデータは表示および編集でき、データに対して行った変更はソース テキスト ファイルに反映されません。

インポート操作では、ソース ファイルの編成方法と、新しいテーブルを作成するか、または既存のテーブルにデータを追加するかを指定できます。

ヒント: テーブルまたはデータベースの構造に慣れていない場合は、「データベースにテーブルを作成する」または「データベース設計の基本」の記事をご覧ください。

インポート操作の最後に、インポート操作の詳細を定義として保存することができます。インポート定義を使うと、後で操作を繰り返すことができ、毎回テキスト インポート ウィザードの手順を実行する必要はありません。

テキスト ファイルを Access にインポートする一般的なシナリオ

通常は、次のような理由で Access にテキスト データをインポートします。

  • データの一部が Access で認識できない形式になっていて、そのデータをデータベースの 1 つで使いたい場合。最初にソース データをテキスト ファイルとしてエクスポートした後、テキスト ファイルの内容を Access のテーブルにインポートできます。

  • データ管理に Access を使っているが、別のプログラムのユーザーからテキスト形式のデータを定期的に受け取ってインポートするので、インポート プロセスを合理化することで、時間を短縮し、作業を軽減したい場合。

注: Access でテキスト ファイルを開くと ([開く] ダイアログ ボックスで [ファイルの種類] ボックスを [すべてのファイル] に変更してから、テキスト ファイルを選ぶことにより)、テキスト リンク ウィザードが開始し、内容をインポートする代わりに、テキスト ファイルへのリンクを作成することができます。ファイルへのリンクは、内容のインポートとは異なります。テキスト ファイルへのリンクの詳細については、この記事で後述する「テキスト ファイルにリンクする」セクションをご覧ください。

ソース ファイルを準備する

  1. メモ帳などのテキスト エディターでソース テキスト ファイルを開きます。

    注: インポート操作でインポートできるテキスト ファイルは 1 つだけです。複数のファイルをインポートするには、ファイルごとにインポート操作を繰り返します。

  2. ソース テキスト ファイルの内容を確認し、次の表で説明するアクションを実行します。

    要素

    説明

    区切りファイルまたは固定幅ファイル

    ファイルがいずれかの形式に一貫して従っていることを確認します。ファイルが区切り形式の場合は、区切り文字を確認します。ファイルが固定幅フィールドの場合は、すべてのレコードで各フィールドが同じ幅であることを確認します。

    テキスト区切り記号

    区切りファイルでは、次のように、単一引用符または二重引用符で囲まれたフィールド値が含まれることがあります。

    • "金子 由佳里",25,2017/4/5,"東京都"

    • "早川 諭",27,2018,"大阪府"

    フィールド値を囲む文字は、テキスト区切り記号と呼ばれます。テキスト区切り記号は必須ではありませんが、次のいずれかの場合は必要です。

    • フィールド区切り記号がフィールド値の一部として使用されている場合。 たとえば、フィールド区切り記号にコンマが使用され、東京都, 大阪府 が有効なフィールド値である場合、"東京都, 大阪府" のように 1 組のテキスト区切り記号で値を囲む必要があります。

    • 04529340034539 などのテキスト以外の値が Access でテキスト値として扱われ、テキスト フィールドに格納されるようにする場合。

    インポート操作では、ファイルでテキスト区切り記号が使われているかどうかを指定でき、使われている場合はその文字を指定できます。

    ファイル全体で同じテキスト区切り記号が使われていて、テキスト値のみがテキスト区切り記号のペアで含まれていることを確認します。

    フィールドの数

    ソース フィールドの数は 255 以内にする必要があります。Access はフィールドが 255 個を超えるテーブルをサポートできません。

    レコードと値のスキップ

    テキスト ファイルの一部のみが必要な場合は、インポート操作を始める前にソース ファイルを編集します。インポート操作中にレコードをスキップすることはできません。

    新しいテーブルにデータを追加する場合は特定のフィールドをスキップできますが、既存のテーブルに内容を追加する場合はできません。既存のテーブルにデータを追加するときは、ソース データの構造が追加先のテーブルの構造と一致している必要があります。つまり、ソース データと追加先のテーブルで、列の数とデータ型が一致していなければなりません。

    空白の行とフィールド

    ファイルから、すべての不要な空白行を削除します。空白のフィールドがある場合は、不足しているデータを追加するようにしてください。既存のテーブルにレコードを追加する場合は、テーブルの対応するフィールドが Null 値を許容することを確認します。フィールドの "値要求" フィールド プロパティが "いいえ" に設定され、"入力規則" プロパティが Null 値を許可する設定になっている場合は、Null 値が許容されます。

    不要な文字

    不要なタブ、改行、復帰などが残っていないかを調べ、見つかったら削除します。

    データ型

    インポート時のエラーを防ぐため、すべての行で各ソース フィールドに同じ型のデータが含まれることを確認します。Access は、ファイルの最初の 25 行をスキャンして、テーブルのフィールドのデータ型を決定します。ソースの最初の 25 行については、どのフィールドにも異なるデータ型を混在させないようにすることを強くお勧めします。また、テキスト値として扱う必要のある非テキスト値を、単一引用符または二重引用符で囲みます。

    ソース ファイルの 25 行目より後に異なるデータ型の値が混在する場合、インポート操作でスキップされたり不適切に変換されたりする可能性があります。トラブルシューティングについては、この記事で後述する「インポートしたテーブルでの存在しない値または正しくない値のトラブルシューティング」セクションをご覧ください。

    フィールド名

    区切りテキスト ファイルでは、ファイルにフィールドの名前が含まれていない場合、1 行目にフィールド名を配置することをお勧めします。インポート時に、1 行目の値をフィールド名として扱うように指定できます。固定幅テキスト ファイルをインポートするときは、1 行目の値をフィールド名として使用するオプションはありません。

    注: 既存のテーブルに区切りテキスト ファイルを追加する場合は、各列の名前が対応するフィールドの名前と正確に一致していることを確認します。列名がテーブル内の対応するフィールドの名前と異なる場合は、インポート操作が失敗します。フィールドの名前を確認するには、追加先のテーブルをデザイン ビューで開きます。

  3. ソース ファイルが開いている場合は、それを閉じます。ソース ファイルを開いたままにしておくと、インポート操作中にデータ変換エラーが発生する可能性があります。

Access でインポート プロセスを開始する

  1. インポートしたデータを格納する Access データベースを開きます。既存のデータベースにデータを格納しない場合は、空のデータベースを作成します。

  2. インポート操作を開始する前に、データを新規と既存のいずれのテーブルに格納するかを決定します。

    • 新しいテーブルを作成する    データを新しいテーブルに格納する場合は、テーブルが作成されて、インポートしたデータがそこに追加されます。指定した名前のテーブルが既に存在する場合は、テーブルの内容がインポートしたデータで上書きされます。

    • 既存のテーブルに追加する    既存のテーブルにデータを追加する場合は、指定したテーブルにデータが追加されます。

      続行する場合、追加操作中のほとんどの失敗の原因は、ソース データがインポート先のテーブルの構造とフィールド設定に一致しないことです。これを避けるには、テーブルをデザイン ビューで開いて、次の項目を確認してください。

      • 最初の行    ソース テキスト ファイルの最初の行にフィールド名が含まれていない場合、各列の位置とデータ型がテーブルの対応するフィールドと一致していることを確認します。区切りテキスト ファイルでは、1 行目に列見出しが含まれている場合は、列とフィールドの順序が一致している必要はありませんが、各列の名前とデータ型は、対応するフィールドと完全に一致する必要があります。固定幅テキスト ファイルをインポートするときは、1 行目の値をフィールド名として使用するオプションはありません。

      • 存在しないフィールドまたは余分なフィールド    インポート先テーブルに存在しないフィールドがある場合は、インポート操作を始める前に、それらのフィールドを追加します。ただし、インポート先テーブルに、ソース ファイルに存在しないフィールドが含まれる場合、それらのフィールドで Null 値が許容されるときは、フィールドをテーブルから削除する必要はありません。

        ヒント: フィールドの "値要求" フィールド プロパティが "いいえ" に設定され、"入力規則" プロパティが Null 値を許可する設定になっている場合は、Null 値が許容されます。

      • 主キー    テーブルに主キー フィールドがある場合、この主キー フィールドと互換性のある値を含む列がソース ファイルに含まれる必要があります。さらに、インポートされるキー値が一意である必要があります。インポート先テーブルの既存の主キー値と同じ値がインポートされるレコードにあると、インポート操作中にエラー メッセージが表示されます。一意のキー値が含まれるようにソース データを編集した後、インポート操作を再度開始する必要があります。

      • インデックス フィールド    テーブル内に "インデックス" プロパティが [はい (重複なし)] に設定されているフィールドがある場合、ソース テキスト ファイルの対応する列は、一意の値を持つ必要があります。

  3. テキスト インポート ウィザードやテキスト リンク ウィザードの場所は、Access のバージョンによって若干異なります。Access のバージョンに対応した手順を選択してください。

    • Access の最新の Office 365 サブスクリプション バージョンを使っている場合は、[外部データ] タブの [インポートとリンク] グループで、[新しいデータ ソース]、[ファイルから]、[テキスト ファイル] の順にクリックします。

    • Access 2016、Access 2013、または Access 2010 を使っている場合は、[外部データ] タブの [インポートとリンク] グループで、[テキスト ファイル] をクリックします。

    • Access 2007 を使っている場合は、[外部データ] タブの [インポート] グループで、[テキスト ファイル] をクリックします。

  4. [外部データの取り込み - テキスト ファイル] ダイアログ ボックスが開きます。

    テキスト ファイルのインポート、追加、またはリンクを選択します。

  5. [外部データの取り込み - テキスト ファイル] ダイアログ ボックスの [ファイル名] ボックスに、ソース ファイルの名前を入力します。

  6. インポートするデータをどのようなテーブルに格納するかを指定します。

    • データを新規テーブルに格納する場合は、[現在のデータベースの新しいテーブルにソース データをインポートする] を選びます。後で、このテーブルに命名するよう求められます。

    • 既存のテーブルにデータを追加するには、[レコードのコピーを次のテーブルに追加する] を選んで、ドロップダウン リストからテーブルを選びます。

      注: リンク テーブルを作成してデータ ソースにリンクする手順については、この記事で後述する「テキスト ファイルにリンクする」セクションをご覧ください。

  7. [OK] をクリックします。

    ファイルの内容がスキャンされて、ファイルの編成方法の推奨が表示されます。ファイルでフィールドを分割するのに区切り文字が使われている場合は、[区切り記号付き] オプションを選択します。固定幅フィールドの場合は、[固定長] オプションを選択します。ファイルが固定幅フィールドか区切りフィールドかはっきりしない場合は、前の「ソース ファイルを準備する」セクションをご覧ください。

    注: ソース テキスト ファイルにタブまたはその他の特殊文字が含まれる場合、テキスト インポート ウィザードではデータ列の間の小さいボックスとして表されます。

  8. [次へ] をクリックします。

    ウィザードに表示される情報は、[区切り記号付き] オプションまたは [固定長] オプションのどちらを選択したかにより異なります。

    区切り記号付き

    フィールド値を区切る文字を選択または指定します (タブ、セミコロン、コンマ、スペース、その他)。ファイルでテキスト区切り記号が使われている場合は、[テキスト区切り記号] ボックスで、二重引用符 (") または単一引用符 (') を選択します。ソース ファイルの最初の行にフィールド名が含まれている場合は、[先頭行をフィールド名として使う] チェック ボックスをオンにします。[次へ] をクリックします。

    固定長

    ウィザードにはファイルの内容が表示されます。Access がデータの列構造を検出した場合は、フィールドを分割する垂直線がデータに表示されます。ウィザードが提案した構造を確認し、必要な場合は、ウィザードのページの指示に従って線を追加、削除、または調整します。[次へ] をクリックします。

  9. データの追加を選択する場合は、手順 13 に進みます。新しいテーブルにデータをインポートする場合は、[次へ] をクリックします。この時点で、ウィザードに表示されるフィールドのプロパティを確認する必要があります。

    注: 既存のテーブルにレコードを追加する場合は、インポートしているフィールドの情報を指定できるウィザードのページは表示されません。

  10. ウィザード ページの下部で列をクリックすると、対応するフィールドのプロパティが表示されます。インポート先のフィールドの名前とデータ型を確認し、必要に応じて変更します。

    Access は、各列の最初の 25 行を確認し、対応するフィールドの既定のデータ型の候補を示します。列の最初の 25 行に異なるデータ型が含まれる場合 (テキスト型と数値型など)、列のすべてまたはほとんどの値と互換性のあるデータ型 (通常、テキスト型) の候補が示されます。別のデータ型を選択することもできますが、選んだデータ型と互換性のない値は、無視されるか誤って変換されることに注意してください。存在しない値や誤った値を修正する方法の詳細については、この記事で後述する「インポートしたテーブルでの存在しない値または正しくない値のトラブルシューティング」セクションをご覧ください。

  11. フィールドにインデックスを作成する場合は、[インデックス] を [はい] に設定します。特定のソース列を完全にスキップする場合は、[このフィールドをインポートしない] チェック ボックスをオンにします。[次へ] をクリックします。

  12. 新しいテーブルにレコードを追加していると、テーブルの主キーの指定を求められます。[主キーを自動的に設定する] を選ぶと、自動的にオートナンバー型フィールドがインポート先テーブルの最初のフィールドとして追加され、1 から始まる一意の ID が入力されます。[次へ] をクリックします。

    注: 既存のテーブルにレコードを追加する場合は、インポートしているフィールドの情報を指定できるウィザードのページは表示されません。

  13. ウィザードの最後のページが表示されます。新しいテーブルにレコードをインポートしている場合は、インポート先テーブルの名前を指定します。[インポート先のテーブル] ボックスに、テーブルの名前を入力します。テーブルが既に存在する場合は、テーブルの既存内容を上書きするかどうかの確認を求められます。続行する場合は [はい]、インポート先テーブルに別の名前を指定する場合は [いいえ] をクリックします。

    [詳細設定] ボタンの用途

    テキスト インポート ウィザードの [詳細設定] ボタンを使うと、以前のバージョンの Access で使われていた形式でインポート定義を作成または表示できます。古いバージョンの Access (Access 2007 より前) のインポート定義を使っていない場合は、[詳細設定] ボタンを使わないことをお勧めします。代わりに、このインポート操作の詳細を保存したい場合は、次のセクションで詳しく説明します。

  14. [完了] をクリックしてデータをインポートします。

    Access はデータをインポートしようとします。いずれかのデータがインポートされると、インポート操作の状態を示すダイアログ ボックスが表示されます。逆に、操作が完全に失敗すると、"ファイルをインポートするときにエラーが発生しました。" というエラー メッセージが表示されます。

  15. データシート ビューでインポート先のテーブルを開きます。テーブルのデータをソース ファイルと比較し、データが正しく表示されることを確認します。

インポートに関して知っておく必要があること

インポートしたテーブルでの存在しない値または正しくない値のトラブルシューティング

"ファイルをインポートするときにエラーが発生しました" というメッセージが表示された場合、インポート操作は完全に失敗しています。代わりに、操作の詳細を保存するよう求めるページが表示された場合は、データの全部か一部が正常にインポートされています。状態メッセージには、インポート操作中に発生したすべてのエラーの説明を含むエラー ログ テーブルの名前も示されます。

状態メッセージに操作が成功したことが示された場合でも、テーブルを使い始める前にテーブルの内容と構造を表示し、それらが正しいことを確認することが重要です。

すべてのデータがテーブルに正常に追加されたかどうかを確認するには、データシート ビューでインポート先のテーブルを開きます。データ型などのフィールド プロパティ設定を確認する場合は、デザイン ビューでテーブルを開く必要があります。

次の表に、不足している値や誤った値を修正するための手順を示します。

ヒント: トラブルシューティングの間に、いくつかの値が不足していることが判明した場合は、データシート ビューでテーブルに直接追加できます。一方、列全体や大量の値が不足しているか正しくインポートされていないことが判明した場合は、ソース ファイルで問題を修正します。判明した問題をすべて修正した後、インポート操作を再実行してください。

問題

解決法

-1 または 0 値

ソース ファイルに、True/False 値または Yes/No 値のみが格納されているフィールドが含まれており、そのフィールドのデータ型として Yes/No を選択した場合、テーブルには -10 が表示されます。 この場合は、テーブルをデザイン ビューで開き、"書式" プロパティを "True/False" または "Yes/No" に設定します。

複数値を持つフィールド

1 つのフィールドに複数の値をインポートすることはできません。値のリストは、1 つの値として扱われ、セミコロンで区切られてテキスト フィールドに取り込まれます。

データが切り捨てられる

列のデータが切り捨てられている場合は、データシート ビューで列の幅を増やしてみます。幅を増やしても問題が解決しない場合は、データ型を倍精度浮動小数点型に設定する必要のある数値フィールドが、長整数型に設定されている可能性があります。

主キーまたはインデックス フィールドのデータが存在しない

インポートするレコードに、Access データベースでインポート先テーブルの主キー フィールドや、"インデックス" プロパティが [はい (重複なし)] に設定されているフィールドには格納されない重複値が含まれています。ソース ファイルで重複値を排除して、インポートをやり直します。

Null 値

データシート ビューでテーブルを開くと、一部のフィールドが空白になっている場合があります。 この場合、次の操作を行って、テーブル内の Null 値の数を最少化または排除します。

  • インポート元の最初の 25 行に異なるデータ型が混在している場合は、そのソース ファイルを開いて行を移動するなどして、各フィールドの最初の 25 行に異なるデータ型が混在しないようにします。次に、インポートをやり直します。

  • テキスト値として格納する、テキスト以外の値を、すべて単一引用符または二重引用符で囲みます。

  • インポート操作を行うとき、フィールドごとに適切なデータ型を選択します。 データ型が正しくないと、列全体に Null 値または不適切な値が格納される場合があります。

また、データシート ビューで、ウィザードの最終ページのエラー ログ テーブルを確認します。このテーブルには、[エラー]、[フィールド]、[行] の 3 つのフィールドがあります。各行には特定のエラーについての情報が表示され、[エラー] フィールドの内容は問題のトラブルシューティングに役立ちます。

エラー文字列とトラブルシューティングのヒントの完全な一覧

エラー

説明

「フィールドの切り捨て」

ファイルの値が、このフィールドの "フィールドサイズ" プロパティ設定には大きすぎます。

「データ型の変換エラー」

テキスト ファイルまたはワークシートの値が、このフィールドのデータ型に対して正しくありません。値が存在しないかインポート先フィールドでは誤っている可能性があります。この問題のトラブルシューティングを行う方法の詳細については、前の表をご覧ください。

「キー違反」

このレコードの主キー値は重複していて、既にテーブルに存在しています。

「入力規則エラー」

値が、このフィールドかテーブルの "ValidationRule/入力規則" プロパティを使って設定された規則に違反しています。

「必須フィールドに Null 値をインポートしようとしました」

このフィールドの "必須" プロパティが "はい" に設定されているため、このフィールドでは Null 値は許可されません。

「オートナンバー型フィールドに Null 値を追加しようとしました」

[オートナンバー型] フィールドに追加しようとしたインポート元データに、Null 値が含まれています。

「解析不能なレコード」

テキスト型の値がテキストの区切り記号 (通常、引用符 (")) で囲まれています。値を区切り記号で囲む場合は、次の例のようにテキスト ファイル内で区切り記号を 2 回繰り返してください。

10 - 3 1/2"" ディスク/ボックス

ページの先頭へ

テキスト ファイルにリンクする

データをインポートしないで別のファイルのデータに接続するには、リンクを使います。リンクを使うと、Access でコピーを作成して保持しなくても、元のプログラムと Access ファイルの両方で、最新のデータを確認することができます。テキスト ファイルの内容を Access データベースにコピーしたくないが、クエリを実行してそのデータに基づくレポートを作成したい場合は、テキスト ファイルをインポートするのではなく、テキスト ファイルにリンクする必要があります。

テキスト ファイルにリンクすると、ソース ファイルにリンクされた新しいテーブルが作成されます。ソース ファイルに行った変更はリンクされたテーブルに反映されますが、対応するテーブルの内容を Access で編集することはできません。データの内容や構造を変更する場合は、ソース ファイルを開いてそれを変更する必要があります。

Access からテキスト ファイルにリンクする一般的なシナリオ

  • テキスト形式でデータを出力するプログラムを使っていますが、そのデータを使って、Access を含む複数のアプリケーションで詳細な分析とレポートの作成を行います。

  • 処理するデータが、別の部署やワークグループで保持されています。最新のデータを見る必要がありますが、独自のコピーの編集や保持は必要ありません。

初めてテキスト ファイルにリンクする場合

  • テキスト ファイルにリンクすると、新しいテーブル (通称: リンク テーブル) が作成されます。リンク テーブルにはソース ファイルのデータが表示されますが、データベースにデータが実際に保存されることはありません。

  • テキスト ファイルをデータベースの既存テーブルにリンクすることはできません。つまり、リンク操作を実行することでデータを既存テーブルに追加することはできません。

  • データベースには、複数のリンク テーブルを格納できます。

  • ソース ファイルを変更した場合、変更内容がリンク テーブルにも自動的に反映されます。ただし、Access 内のリンク テーブルの内容と構造は読み取り専用です。

  • Access でテキスト ファイルを開くと、空のデータベースが作成されて、テキスト リンク ウィザードが自動的に開始されます。

テキスト ファイルにリンクする手順

  1. テキスト ファイルを探し、Word やメモ帳などのワープロ プログラムで開きます。

    リンク操作中にリンクできるテキスト ファイルは一度に 1 つだけであることに注意してください。複数のテキスト ファイルにリンクするには、ファイルごとにリンク操作を繰り返します。

  2. ソース ファイルの内容を確認し、次の表で説明するアクションを実行します。

    要素

    説明

    区切りファイルまたは固定幅ファイル

    ファイルがいずれかの形式に一貫して従っていることを確認します。ファイルが区切り形式の場合は、区切り文字を確認します。ファイルが固定幅フィールドの場合は、すべてのレコードで各フィールドが同じ幅であることを確認します。

    テキスト区切り記号

    区切りファイルでは、次のように、単一引用符または二重引用符で囲まれたフィールド値が含まれることがあります。

    "金子 由佳里",25,2017/4/5,"東京都"

    "早川 諭",27,2018,"大阪府"

    フィールド値を囲む文字は、テキスト区切り記号と呼ばれます。テキスト区切り記号は必須ではありませんが、次のいずれかの場合は必要です。

    • フィールド区切り記号がフィールド値の一部として使われている場合。たとえば、フィールド区切り記号にコンマが使われ、東京都, 大阪府 が有効なフィールド値である場合、"東京都, 大阪府" のように 1 組のテキスト区切り記号で値を囲む必要があります。

    • 04529340034539 などのテキスト以外の値が Access でテキスト値として扱われ、テキスト フィールドに格納されるようにする場合。

    リンク操作では、ファイルでテキスト区切り記号が使われているかどうかを指定でき、使われている場合はその文字を指定できます。

    ファイル全体で同じテキスト区切り記号が使われていて、テキスト値のみがテキスト区切り記号のペアで含まれていることを確認します。

    フィールドの数

    ソース フィールドの数は 255 以内にする必要があります。Access はフィールドが 255 個を超えるテーブルをサポートできません。

    レコードとフィールドのスキップ

    特定のフィールドはスキップできますが、レコードをスキップすることはできません。

    空白の行とフィールド

    ファイル内のすべての不要な空白行を削除します。空白のフィールドがある場合は、ソース ファイルで不足しているデータを追加します。

    不要な文字

    不要なタブ、改行、復帰などが残っていないかを調べ、見つかったら削除します。

    データ型

    リンク時のエラーを防ぐため、すべての行で各ソース フィールドに同じ型のデータが含まれることを確認します。Access は、ファイルの最初の 25 行をスキャンして、テーブルのフィールドのデータ型を決定します。ソースの最初の 25 行については、どのフィールドにも異なるデータ型を混在させないようにすることを強くお勧めします。また、テキスト値として扱う必要のある非テキスト値を、単一引用符または二重引用符で囲む必要があります。

    ソース ファイルの 25 行目より後に異なるデータ型の値が混在する場合、インポート操作でエラー値が表示されたり不適切に変換されたりする可能性があります。トラブルシューティングについては、この記事で後述する「リンク テーブルでの #Num! および正しくない値のトラブルシューティング」セクションをご覧ください。

    フィールド名

    区切りテキスト ファイルでは、ファイルにフィールドの名前が含まれていない場合、1 行目にフィールド名を配置することをお勧めします。リンク時に、1 行目の値をフィールド名として扱うように指定できます。ただし、固定幅のテキスト ファイルをインポートするときは、1 行目の値をフィールド名として処理するオプションはありません。

  3. リンク元のファイルが開いている場合は、それを閉じます。

  4. リンクを作成するデータベースを開きます。データベースが読み取り専用でないことと、データベースを変更するために必要とされる権限があることを確認します。

    既存データベースにリンクを格納しない場合は、新しい空のデータベースを作成してください。

  5. テキスト インポート ウィザードやテキスト リンク ウィザードの場所は、Access のバージョンによって若干異なります。Access のバージョンに対応した手順を選択してください。

    • Access の最新の Office 365 サブスクリプション バージョンを使っている場合は、[外部データ] タブの [インポートとリンク] グループで、[新しいデータ ソース]、[ファイルから]、[テキスト ファイル] の順にクリックします。

    • Access 2016、Access 2013、または Access 2010 を使っている場合は、[外部データ] タブの [インポートとリンク] グループで、[テキスト ファイル] をクリックします。

    • Access 2007 を使っている場合は、[外部データ] タブの [インポート] グループで、[テキスト ファイル] をクリックします。

  6. [外部データの取り込み - テキスト ファイル] ダイアログ ボックスが開きます。

    テキスト ファイルのインポート、追加、またはリンクを選択します。

  7. [外部データの取り込み - テキスト ファイル] ダイアログ ボックスの [ファイル名] ボックスで、リンクするデータを含むテキスト ファイルの名前を指定します。

  8. [リンク テーブルを作成してソース データにリンクする] を選び、[OK] をクリックします。

    テキスト リンク ウィザードが開始します。このウィザードでは、リンク プロセスの手順が示されます。

  9. ファイルの内容がスキャンされて、ファイルの編成方法の提案が表示されます。ファイルでフィールドを分割するのに区切り文字が使われている場合は、[区切り記号付き] オプションを選択する必要があります。固定幅フィールドの場合は、[固定長] オプションを選択します。

  10. [次へ] をクリックします。

  11. 次に表示されるウィザードのページは、区切り記号付きオプションまたは固定長オプションのどちらを選択したかにより異なります。

    区切りファイル    フィールド値を区切る文字を選択または指定します。ファイルでテキスト区切り記号が使われている場合は、[テキスト区切り記号] ボックスで、" または ' を選びます。ソース ファイルの最初の行にフィールド名が含まれている場合は、[先頭行をフィールド名として使う] チェック ボックスをオンにします。[次へ] をクリックします。

    固定幅ファイル    ファイルの内容が表示されます。Access がデータの列構造を検出した場合は、フィールドを分割する垂直線がデータに表示されます。ウィザードが提案した構造を確認し、必要な場合は、ウィザードのページの指示に従って線を追加、削除、または調整します。[次へ] をクリックします。

  12. ウィザードの次のページには、フィールドのプロパティが表示されます。ウィザード ページの下部で列をクリックすると、対応するフィールドのプロパティが表示されます。インポート先のフィールドの名前とデータ型を確認し、必要に応じて変更します。

    Access は、各列の最初の 25 行を確認し、対応するフィールドの既定のデータ型の候補を示します。列の最初の 25 行に異なるデータ型が含まれる場合 (テキスト型と数値型など)、列のすべてまたはほとんどの値と互換性のあるデータ型の候補が示されます。通常は、テキスト データ型です。別のデータ型を選択することもできますが、選んだデータ型と互換性のない値は、エラー値になるか、誤って変換されることに注意してください。詳細については、次の「リンク テーブルでの #Num! および正しくない値のトラブルシューティング」セクションをご覧ください。

    [詳細設定] ボタンの用途

    テキスト インポート ウィザードの [詳細設定] ボタンを使うと、以前のバージョンの Access で使われていた形式でリンク定義を作成または表示できます。インポートおよびエクスポート操作とは異なり、リンク定義を保存する手段はないので、リンク定義の詳細を保存する場合は、[詳細設定] ボタンをクリックし、目的のオプションを設定して、[名前を付けて保存] をクリックします。

  13. [次へ] をクリックします。

  14. ウィザードの最後のページで、リンク テーブルの名前を指定して、[完了] をクリックします。指定した名前のテーブルが既に存在する場合は、既存のテーブルを上書きするかどうかの確認を求められます。上書きする場合は [はい] をクリックし、別のテーブル名を指定する場合は [いいえ] をクリックします。

    Access はリンク テーブルを作成しようとします。テーブルが正常に作成されると、"テーブルをリンクしました" というメッセージが表示されます。リンク テーブルを開き、フィールドとデータを表示して、すべてのフィールドのデータが正しいことを確認します。

ページの先頭へ

リンク テーブルでの #Num! および正しくない値のトラブルシューティング

"テーブルをリンクしました" というメッセージが表示された場合でも、データシート ビューでテーブルを開いて、すべての行と列に正しいデータが表示されていることを確認する必要があります。

テーブルにエラーや誤ったデータが表示されている場合は、次の表に示された修正アクションを実行し、リンクをやり直します。リンク テーブルは読み取り専用のため、テーブルに値を直接追加することはできないことに注意してください。

問題

解決法

-1 または 0 値

ソース ファイルに、True/False 値または Yes/No 値のみが格納されているフィールドが含まれており、そのフィールドのデータ型として Yes/No を選択した場合、テーブルには -1 または 0 が表示されます。この場合は、テーブルをデザイン ビューで開き、"書式" プロパティを "True/False" または "Yes/No" に設定します。

複数値を持つフィールド

データをリンクするとき、1 つのフィールドで複数の値をリンクすることはできません。値のリストは、1 つの値として扱われ、セミコロンで区切られてテキスト フィールドに取り込まれます。

データが切り捨てられる

列のデータが切り捨てられている場合は、データシート ビューで列の幅を増やしてみます。幅を増やしても問題が解決しない場合は、データ型を倍精度浮動小数点型に設定する必要のある数値フィールドが、長整数型に設定されている可能性があります。

#Num!

データシート ビューでテーブルを開くと、フィールドに実際の値ではなく #Num! と表示される場合があります。この場合、次の操作を行って、ソース ファイル内の Null 値のインスタンスを最少化または排除します。

  • テキスト値として格納するテキスト以外の値をすべて、単一引用符または二重引用符で囲みます。

  • リンク操作を行うとき、フィールドごとに適切なデータ型を選びます。データ型が正しくないと、全行の列全体に #Num! 値のみが格納される可能性があります。

次の表では、フィールドに #Num! エラーが表示される場合を示します。

不足している値のデータ型

リンク先フィールドのデータ型

対処

テキスト

数値型または日付型

すべてのテキスト型の値をリンク先フィールドのデータ型に一致する値に置き換え、リンクをやり直します。

日付

数値

すべての日付型の値を数値型の値に置き換え、リンクをやり直します。

数値

日付

すべての数値型の値を日付型の値に置き換え、リンクをやり直します。

ページの先頭へ

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×