テキスト ファイルのデータのインポートとリンクの設定

テキスト ファイルのデータは Microsoft Office Access 2007 に 2 つの方法で取り込むことができます。たとえば、テキスト インポート ウィザードを使用して、ファイルを新規または既存のテーブルにインポートすると、取り込んだデータを Access で編集することができます。また、テキスト リンク ウィザードを使用してデータベース内にテキスト ファイルへのリンクを作成すると、Access に最新のデータを表示して Access の強力なクエリ機能やレポート作成機能を使用することができます。

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

この記事の内容


テキスト ファイルとサポートしている書式について

テキスト ファイルには、文字や数字などの書式が設定されていない可読文字と、TAB、LF、CR などの特殊文字が含まれています。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,Ludick,Purchasing Rep
13,Company N,Carlos,Grilo,Purchasing Rep
  • 固定長ファイル     1 つのレコードが 1 つの行に対応し、各フィールドの長さがすべてのレコードで一定です。たとえば、各レコードの最初のフィールドはすべて 7 文字、その次のフィールドはすべて 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      Ludick         Purchasing Rep   
13  Company N   Carlos     Grilo          Purchasing Rep   

ページの先頭へ ページの先頭へ

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

Access データベースにテキスト ファイルの一部または全部を格納するのが目的であれば、テキスト ファイルの内容を新規テーブルにインポートするか、既存テーブルに追加することをお勧めします。データをインポートした場合は、そのデータを表示して編集を加えることができます。そして、その編集により元のテキスト ファイルになんらかの影響が及ぶことはありません。

インポート時に、ソース ファイルの編成方法を指定し、新規テーブを作成するか既存テーブルに追加するかを選択することができます。

 ヒント   テーブルやデータベースの構造に慣れていない方は、「データベースのテーブルを作成する」または「データベース設計の基本」を参照してください。

インポート操作が終了したら、そのインポート操作の詳細を定義として保存することを選択できます。インポート定義を保存しておくと、同じインポート操作を繰り返す場合に、最初からテキスト インポート ウィザードの手順を追わなくても済みます。

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

通常、テキスト データを Access にインポートするのは、以下の理由からです。

  • データの一部に Access が認識できない書式が使用されている状態で、そのデータを既存のデータベースの 1 つで使用したい場合。その場合、まず、ソース データをテキスト ファイルとしてエクスポートし、次に、そのテキスト ファイルの内容を Access テーブルにインポートします。
  • Access を使用してデータを管理しているが、別のプログラムのユーザーからテキスト形式のデータを受け取る機会が多い場合。定期的にデータをインポートしていますが、インポートのプロセスを効率化して時間と労力を節約したいと考えています。

 メモ   テキスト ファイルを Access で開くと (ボタン イメージ (Microsoft Office ボタン) をクリックし、[開く] をクリックして、[ファイルを開く] ダイアログ ボックスの [ファイルの種類] ボックスの一覧を [すべてのファイル] に変更し、目的のテキスト ファイルを選択)、Access によってテキスト リンク ウィザードが起動され、その内容をインポートせずに、テキスト ファイルへのリンクを作成できます。ファイルにリンクすることと、ファイルの内容をインポートすることは根本的に異なります。リンクの詳細については、この記事の「テキスト ファイルにリンクする」を参照してください。

ソース ファイルの準備を整える

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

 メモ   1 回の操作でインポートできるファイルの数は 1 つだけです。複数のファイルをインポートするには、ファイルの数だけインポート操作を繰り返す必要があります。

  1. ソース ファイルの内容を調べ、この表の説明に従って必要な処理を行います。
要素 説明
区切り文字付きまたは固定長 ファイル全体が 1 つの書式に従っているかを確認します。区切り文字付きファイルについては、区切り文字を確認します。固定長ファイルについては、各フィールドの長さがすべてのレコードで一定であることを確認します。
テキスト区切り記号

区切り文字付きファイルの中には、以下に示すように、フィールドの値が単一引用符または二重引用符で囲まれているものがあります。

  • "Pernille Halberg",25,4/5/2006,"New York"
  • "Daniel Brunner",27,2000,"Chicago"

