• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数11403
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1

Accessのバージョンは違いますが、以下のような ことがあります。 http://okwave.jp/qa/q7595522.html 一度、上記の内容について確認してみてください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 返事が遅くなってしまい申し訳ございません。 URL確認致しましたが、まさに同じ現象でした。 とりあえず、客先にはインポートするExcelを作成する際の手順書を(単純に必要なセルを選択し、別のExcelシートに貼り付ける)渡しました。この手順通りにやってくれたらゴミはは入らなくなるかと思われます。 ありがとうございました。

関連するQ&A

  • 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  文字列 どうにか対処する方法はございますでしょうか。 以上、宜しくお願い致します。

  • Excelインポート時にエラー

    お世話になります。 Access2010 Excel2010 あるExcelファイル(2003形式)をAccessにインポートした際、以下のエラーが出ました。 「ファイル '<パス\ファイル名.xls>' の情報にアクセスできません。ファイルが存在し、形式が正しいことを確認してください。 」 調べたところ以下の情報がありましたが、当該Excelファイル以外のインポートは問題無くでき、他のPCでも同症状が出るので、該当しないとの認識です。 http://support.microsoft.com/kb/283881/ja Accessへのインポート作業は毎日行っておりますが、先日より急にエラーがでるようになりました。 色々試したところ、 ・エラーの出るExcelファイルを開き、別の名前で保存し、そのファイルをインポートしてもエラー。 ・エラーの出るExcelファイルを「開いて修復する」で修復して保存し、そのファイルをインポートしてもエラー。 ・新規Bookを作成し、エラーの出るExcelファイルのシートコピーし、その新規Bookをインポートすると問題無し。 ・エラーの出るExcelファイルを開いて.xlsx形式で保存し、そのファイルをインポートすると問題無し。 ・上記の.xlsxファイルを.xls形式で保存し、そのファイルをインポートすると問題無し。 上記の結果から、作成し直すことによりエラーは解消されておりますが、原因としてはどのようなことが考えられますでしょうか。 インポート時にエラーの出るExcelは  ・フィールド(見出し)は100程度  ・行は50,000行程度  ・ファイルサイズは46MB です。 行数やサイズの問題かと思い、行を削除しサイズを減らした状態でインポートしてみましたが、やはりエラーとなってしまいました。 また、表外の列及び行も念のため削除しましたが状況変わらずでした。 なお、エラーの出るExcel自体は普通に開くこともでき、追加/修正/削除も可能で保存もできます。 ご教授の程、宜しくお願い致します。

  • AccessでExcelデータをインポート

    お世話になります。  Access2003/2010  Excel2003/2010 10年程前より、Access2003で作成したツール(Excel2003形式のファイルを インポート)を利用しております。 Excelファイルは毎日追加/更新しているのですが、先日、とうとうExcel2003 の行の上限である65,536行を超えてしまいました。 今後はExcel2010形式のファイル(行の上限は1,048,546行)とし、かつ、 2010形式のファイルをインポートできるようツールの修正をしなければならなく なりました。 ツールの修正というよりは、今までAccess2003上で使用していたので、そのまま Access2010上で使用したいだけなので、修正が必要がどうかも分からない 状況です。 そこで2点質問ですが、  1.現状インポートする際は、   DoCmd.TransferSpreadsheet acImport, 8, "temp", strFile, True   としておりますが、「8」の箇所は2010形式のExcelをインポートする場合   どのように修正すればよいでしょうか。   ヘルプを見ても8(Excel2000形式)までの記載しかありません。   とりあえず8のままExce2010形式で、かつ2003の行の上限を超えている   ファイルを(66000行)インポートしてみましたが、行は削れることなく   インポートできました。  2.インポート時の文字数制限について   インポートするExcelファイルの「備考」フィールドは文字数が多いのですが、   Access2003上で使用すると全ての文字列(750文字程度)をインポート   できておりました。   しかしAccess2010上で使用すると、文字列が途中で切れる(255文字)   不具合が発生しました   インポートする際は、あらかじめテーブルを作成しておき、そこに対して   Excelのデータをインポートしております。なお、「備考」のデータ型は   メモ型です。   (255文字で切れることから)恐らくAccessがインポートする時点で「備考は   テキスト型」と判断しているから255で切れてしまうのではないか、で、切れた   文字列をメモ型に入れてるだけのように見受けられるのですが。。   2003から仕様が変わってしまったのでしょうか。   上記のことから、インポートするExcelの先頭行の「備考」に、適当な文字列   (750文字)を入力し、それをインポートすると途切れることなくインポート   できました。   ※Accessがメモ型と認識したから? ※いずれもツールをAccess2010上で使用した状況です。 ご教示の程、宜しくお願い致します。

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

    お世話になります。 Access2010 Win7Pro Excelファイルのデータをインポートし、それをSQLサーバーへ エクスポートするツール(Access)があります。 例えば、Excelに「ID」と「メモ」というフィールドがあり、1500行 あったとします。 また、メモには100文字程度の文字列が入力されています。 それをインポートすると、問題なくメモの100文字はインポートできます。 但し、1000行目のメモに500文字入力されている場合、それを インポートすると255文字に削られてしまいます。 これはインポートするときに、先頭から数行がチェックされて データ型が自動的に決められる為、上記のケースだとテキスト型に なってしまい1000行目のメモは255文字に削られている・・・ ということだと思います(仕様)。 なので、現状はExcelをインポートする前に先頭行のメモを255文字 以上入力した状態でインポートし、SQLサーバーへエクスポート後 テーブルの先頭レコードのメモより不要な文字(追加して入力した分)を 削除しております。 当該ツールを使って、インポート⇒エクスポートするのは日々の作業なので 毎回メモに文字を追加して、あとで削除するというのが手間でなりません。 なにかよい方法はございますでしょうか。

  • Accessでインポートエラー(EXCELより)

    EXCELの社員データをACCESSへインポートするとき一部のレコードが反映されませんでした。 EXCEL>社員番号、氏名 の表をインポートしようとすると、    一部「社員番号」がインポートできない。   社員番号は二通りあります  1.社内の人間 数字8桁の番号  2.社外の人間 Guestxxx(X:数字) このうち、2がエラーで取り込めませんでした。 EXCEL上では、すべてセルの書式設定で「文字列」にしており、 ACCESS上では、データ型を「テキスト」にしています。 手入力でguest、、と入力はできました。 EXCEL>書式設定 と ACCESS>データ型は、そもそも別ものという感じもします。1の数字の社員番号がEXCEL上でテキストになっていないのでしょうか。。 ACCESS初心者です、知恵を拝借いただければ幸いに存じます。

  • 【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が重複していないことを確認。 今までエラーが出たとしても上記対処でエラーは解消されていたのですが、今回ばかりは何が原因かわかりません。 どのようなことが考えられますでしょうか。ご教授の程よろしくお願い致します。

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

     Excelで作成したリストを、Accessのテーブルへ追加インポートした時、インポートはできるのですが、主キー(フィールド名はID、オートナンバーに設定)の数値がとんでしまって、大きな数値が入力されてしまいます。  ExcelのIDのセルには空白にしてあります。  そこで疑問なのは、うまくいく時といかない時があることです。  たとえば一つのリストをインポートしたら1~100までちゃんと連番で入るのに、次のリストをインポートしたら、100000~という風になります。  これは何が問題なのでしょうか。同じように設定・作業をしているのですが・・・。  よろしくお願いします。

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

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

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

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