• ベストアンサー

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

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

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

  • ベストアンサー
  • fmajin
  • ベストアンサー率61% (75/122)
回答No.3

Excelの「表示形式」を「文字列」にしているのに…というのを疑問に感じていらっしゃるようですが、この設定は、そもそも原則としては「表示上」のデータを整形する機能として用意されたもので、Access等のデータベースで、フィールド型を指定する機能とは、根本的に異なります。この点を理解されておいたほうがいいでしょう。 では、ExcelデータをAcessにインポートするときには、どのようにしてフィールド型を判別しているのかと言えば、1件目のデータからであると思われます。 文字列にしている列の1件目のデータは、数字のみ等の数値として認識できるデータではないでしょうか? これによって、「倍精度浮動小数点型」が自動設定されるのでしょう。ところが、「1(2)」などのデータは、型が違うので、エラーが表示されると。 「ANo.#2」さんの「方法3」ならうまくいくというのも、この理由でしょう。 ただ、私がExcel2002とAcess2002で試してみたところでは、おっしゃるような問題が発生しませんでした。何が、違うんでしょうねぇ。「ANo.#2」さんの「方法2」についても、私はうまく行きました。「方法1」のTXTファイルとして保存する方法ですが、Excelでカンマ区切りやタブ区切り形式で保存すれば、空白セルがあっても、問題ないと思いますがいかがでしょうか。

tomoto7374
質問者

お礼

解答ありがとうございます。fmajinさんが問題なくできるとおっしゃたので TXTファイルでerrorがでる問題の箇所を調べました。ダブルクロテーション(”)や改行されたりしてました。Excel上ではそのように表示がないのですが…??(ちなみに書式設定かもと思いデータをコピーし新規シートに「形式を選択して貼り付け」で「値のみ」で「貼り付け」したものも開いてみましたが同じでした)。ダブルクロテーションや改行を削除してインポートしましたら成功しました。「ANo.#2」さんの「方法3」が一番簡単なようです。 ありがとうございました。

その他の回答 (2)

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

方法は3つ 方法1 1度エクセルをテキスト形式(*.TXT)で保存後 インポートすれば、設定でデータ型を指定できます。 方法2 エクセルのままでする場合は、データ型を決めたテーブルにインポートしてください。 一度、エクセルをインポート後に、 データを削除、データ型を正規のものにして保存して そこにインポートする。 方法3 エクセルの2行目(1行目がフィールド名でない場合は1行目)にダミーデータで 文字型にしたい列に「A」 数値型にしたい列に「9」 日付にしたい列に「=TODAY()」 時刻にしたい列に「0:0」 としてインポートする。

tomoto7374
質問者

お礼

方法3で解決しました。 でもなぜなんでしょう?書式設定で「文字列」なのに… 方法1については、フィ-ルドにデータが正確に配置されない行も出てきます。たぶん空白のセルの影響だと思うのですが… 方法2については、質問にも書いてあるのですが、やはりerrorとなります ありがとう ございました

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 Excelのデータをテキストに保存して、インポートしたらどうでしょうか? あと、インポートの際に、テキストインポートウィザードで、[設定]ボタンをクリックして、 各フィールドのデータ型を個別に設定しましょう。

tomoto7374
質問者

お礼

 上のmshr1962さんのお礼の文にも書いたのですが テキスト形式にすると 正しくフィールドに配置されない行(セル)が出てくるのです。たぶん空白のセルの影響だと思うんですが… ありがとうございました

関連するQ&A