フィールド値を囲っている文字のことをテキスト区切り記号といいます。テキスト区切り記号は必須ではありませんが、以下のいずれかに当てはまる場合は、テキスト区切り記号で囲む必要があります。

  • フィールド区切り文字が、フィールド値の中でも使用されていることがあります。たとえば、コンマがフィールド区切り文字として使用されていて、New York, Chicago が有効なフィールド値である場合は、"New York, Chicago" という具合にテキスト区切り記号で囲む必要があります。
  • 04529340034539 などの非テキスト値をテキスト値として扱い、テキスト フィールドに格納する場合も、テキスト区切り記号で囲む必要があります。

インポート時に、そのファイルでテキスト区切り記号が使用されているかどうかを指定することができます。実際にテキスト区切り記号が使用されている場合は、その文字を指定します。

ファイル全体を通じて同じテキスト区切り記号が使用されている必要があり、またテキスト値のみが区切り記号で囲まれている必要があります。

フィールドの数 ソース フィールドの数は 255 を超えることはできません。Access では 1 つのテーブルのフィールド数が最大 255 に限られています。
レコードと値の除外

テキスト ファイルの一部のみをインストールするには、ソース ファイルを編集してから、インポート操作を開始します。インポート時に特定のレコードを除外することはできません。

新規テーブルにデータをインポートする場合は、特定のフィールドを除外することができますが、既存テーブルにデータを追加する場合は、特定のフィールドを除外することはできません。既存テーブルにデータを追加する場合は、ソース データの構造が追加先テーブルの構造と一致している必要があります。つまり、ソース データと追加先テーブルの間で、列の数とデータ型がそれぞれ一致している必要があります。

空白の行とフィールド ファイル内の不要な空白行はすべて削除します。空白のフィールドが見つかった場合は、正しい値を入力してください。空白のフィールドを残したまま既存テーブルにレコードを追加する場合は、テーブル内の対応するフィールドが Null 値を許容する設定になっていることを確認してください。フィールドは、その "Required/値要求" フィールド プロパティが "いいえ" に設定され、"ValidationRule/入力規則" プロパティが Null 値を許可する設定になっていれば、Null 値を許容します。
不要な文字 不要な TAB、LF、CR などが残っていないかを調べ、見つかったら削除します。
データ型

インポートでエラーが発生しないよう、1 つのソース フィールドのすべての行に同じ型のデータが格納されていることを確認します。Access では、ファイルの最初の 25 行を調べてテーブル内のフィールドのデータ型を推定します。すべてのフィールドについて、最初の 25 行には異なるデータ型を混在させないように強くお勧めします。さらに、テキスト値として扱うべき非テキスト値については、単一引用符または二重引用符で囲まれていることを確認してください。

ソース ファイルの 26 行目以降に異なるデータ型が混在している場合、それらの値はスキップされるか、不適切に変換される可能性があります。トラブルシューティング情報については、この記事の「インポートしたテーブルに含まれる存在しない値または不適切な値のトラブルシューティング」を参照してください。

フィールド名

区切り文字付きテキスト ファイルについては、フィールド名が含まれているかどうかを確認します。含まれていない場合は、最初の行に追加することをお勧めします。インポート時に、最初の行の値がフィールド名として処理されるよう、Access で指定することができます。固定長のテキスト ファイルをインポートする場合は、最初の行の値がフィールド名として処理されるように指定することはできません。

 メモ   区切り文字付きテキスト ファイルを既存テーブルに追加する場合は、各列の名前と対応するフィールドの名前が完全に一致していることを確認してください。列名とテーブルのフィールド名に相違があると、インポートは失敗します。フィールド名を確認するには、インポート先のテーブルをデザイン ビューで開きます。

  1. ソース ファイルを閉じます。これが開いたままだと、インポート中にデータ変換エラーが発生する可能性があります。

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

  1. インポート先の Access データベースを開きます。

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

表示空のデータベースを作成する

ボタン イメージ (Microsoft Office ボタン) をクリックし、[新規作成] をクリックします。

  1. インポート操作を開始する前に、まず、データを新規テーブルと既存テーブルのどちらに追加するのかを指定します。
    • 新規テーブルに格納する     新規テーブルへの格納を選択した場合は、Access によりテーブルが作成され、そこへインポート データが追加されます。なお、指定した名前が既存テーブルと重複していると、既存テーブルがインポート データで上書きされるので注意が必要です。
    • 既存テーブルに追加する     データを既存のテーブルに追加する場合、インポート プロセスによってデータが指定されたテーブルに追加されます。

