• ベストアンサー

AccessでExcelファイルをインポートするとエラーが・・・

教えてください!! Excelファイルの書式は表示形式(標準)でMSゴシック 、38列1900行くらいのデータです。 これをインポートすると、1列だけインポートエラーになります。 調べてみると、その列だけデータ型が「倍精度浮動小数点型」になっています。これが関係あるのでしょうか? なぜ、他はテキスト型になるのに、これだけこんな型になってしまうか不思議です。直したくてもインポートウィザードでは、グレーになっていて修正できません。

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

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

Microsoftによると、インポートウィザードの最後で新規テーブルに インポートした場合、元データに数値・文字が混在していると インポートエラーが発生するとのことです。 インポートエラーになっていてもAccessにテーブルは 作成されていると思いますので、そのテーブルのデータを 消去し、エラーになる列の定義をテキスト型に変更し、 再度インポートウィザードでそのテーブルに対して インポートすれば正常に取り込めるはずです。 http://www.microsoft.com/japan/technet/archive/columns/suo/accessimport.mspx

参考URL:
http://www.microsoft.com/japan/technet/archive/columns/suo/accessimport.mspx
youhu2machi
質問者

お礼

>元データに数値・文字が混在しているとインポートエラーが発生する そのとおりでした・・・混在していました。 参考URLを見たら、私のエラーそのものだったのでびっくりしました。 ありがとうございました。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

AccessにインポートするExcelのデータで1つの列内にテキストと数値が混在している場合は全てテキストとしてインポートされますが列内に数値もしくは数字のみの場合数値型としてインポートされてしまいます。 数値型で変換時に数値型の規定に反している数字の並び等があるのでインポートエラーになっているのではないかと思います。 インポート定義を作りその定義を使ってインポートしてみてはいかがでしょうか。インポート定義についてはヘルプでも参照してみてください。 またはダミーのレコードを1行つくり該当する列にあたるセルにテキスト文字を1つ入れてインポートしてAccessのテーブル側でその1行を削除すれば出来ると思いますが。

youhu2machi
質問者

お礼

本当だ!! 数値型と文字型の2種類が混合していました・・・ ありがとうございました。 すべて文字列に変換してからやってみます。

