• ベストアンサー

マイクロソフトアクセスのインポート時にインポートエラーが出る

エクセルで作成したデータをアクセスでインポートしたら、  (1)普通のテーブル  (2)『 [テーブル名]$_インポート エラー 』というテーブル の二つ出てきました。 (2)のエラーテーブルって、どんなときに現れるのか、お分かりになりますか? エラーテーブルを見ると、3つフィールドがあり、左から「エラー」「フィールド」「行」となっていました。 とりあえずざっと(1)のテーブルと、エクセルの元データを見たのですが、問題なさそうな気もするのですが... あとで致命的な問題になると困るので、もしお分かりの方がいらっしゃったら、ご教示願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

アクセスのヘルプで質問に 「データをインポートする」 に書かれてますよ。 多いのがフィールドのデータ形式の不一致 文字列の長さが長い 数値・日付/時刻に文字列の挿入 数値の形式に合わない範囲のデータがある 日付/時刻に負の数値が挿入された 最後のはExcelのオプションで「1904年から計算する」にチェックがあったら注意 追加の場合は主キーや固有のキーと同じデータが存在するのが増えます。 該当のレコードは未入力の状態になることが多いです。

kick2002
質問者

お礼

ご回答ありがとうございます&お礼が遅くなりまして、申し訳ありません。 >数値・日付/時刻に文字列の挿入 まさにこれです!ビンゴでした!! >アクセスのヘルプで質問に >「データをインポートする」 >に書かれてますよ。 一生懸命読んでいたのですが、なんだか迷い込んでしまい、 結局よく分かりませんでした。 mshr1962さんのご回答の方がすごくよく分かります!!

その他の回答 (2)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.3

Excel ファイルのインポートの場合、データ型の指定はできないので、 たとえば、20行までぐらいは数値しか入ってないのに、その後に文字列が あったりすると、エラーになったりします。 どういった規則でインポートの際のフィールド型を決定しているのかは、 [AC97]Excel データインポート時の型変換について http://support.microsoft.com/default.aspx?scid=kb;ja;JP109376 こちらを確認してください。

kick2002
質問者

お礼

ご回答ありがとうございます&お礼が遅くなりまして、申し訳ありません。 おっしゃるとおり、数値の後に文字列が入った状態でした。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

インポートする際に、列毎の属性(文字列、数値など)を指定しましたか? ウィザードが先頭の何行かから、「数値だろう」と判断し処理開始後、読み進むうちにつじつまの合わないデータが出たからエラーにしました、みたいな状況と思います。 エラーとされてはじかれたデータが<(2)『 [テーブル名]$_インポート エラー 』>ですね。 文字列でも255バイトを越えると駄目かも? インポートできた<(1)普通のテーブル>の列を確認し、文字列以外の属性が割り当てられた列(数値、日付型など)を中心に見直してみられては?

kick2002
質問者

お礼

ご回答ありがとうございます&お礼が遅くなりまして、申し訳ありません。 まさにご指摘のとおりでした。