既存テーブルへの追加が失敗するのは、ほとんどの場合、ソース データとインポート先テーブルの構造やフィールド設定が一致していないのが原因です。これを避けるため、テーブルをデザイン ビューで開き、以下の項目を確認してください。

  • 最初の行     インポート元のテキスト ファイルにフィールド名が含まれていない場合、各列の位置とデータ型がテーブル内の対応するフィールドと一致している必要があります。区切り文字付きテキスト ファイルについては、最初の行に列見出しが含まれている場合は、列とフィールドの位置は一致していなくてもかまいませんが、列の名前とデータ型は対応するフィールドと完全に一致している必要があります。固定長テキスト ファイルについては、最初の行の値がフィールド名として処理されるように指定することはできません。
  • 存在しないフィールドまたは不要なフィールド     インポート先のテーブルのフィールドが足りない場合は、インポート操作を開始する前に追加しておく必要があります。一方、インポート元にはないフィールドがインポート先のテーブルにある場合、それらのフィールドが Null 値を許容する設定になっていれば、あえて削除する必要はありません。

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

  • 主キー     テーブルに主キー フィールドがある場合、そのフィールドに対応する列がソース ファイルにも必要です。さらに、その列の中の値はすべて一意である必要があります。インポート先テーブルの既存の主キー値と同じ値がインポート元レコードにあると、インポート中にエラー メッセージが表示されます。一意なキー値を格納するようにソース データを編集してから、インポート操作を再度開始する必要があります。
  • インデックスが設定されたフィールド     テーブルのフィールドの "Indexed/インデックス" プロパティが "Yes (No Duplicates)/はい (指定なし)" に設定されている場合、ソース テキスト ファイルの対応する列には一意の値が格納されている必要があります。
  1. [外部データ] タブの [インポート] で [テキスト ファイル] をクリックします。ボタン イメージ

 メモ   [インポート] コマンドは、データベースを開いている場合にだけ使用できます。

  1. [外部データの取り込み - テキスト ファイル] ダイアログ ボックスの [ファイル名] ボックスに、ソース ファイルの名前を入力します。
  2. インポートしたデータの格納方法を指定します。
    • 新規テーブルにデータを格納するには、[カレント データベースの新しいテーブルにソース データをインポートする] を選択します。このテーブルの名前は後で指定します。
    • 既存テーブルにデータを追加するには、[レコードのコピーを次のテーブルに追加する] をクリックしてから、ドロップダウン リストでインポート先テーブルを選択します。

 メモ   リンク テーブルを作成してデータ ソースにリンクする方法については、この記事の「テキスト ファイルにリンクする」を参照してください。

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

Access によりファイルの内容がスキャンされ、そのファイルの編成が推定されます。区切り文字を使用してフィールドを区切っているファイルについては、[区切り記号付き] が選択されていることを確認します。フィールドの長さが固定されているファイルについては、[固定長] が選択されていることを確認します。区切り文字付きファイルなのか固定長ファイルなのか、はっきりわからない場合は、前述の「ソース ファイルの準備を整える」を参照してください。

 メモ   ソース テキスト ファイルに TAB などの特殊文字が含まれている場合、これらの文字はテキスト インポート ウィザードでは、データ列間の小さなボックスとして表示されます。

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

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

表示区切り記号付き

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

表示固定長

ウィザードにはファイルの内容が表示されます。データ内にコラム構造が識別された場合は、データ間に垂直線が引かれ、フィールドが区切られます。ウィザードに示されたこの構造を調べ、必要に応じて、ウィザード画面の指示に従って垂直線を追加、移動または調節してください。[次へ] をクリックします。

  1. データを既存テーブルに追加する場合は、手順 12. に直接進みます。新規テーブルにインポートする場合は、[次へ] をクリックします。この時点で、ウィザードに表示されるフィールド プロパティを確認します。

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

  1. 列を (ウィザード ページの下半分の部分で) クリックして、対応するフィールドのプロパティを表示します。プロパティを確認し、必要であれば、インポート先フィールドの名前とデータ型を修正します。