関連するQ&A

  • Excelのデータ(数字)をテキスト型としてaccessにインポートする方法

    Excelの「セルの書式設定」を「文字列」にして、数字を入力し、accessで「インポート」すると「データ型」が「倍精度浮動小数点型」となって「1(2)」や「1&2」と入力した行がインポートできずerrorとなります(普通の数字はインポートできます)。Excelの書式設定を「ユーザ定義」→「@」としても同じです。またaccessでテーブルのデザインでそのインポートするフィルドを「データ型」としておいてインポート操作をしてもインポートされません。Excelを開きそのセルや行の書式設定を確認しましたが文字列となっています。どこが問題なのでしょうか? また正しくインポートできる方法を教えてください。 accessとExcelのバージョンは2003です。 よろしくお願いします。

  • Excel 文字列データ から Access へ インポート フィールドサイズを小さくしたい。

    こんにちは、 Excel2003の文字列データをAccess2003へインポートしたところ、インポートされたデータのフィールドサイズが255になります。 これをその後、手動で小さくするのですが、インポートの時点で意図したフィールドサイズにすることはできないでしょうか? 他、数字データは、倍精度浮動小数点型になるのですが、これも、整数データにしたいのですが、何か良い方法はないでしょうか? 何かお分かりの方がいましたら教えてください。よろしくお願いします。

  • データ型について

    VBに限ったことではないのですが、 データ型には、短整数型、整数型、長整数型、単精度浮動小数点数型、倍精度浮動小数点数型といろいろな型がありますが、 整数を扱うなら長整数型、小数も含めて扱うなら倍精度浮動小数点数型 を使えば良いと思うのですが、それにより桁数の小さな短整数型、整数型とかは何のためにあるのでしょうか? あまり大きな値を扱わないときにそちらの型を選ぶメリットは何なのでしょうか?

  • Accessへのインポート時に数字が正しく設定されない

    Access2000で、あるCSVをインポートしたところ、数字の項目正しく入らない 事象が起きました。 (CSVでは"665554368"という数字が、Accessでは"665554340"になってしまいます。) 金額に該当する項目なので、正しく入らないと困るのですが、原因は何が 考えられ、どうすれば解決するでしょうか? 以下の方法を試しましたが、いずれもダメでした。 ・該当の値が入るフィールドのデータ型を以下のものにする。  →通貨型、単精度浮動小数点型、倍精度浮動小数点型  (いずれもダメです) ・CSVの区切り文字を別の文字に置換する。  →"|"だったものを、","区切りにしましたがだめでした。 ・CSVをExcel2003形式で保存し、Excelをインポートする。  →直接CSVをインポートしたときと同じ数字になりました。 お手数ですが、皆様の知恵を貸していただけないでしょうか。 よろしくお願いします。

  • 【Access2010】 数10億円のインポート

    txtファイルからAccess2010へ「40億円」をインポートしようとするとエラーになりました。  ファイル形式: 2002-2003形式(.mdb)  データ型: 数値型  フィールドサイズ: 十進型 ネットでいろいろ調べて、フィールドサイズを「倍精度浮動小数点型」してもダメ、データ型を「通貨型」にしてもダメ、お手上げ状態です。 唯一インポートできた方法はデータ型を「テキスト型」にした場合のみでした。 ファイル形式は社内の互換性の問題上2007形式(.accdb)にはできません。 テーブルに直接入力すれば入れることはできますが、毎回そんな面倒な作業はできません。 「数値型」のままインポートする方法はありませんか?

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

    AccessのデータをSQLサーバーにインポートする時のエラーについて教えてください。 Accessのあるフィールドだけうまくインポートできません。そのフィールドは、Access側がデータ型が整数型、フィールドサイズが単精度浮動小数点型、SQLサーバー側がVARCHAR(128)です。ちなみに、numeric、float 、realでもだめでした。 SQLサーバーの「データのインポート」でインポートを行っています。インポートは正常に終了しました。とメッセージがでるのですが、データをみてみると、どうやらオーバーフローしてしまっている感じです。データが2.8197898E-2といった形になってしまっています。ちなみに、アクセスの場合はこの値は、0.0281979というデータです。 どのようにしたら正常にインポートできますでしょうか。

  • アクセス:インポートできないデータ

    色々な型のデータが入ったエクセルデータをアクセスにインポートした時に出るエラーに関してです。 数値と文字列が含まれているためにアクセスのデータ型を”テキスト型”(フィールドサイズ255 書式@)にしております。しかしインポートすると文字列のデータがはじかれます。 アクセス側をテキスト型に設定すればどんなデータが来ても受け入れ可能だと思っていました。 数値、文字列両方のデータがインポートできる設定を教えてください。

  • Access2000 小数点以下を2桁表示

    こんにちわ。 アクセスであるテーブルを元にフォームを作成しています。 元データは「123.4567890」となっています。 (倍精度浮動小数点型です。) このデータをフォーム上では「123.45」まで表示したいのですが上手く出来ません。プロパティーの書式で 小数点表示桁数を「2」にしてもダメでした。 どうしたものでしょうか? ご教授ください。。

  • Access2002 EXCELファイルのインポートの裏技?を教えてください

    度々すみません。 AccessのDBに、新しいテーブルとしてEXCELファイルをインポートしようと思います。 インポートウィザードに従って進んでいくと、最後の「完了」ボタンでエラーになります。 原因を探ってみましたら、「数値型」と判定されているフィールドに文字が混ざっていることが分かりました。 ですので、ウィザードの途中で、フィールドの型を変更しようとしましたが、型を指定する部分はグレーアウトしており、選択できません。 (この場合、長整数となっており、テキストに変更できない) なにか裏技はあるのでしょうか? あるいは私のスキル不足で、実は簡単なことなのでしょうか? ちなみに、ですが、仕方がないのでインポートせず、リンクという形をとったのですが、その場合、文字の入っているフィールドは「#Num!」と表示されています。見た感じ「数値でないよ!」という意味でしょうけれど。。。 どうぞよろしくお願いいたします。

  • アクセス2010 VBA 指定セルのインポート

    アクセス・エクセル2010を使用しています。 モジュールを用いて以下の作業を実行したいと考えていますが、 初心者につき、ご教示いただけますでしょうか。 1.ダイアログを表示させ、取り込みファイル(.xls)を指定してインポートしたい ※1シート目指定(シート名は変動の可能性アリ) 2.1で指定したファイルと同じフォルダ内にあるファイル(.xls)を全てインポートしたい ※各ファイル、インポートは1シート目のみです 3.フォームのテキスト(作成済:フォーム名(frm)・テキスト名(txt))で取り込みファイルの範囲指定をしたい ※1行目からの記載では無いです ※フィールド名行は変動しませんが値行は変動し、月によって列も変動する可能性があるため、テキストを使って範囲の変更がしたいです ※取り込みファイルの様式(形式・範囲)は全て同じです:形式はすべて倍精度浮動小数点型です) 具体的には、今月は・・ A列・1~2行目に空白があり、B列~記載がありますが、 インポート範囲としてはK列に項目・7行目にフィールド名になる名称・L8~Wに倍精度浮動小数点型の数値が入っています。 1つ1つの条件であれば、検索すれば(参考にできるものが)出てくるものもあるのですが、 それらを どう組み合わせればうまく作動するのか 処理条件を どう設定すれば良いのかが よくわからず、困っています。 知識不足で申し訳ありませんが、ご指導いただけますと幸いです。 よろしくお願いします!!

専門家に質問してみよう