関連するQ&A

  • アクセスで、毎回インポートエラーが出るのはなぜ?

    アクセス2003に、エクセルデータをインポートする時に、 「テーブル$_インポート エラー」というテーブルが作成されてしまいます。 取込み自体は出来ているようなのですが、どのテーブルにインポートしても、毎回同じ内容の、このエラーテーブルが別に出来てしまいます。 何か致命的な問題があるのでしょうか? 困っています。どうか宜しくおねがいします! 「テーブル$_インポート エラー」のデータシートビュー内容↓       エラー            フィールド      行 データ型の変換エラー        F4      11 データ型の変換エラー       F9       11 データ型の変換エラー       F4       22 データ型の変換エラー       F9       22 データ型の変換エラー       F14       22 データ型の変換エラー       F4       24 データ型の変換エラー       F9       24

  • Access から Excelのシートをインポート時エラー

    Access の既存のテーブルにExcelのスプレッドシートからデータをインポートするため次のコマンドを実行すると、 F1フィールドがない旨のエラーメッセージが表示されます。 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "アクセスのテーブル名", "インポート元のエクセルファイル名.xls", False ここで、F1フィールドとは何でしょうか。 Excelのシートの1行目にAccessのテーブルの項目名と同名の項目名を挿入しておけば、上のコマンドの最後の引数をTrueにすればインポートは成功します。項目名のないスプレッドシートはインポートできないのでしょうか。 ご存知の方、教えてください。

  • アクセスのインポートの仕方

    Windows2000/ACCESS2000を使用してます。 いつもお世話になってます。 ロータス1.2.3でエクセルに落としたデーターをアクセスにインポートさせたいのですが、うまく出来ません。 この度、アクセスで新しくデーターベースを作って、今までのデーターの移行をしたいのですが、エクセルのデーターをアクセスへインポートするやり方だと先頭行をフィールド名にしないと保存先のテーブルを選べませんでした。 先頭行のフィールド名を使わずに、データーだけを新しく作ったアクセスのテーブルに入れるにはどうしたら良いのでしょうか? 宜しくお願いします。

  • Access2003 インポートについて質問がございます。

    Access2003 インポートについて質問がございます。  すでに完成しているテーブルがあり、  そこに毎月のExcelデータを都度テーブルに蓄積していきたいのですが、  Accessを開かずしてテーブルにインポートすることは可能でしょうか。  すでにテーブルのフィールド順に、レコード単位でExcelに並べられている条件です。   (Excelの行コピー⇒ Accessテーブルの最終行に貼付でインポートできる状態) 初心者なもので大変恐縮ですが、ご教示をお願いいたします。  

  • 【Access】Excelインポート時にエラー

    お世話になります。 <環境>  Windows7 Pro  Excel2010  Access2003 Excelに番号、コード、数量の3列(A~C列)の表があります。その表をAccessにインポートしようとすると実行時エラー2391となります。 インポートはフォーム上のボタンよりダイアログを表示し、Excelを選択させてます。 で、手動でファイル⇒外部データの取り込み⇒インポートで当該Excelを選択し、「先頭行をフィールド名として使う」にチェックを入れタイミングで「先頭行に、Accessのフィールド名として使用できないデータが含まれています。フィールド名として有効な名前が自動的に割り当てられます。」と表示されることから、表外の箇所まで取り込もうとしてエラーになっているかと思われます。 しかし、Excel上で見ても表外の箇所は空白セルで何も入力されてません。 単純に表外の認識されていた5列(D~H)を削除すると、問題なくインポートできました。 ※いったん罫線を消して再度引きなおしてもダメでした。 このインポートしようとしているExcelは、元々別のExcelシートより必要な箇所をコピペして作成したものです。なので、コピペ作業の際に目に見えないゴミのようなものが入力?されてしまったのかもしれません。 また、Excel2010で作成したものを2003形式で保存しています。なので、その辺でのバグなのかもしれません。。 ※インポートする為のExcelは客先にて作成している為、コピペ作業はどのように行われているかは不明です。こちらで検証すると問題なくインポートできます。 上記と同じような現象になった方はいらっしゃいますでしょうか。また、そのときの回避策などございましたらご教授頂けたらと思います。

  • Access97 Excelファイルのインポート

    はじめまして、こんにちわ。 早速ですが、質問させてください。 Access97で既存のテーブルにExcelファイルをインポートした際にエラーがでてインポートできないファイルがありました。その原因を調査している次第です。 Excelファイルは様々な担当者に作成いただく予定ですので、エラーの再現性を確認して、原因となる作業を予め禁止しておきたいと考えております。 (1)ファイル→外部データ取込→インポートからインポートするExcelファイルを選択し、インポートボタンを押したところ、『ファイル○○にアクセスできません。このファイルが存在するか、またファイルの形式が正しいか確認してください』と言うエラーが出ます。 実際にそのファイルは開けますし、同じように作成したファイルはインポートできるものもあります。 中身を全てコピーし、新規作成したExcelファイルに貼り付けて名前をつけて保存したものをインポートすると、問題なくインポートできました。 どういった作業をすると、上記エラーが出るようなファイルになってしまうのでしょうか。 (2)ファイル→外部データ取込→インポートからインポートするExcelを選択し、インポートボタンを押した後、ワークシートインポートウィザードで『先頭行をフィールド名として使う』をチェックすると、『先頭行にAccessフィールド名に使用できない文字が含まれています。』というエラーが出ます。 調べてみると、空白の列がフィールドとしてインポートされるようになっています。Excel上では何も表示されていない列で、その列を削除すればエラーがなくなります。 どういった作業をすると、空白の列や行がインポートされるようになってしまうのでしょうか。 お手数ですがよろしくお願い致します。

  • Access Excelのインポートについて

    お世話になります。 Access2010 Excelインポート時の仕様についてご教示下さい。 フォーム上に「インポート」ボタンを設置し、ボタンを押すと ファイル選択ダイアログが表示され、そこで選択されたファイルを インポートしています。 DoCmd.TransferSpreadsheet acImport, 10, "temp", strFile, True ※strFileはダイアログにて選択されたファイルのパス インポートする前に事前にテーブルを作成しておき、そこに Excelのデータがインポートされます。 事前に作成しておくテーブル(temp)のデータ型は以下の通りです。 ID オートナンバー 契約開始日 日付/時刻型 契約終了日 日付/時刻型 案件名   テキスト型 価格    テキスト型 ※Excelの「価格」は通貨型となっておりますが、いくつかのセルに  文字列が入力されている為、テキスト型としてます。 <質問> インポートすると、「価格」フィールドにてデータ型の変換エラーが 発生します。エラーテーブルを確認したところ、Excelの「価格」に 文字列が入っている行でした。 予めテキスト型を用意しておいても、文字列の行はエラーとなって しまいます。なお、価格(数値)が入力されているものは、文字列として インポートされています(左詰めになっている)。  100000  50000  10000  80000   ・  50000  空白  ← 本来は文字列が入力されている。 予めテキスト型を用意しておいたとしても、インポート時の仕様?で 先頭から数行が数値なら数値フィールドと認識されてしまって、 文字列が削れ落ちてしまうのかなと。 ちなみに、インポートするExcelの先頭行の価格を「'100000」にして インポートしたところ、ちゃんとインポートはできましたが、 2行目以降は¥マークも含めた文字列でインポートされてしまいました。  100000  ¥50000  ¥10000  ¥80000   ・  ¥50000  文字列 どうにか対処する方法はございますでしょうか。 以上、宜しくお願い致します。

  • ACCESSへのエクセルからのデータインポート時のエラーについて

    アクセス超初心者です。テキストを見ながら勉強しています。エクセルのデータをアクセスにインポートするところで、テキストどおりにやってるのですがエラーになってしまいます。「キー違反のため0件のレコードデータが失われ15件のレコードが削除されました。」と出ます。無視して続行すると、結局はインポートできてるのですが、このエラーは何のために出るのでしょうか?フイールド名はインポート元と先で、まったく同じになってます。 バージョンは2002です。よろしくお願いします。

  • Access(アクセス)でのインポートについて

    テーブルのインポートでエクセルファイルをインポートしたいのですが「ワークシートインポートウィザード」の画面でテーブルを指定して保存すると 「Microsoft Access」の画面で「すべてのデータをテーブルに追加できませんでした。 キー違反のため、0件のレコードのデータが失われ、0件のレコードが削除されました。」と出てきて、保存できません。 もとのテーブルのデータ型を使ってインポートするにはどうしたらいいのでしょうか。よろしくお願いします。 インポートする元のデータ(エクセル)とインポート先(アクセス)の関係は次の通りです。 エクセルファイル    アクセスのテーブル (セルの書式設定)   データ型、フィールドサイズ --------------------------------------------- 数値          数値型、長整数型 文字列         テキスト型、16 インポートする前に元のエクセルデータをアクセスのデータ型に合わせただけではダメなのでしょうか

  • 【Access】Excelインポート時にエラー

    お世話になります。 OS:XP Pro Access2003 Accessのフォーム上よりExcelをインポートするように作りました。 インポートする際にローカルにある空っぽのテーブル(データ型のみ指定有り) をコピーし、そこにExcelのデータをインポートするようにしてます。 今まで特に問題はないので、プログラム的には問題なさそうです。 で、今日Excelをインポートした際に「キー違反のため、0件のレコードが失われ、0件のレコードが削除されました」というエラーが発生しました。 フォームからではなくファイル⇒外部データの取り込み より当該Excelをインポートしても特にエラーにはならずインポートできました(A)。 エラー時に「はい」を選択すると、とりあえずインポートはされるのですが(B)、AとBを比較するとBの方が2レコード少ないことがわかりました。 その2レコードのIDを調べ、ExcelからそのID2行を削除しインポートしたところエラー発生せず。 とりあえず何かしら問題のある行は分かったのですが。。  ・その行のID以外のセルを全てまっさらにして、インポートしてもエラー。  ・この行の書式がおかしいと思い、別の行の書式をコピーしてはりつけ後インポートしてもエラー。  ・この行のリスト外のセルに余計なゴミがあるかもと思い、リスト外の列を全て削除するもエラー。  ・いったんこの2行をコピーして別シートに貼り付け。その後、リストから2行削除し、2行挿入して   コピーしておいた2行を値で貼り付け。で、エラー。  ・IDが重複していないことを確認。 今までエラーが出たとしても上記対処でエラーは解消されていたのですが、今回ばかりは何が原因かわかりません。 どのようなことが考えられますでしょうか。ご教授の程よろしくお願い致します。

専門家に質問してみよう