Access では、各列の最初の 25 行が調べられ、対応するフィールドのデータ型が推定されます。列の最初の 25 行に異なる型の値 (テキストと数値など) が混在している場合は、その列のすべての値に適合するデータ型 (通常、テキスト) が推定されます。別のデータ型に変更することもできますが、そのデータ型に適合しない値については、インポート処理中に無視されるか不適切な値に変換されるので注意が必要です。存在しない値または不適切な値の修正方法については、この記事の「インポートしたテーブルに含まれる存在しない値または不適切な値のトラブルシューティング」を参照してください。

  1. フィールドにインデックスを作成するには、[インデックス] を [はい] に設定します。インポート元の列を完全にスキップするには、[このフィールドをインポートしない] チェック ボックスをオンにして、[次へ] をクリックします。
  2. レコードを新規テーブルに追加する場合は、テーブルの主キーを指定するように指示されます。[主キーを自動的に設定する] を選択すると、インポート先テーブルの最初のフィールドとしてオートナンバー フィールドが追加され、一意の ID (1 から開始) が自動的に生成されて格納されます。[次へ] をクリックします。

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

  1. ウィザードの最後の画面が表示されます。レコードを新規テーブルに追加する場合、インポート先テーブルの名前を [インポート先のテーブル] ボックスに入力します。既存テーブルと重複する名前を入力した場合は、既存テーブルを上書きするかどうかの確認を求められます。そのまま続行するには [はい] を、別の名前に変更するには [いいえ] をクリックします。

表示[詳細] ボタンの用途

テキスト インポート ウィザードの [詳細] ボタンを使用すると、古いバージョンの Access で使用されていた書式のインポート定義を作成または開くことができます。古い書式のインポート書式を Office Access 2007 で使用する必要がないのであれば、この [詳細] ボタンは使用しないことをお勧めします。インポート操作の詳細を保存する必要があるのであれば、以下の手順 13. ~ 20. を実行することをお勧めします。古いバージョンの Access で作成されたインポート定義には、Office Access 2007 のインポート書式との互換性がありません。


  1. [完了] をクリックしてインポート操作を開始します。

データがインポートされます。データが一部でもインポートされている場合は、ダイアログ ボックスにインポート状況が表示されます。逆に、インポートが完全に失敗した場合は、"ファイルをインポートするときにエラーが発生しました" という内容のエラー メッセージが表示されます。

  1. インポート先テーブルをデータシート ビューで開きます。そのデータをソース ファイルと比較して、データに問題がないかを確認します。

インポート設定を定義として保存する

  1. テキスト インポート ウィザードの最後のページの [インポート手順の保存] チェック ボックスをオンにします。

一連の追加コントロールが表示されます。

  1. [名前を付けて保存] ボックスにインポート定義の名前を入力します。
  2. オプションで [説明] ボックスに説明を入力することもできます。
  3. [インポートの保存] をクリックします。

または

固定した間隔 (毎週や毎月など) でインポート操作を実行するには、[Outlook 仕事の作成] チェック ボックスをオンにしてから、[インポートの保存] をクリックします。この操作により、後で定義を実行できるようにする Microsoft Office Outlook 2007 の仕事が作成されます。

Office Outlook 2007 の仕事を作成しない場合、Access によって定義が保存されます。Outlook の仕事を作成することを選択した場合は、[インポート-<ソース ファイルの名前> - 仕事] ダイアログ ボックスが表示されます。このダイアログ ボックスの使用方法については、次の手順を参照してください。

 メモ   Outlook がインストールされていない場合は、[インポートの保存] をクリックすると、Access でエラー メッセージが表示されます。Outlook が正しく設定されていない場合は、Outlook Configuration Wizardが開始されます。ウィザードの指示に従って Outlook を設定します。

Outlook の仕事を作成する

  1. Outlook の [インポート-<ソース ファイルの名前> - 仕事] ダイアログ ボックスで、[期限] や [アラーム] などの仕事の設定を確認して修正します。

仕事を定期的に実行するには [定期的なアイテム] をクリックします。次の図は、典型的な設定のタスク スケジューラを示します。

Outlook のタスク スケジューラ

Outlook の仕事のスケジュールを設定する方法の詳細については、「インポート操作やエクスポート操作のスケジュールを設定する」を参照してください。

  1. [保存して閉じる] をクリックします。

保存した仕事を実行する

  1. Outlook のナビゲーション ウィンドウで、[仕事] をクリックし、実行する仕事をダブルクリックします。
  2. [仕事] タブの [Microsoft Office Access] で ボタン イメージ (インポートの実行) をクリックします。
  3. テーブルを開き、その内容を確認します。

見当たらない値または誤っている値のトラブルシューティングのヘルプについては、次のセクションを参照してください。

ページの先頭へ ページの先頭へ

インポートしたテーブルに含まれる存在しない値または不適切な値のトラブルシューティング

"ファイルをインポートするときにエラーが発生しました" という内容のメッセージが表示された場合は、インポート操作が完全に失敗しています。逆に、インポート操作の詳細を保存するように要求する画面が表示された場合は、データの全部または一部のインポートに成功しています。ステータス メッセージには、インポート中に発生したエラーに関する情報が記録されているエラー ログ テーブルの名前も示されます。

ステータス メッセージに処理が正常に終了したことが示された場合でも、テーブルの内容と構造を調べ、異常がないことを確認したうえで、そのテーブルの運用を開始することをお勧めします。

インポート先のテーブルをデータシート ビューで開き、すべてのデータがテーブルに正常に追加されていることを確認します。次に、テーブルをデザイン ビューで開き、フィールドのデータ型やその他のプロパティを確認します。

存在しない値または不適切な値が見つかった場合は、以下の表に示す手順に従って修正してください。

 ヒント   トラブルシューティング中、存在しない値がいくつか見つかった場合は、データシート ビューでテーブルに直接追加してかまいません。一方、列全体または大量の値が存在しないこと、またはインポートされていないことがわかった場合は、インポート元のファイルで問題を解決することをお勧めします。確認したすべての問題を修正し終わったら、インポート操作をやり直します。

問題点 解決法
-1/0 値 ソース ファイルに、True/False 値または Yes/No 値しか格納されていないフィールドがあり、そのフィールドのデータ型として Yes/No を指定した場合、テーブルには -1/0 値が挿入されます。この場合は、テーブルをデザイン ビューで開き、"Format/書式" プロパティを "True/False" または "Yes/No" に変更します。
複数の値 1 つのフィールドに複数の値がインポートされることはありません。値のリストは 1 つの値として扱われ、セミコロンで区切られてテキスト フィールドに取り込まれます。
切り捨てられるデータ 切り捨てられて表示されるデータがある場合は、データシート ビューでその列の幅を広げます。幅を広げても問題が解決しない場合は、数値フィールドのデータ型が本来 "Double/倍精度浮動小数点型" と設定されるべきところが "Long Integer/長整数型" に設定されている可能性があります。
主キー値またはインデックス フィールドのデータが存在しない ソース レコードに重複している値がある場合、それらの値は、インポート先テーブルの主キー フィールドや、"Indexed/インデックス" プロパティが "Yes (No Duplicates)/はい (重複なし)" に設定されているフィールドには格納されません。ソース ファイルで重複を解決してから、インポート操作をやり直してください。
Null 値

テーブルをデータシート ビューで開いて、一部のフィールドが空白になっていることに気付いた場合は、以下の操作を行ってください。これで Null 値を目にする機会は格段に減るか、なくなります。

  • インポート元の最初の 25 行に異なるデータ型が混在している場合は、そのソース ファイルを開いて行を移動するなどして、各フィールドの最初の 25 行に異なるデータ型が混在しないようにします。そのうえで、インポート操作をやり直します。
  • テキスト値として処理する非テキスト値を、単一引用符または二重引用符で囲みます。
  • インポート時に、フィールドごとに適切なデータ型を選択します。データ型が間違っていると、列全体に Null 値または不適切な値が格納されることもあり得ます。

さらに、エラー ログ テーブル (ウィザードの最後の画面に示される) をデータシート ビューで調べることもお勧めします。このテーブルには、Error、Field、Row という 3 つのフィールドがあり、1 行が 1 つのエラーに関する情報を示します。このうち、問題のトラブルシューティングに役立つのが、Error フィールドの値です。

表示エラー情報とトラブルシューティングのヒント

エラー 説明
フィールドの切り捨て ファイルの値が、フィールドの "FieldSize/フィールドサイズ" プロパティの設定には大きすぎます。
データ型変換エラー テキスト ファイルまたはワークシートの値がフィールドのデータ型と適合しません。この値は、インポート先フィールドでは欠落するか、不適切な値として表示される可能性があります。この問題のトラブルシューティング方法については、前の表のエントリを参照してください。
キー違反 レコードの主キー値が重複しています。つまり、同じ主キー値が既にテーブルの中にあります。
入力規則エラー フィールドまたはテーブルに設定されている "ValidationRule/入力規則" プロパティの規則に違反する値です。
入力必須フィールドが Null 値 フィールドの "Required/値要求" プロパティが "はい" に設定されているため、このフィールドには Null 値を格納できません。
オートナンバー型フィールドが Null 値 オートナンバー型フィールドに追加するためにインポートしようとしているデータに Null 値が含まれています。
解析不能のレコード

テキストの値に、テキスト区切り文字 (通常はニ重引用符 (")) が含まれています。テキスト ファイルの中の区切り文字は、次のように必ず 2 つ重ねて指定します。

"10 - 3 1/2"" disks/box"


ページの先頭へ ページの先頭へ

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

Access ではインポート以外に、他のファイルのデータに接続 (リンク) することもできます。リンクした場合は、Access でコピーを作成することなく (当然、管理の必要もなく)、元のプログラムと Access ファイルの両方の最新データを参照できるという利点があります。テキスト ファイルの内容を Access データベースにコピーすることなく、クエリを実行してリンク データに基づいてレポートを作成できるようにしたいと考えているのであれば、テキスト ファイルをインポートするのではなくリンクしてください。

テキスト ファイルにリンクする場合、新規テーブルが作成されてソース テーブルにリンクされます。ソース ファイルに加えられた変更は、リンク テーブルにも反映されます。しかし、Access で対応するテーブルの内容を編集することはできません。データの内容および構造に修正を加える必要がある場合は、ソース ファイル作業対象にしてください。

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

  • データをテキスト形式で出力するプログラムを使用していますが、別のアプリケーションをいくつか使用して (Access もその 1 つ)、詳細分析やレポート作成などの機能を使用したいとします。
  • 複数の部署で管理されているデータを処理する必要があります。最新データを参照したいのですが、そのコピーを作成して自己の管理下に置くという手間は省きたいとします。

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

  • テキスト ファイルにリンクすると、Access により新規テーブルが作成されますが、このテーブルのことを通常、リンク テーブルといいます。このテーブルにはソース ファイルのデータが表示されますが、データベースに実際にデータが格納されるわけではありません。
  • テキスト ファイルをデータベース内の既存テーブルにリンクすることはできません。つまり、リンク操作によってデータを既存テーブルに追加することはできません。
  • 1 つのデータベースの中で複数のリンク テーブルを使用できます。
  • ソース ファイルに加えた変更は、リンク テーブルに自動的に反映されます。ただし、Access 側から見た場合、リンク テーブルは読み取り専用であり、その内容や構造に変更を加えることはできません。
  • テキスト ファイルを Access で開くと、空のデータベースが作成され、テキスト リンク ウィザードが自動的に起動します。

テキスト ファイルへのリンク手順

  1. テキスト ファイルを探し、それを Word やメモ帳などのエディタで開きます。

1 回のリンク操作でリンクできるのは、1 つのテキスト ファイルだけです。複数のテキスト ファイルにリンクするには、ファイルの数だけリンク操作を繰り返してください。

  1. ソース ファイルの内容を調べ、この表の説明に従って必要な処理を行います。
要素 説明
区切り文字付きまたは固定長 ファイル全体が 1 つの書式に従っているかを確認します。区切り文字付きファイルについては、区切り文字を確認します。固定長ファイルについては、各フィールドの長さがすべてのレコードで一定であることを確認します。
テキスト区切り記号

区切り文字付きファイルの中には、以下に示すように、フィールドの値が単一引用符または二重引用符で囲まれているものがあります。

"Pernille Halberg",25,4/5/2001,"New York"

"Daniel Brunner",27,2000,"Chicago"

フィールド値を囲っている文字のことをテキスト区切り記号といいます。テキスト区切り記号は必須ではありませんが、以下のような状況下ではテキスト区切り記号で囲む必要があります。

  • フィールド区切り文字が、フィールド値の中でも使用されている場合があります。たとえば、コンマがフィールド区切り文字として使用されていて、New York, Chicago が有効なフィールド値である場合は、"New York, Chicago" という具合にテキスト区切り記号で囲む必要があります。
  • 04529340034539 などの非テキスト値をテキスト値として扱い、テキスト フィールドに格納する場合も、テキスト区切り記号で囲む必要があります。

リンク時に、そのファイルでテキスト区切り記号が使用されているかどうかを指定することができます。実際にテキスト区切り記号が使用されている場合は、その文字を指定します。

ファイル全体を通じて同じテキスト区切り記号が使用されている必要があり、またテキスト値のみが区切り記号で囲まれている必要があります。

フィールドの数 ソース フィールドの数は 255 を超えることはできません。Access では 1 つのテーブルのフィールド数が最大 255 に限られています。
レコードとフィールドの除外 特定のフィールドは除外できますが、レコードは除外できません。
空白の行とフィールド ファイル内の不要な空白行はすべて削除します。空白のフィールドが見つかった場合は、ソース ファイルに正しい値を入力してください。
不要な文字 不要な TAB、LF、CR などが残っていないかを調べ、見つかったら削除します。
データ型

リンク時にエラーが発生しないよう、1 つのソース フィールドのすべての行に同じ型のデータが格納されていることを確認します。Access では、ファイルの最初の 25 行を調べてテーブル内のフィールドのデータ型を推定します。すべてのフィールドについて、最初の 25 行には異なるデータ型を混在させないように強くお勧めします。さらに、テキスト値として扱うべき非テキスト値については、単一引用符または二重引用符で囲まれていることを確認してください。

ソース ファイルの 26 行目以降に異なるデータ型が混在している場合、それらの値はエラー値として表示されるか、不適切に変換される可能性があります。トラブルシューティング情報については、この記事の「リンク テーブルにおける #Num! などの不適切な値のトラブルシューティング」を参照してください。

フィールド名 区切り文字付きテキスト ファイルにフィールド名が含まれていない場合は、最初の行に追加することをお勧めします。リンク時に、最初の行の値がフィールド名として処理されるよう、Access で指定することができます。ただし、固定長のテキスト ファイルをリンクする場合は、最初の行の値がフィールド名として処理されるように指定することはできません。
  1. ソース ファイルを閉じます。
  2. リンクを作成するデータベースを開きます。このデータベースが読み取り専用でないこと、および、自分に書き込み権限があることを確認します。

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

表示空のデータベースを作成する

ボタン イメージ (Microsoft Office ボタン) をクリックし、[新規作成] をクリックします。

  1. [外部データ] タブの [インポート] で [テキスト ファイル] をクリックします。ボタン イメージ

 メモ   [インポート] コマンドは、データベースを開いている場合にだけ使用できます。

  1. [外部データの取り込み - テキスト ファイル] ダイアログ ボックスの [ファイル名] ボックスに、リンク対象のデータが格納されているテキスト ファイルの名前を指定します。
  2. [リンク テーブルを作成してソース データにリンクする] をクリックし、[OK] をクリックします。

テキスト リンク ウィザードが起動します。その指示に従ってリンク操作を行ってください。

  1. Access によりファイルの内容がスキャンされ、そのファイルの編成が推定されます。区切り文字を使用してフィールドを区切っているファイルについては、[区切り記号付き] が選択されていることを確認します。フィールドの長さが固定されているファイルについては、[固定長] が選択されていることを確認します。
  2. [次へ] をクリックします。
  3. ウィザードの次のページは、[区切り記号付き] と [固定長] のどちらを選択したかによって異なります。

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

固定長    ウィザードにはファイルの内容が表示されます。データ内にコラム構造が識別された場合は、データ間に垂直線が引かれ、フィールドが区切られます。ウィザードに示されたこの構造を調べ、必要に応じて、ウィザード画面の指示に従って垂直線を追加、移動または調節してください。[次へ] をクリックします。

  1. ウィザードの次のページに、フィールドのプロパティが表示されます。列を (ウィザード ページの下半分の部分で) クリックして、対応するフィールドのプロパティを表示します。プロパティを確認し、必要であれば、インポート先フィールドの名前とデータ型を修正します。

Access では、各列の最初の 25 行が調べられ、対応するフィールドのデータ型が推定されます。列の最初の 25 行に異なる型の値 (テキストと数値など) が混在している場合は、その列のすべての値に適合するデータ型 (通常、テキスト) が推定されます。別のデータ型に変更することもできますが、そのデータ型に適合しない値については、エラー値となるか不適切な値に変換されるので注意が必要です。詳細については、後述の「リンク テーブルにおける #Num! などの不適切な値のトラブルシューティング」のセクションを参照してください。

表示[詳細] ボタンの用途

テキスト インポート ウィザードの [詳細] ボタンを使用すると、古いバージョンの Access で使用されていた書式のインポート定義を作成または開くことができます。Office Access 2007 では、リンク定義は (インポート操作やエクスポート操作とは異なり) 保存することができません。リンク定義の詳細を保存するには、[詳細] ボタンをクリックして、オプションを設定し、[名前を付けて保存] をクリックしてください。

  1. [次へ] をクリックします。
  2. ウィザードの最後の画面で、リンク テーブルの名前を指定し、[完了] をクリックします。ここで指定した名前が既存テーブルのものと重複する場合は、既存テーブルを上書きしてよいかの確認を求められます。既存テーブルを上書きするには [はい] を、別のファイル名を指定するには [いいえ] をクリックします。

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

ページの先頭へ ページの先頭へ

リンク テーブルにおける #Num! などの不適切な値のトラブルシューティング

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

テーブル内にエラーまたは不正確なデータが見つかった場合は、以下の表に示すアクションを実行してから、リンクを張り直してください。リンク テーブルには、値を直接追加することはできません (読み取り専用です)。

問題の種類 解決法
-1/0 値 ソース ファイルに、True/False 値または Yes/No 値しか格納されていないフィールドがあり、そのフィールドのデータ型として [Yes/No] をクリックした場合、テーブルには -1/0 値が挿入されます。この場合は、テーブルをデザイン ビューで開き、"Format/書式" プロパティを "True/False" または "Yes/No" に変更します。
複数の値 1 つのフィールドに複数の値が収まることはありません。値のリストは 1 つの値として扱われ、セミコロンで区切られてテキスト フィールドに取り込まれます。
切り捨てられるデータ 切り捨てられて表示されるデータがある場合は、データシート ビューでその列の幅を広げます。幅を広げても問題が解決しない場合は、数値フィールドのデータ型が本来 "Double/倍精度浮動小数点型" と設定されるべきところが "Long Integer/長整数型" に設定されている可能性があります。
#Num!

テーブルをデータシート ビューで開いて、一部のフィールドに実データではなく #Num! が表示されていることに気付いた場合は、以下の操作を行ってください。これで Null 値を目にする機会は格段に減るか、なくなります。

  • テキスト値として処理する非テキスト値を、単一引用符または二重引用符で囲みます。
  • リンク操作時に、各フィールドに適切なデータ型を指定します。データ型が合っていないと、列のすべての行に "#Num!" 値が表示されることもあり得ます。

以下の表に、それでもなお、フィールドに "#Num!" エラーが表示される場合を示します。

欠落する可能性のある値 インポート先フィールドのデータ型 解決方法
テキスト 数値または日付 すべてのテキスト値をインポート先フィールドのデータ型に適合する値に置き換えてから、リンク操作をやり直します。
日付 数値 すべての日付値を数値に置き換えてから、リンク操作をやり直します。
数値 日付 すべての数値を日付値に置き換えてから、リンク操作をやり直します。

ページの先頭へ ページの先頭へ

 
 
適用対象:
Access 2007