こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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
 文字列

どうにか対処する方法はございますでしょうか。
以上、宜しくお願い致します。

投稿日時 - 2016-07-13 16:22:10

QNo.9201078

困ってます

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

これ!
http://okwave.jp/qa/q8916197.html

投稿日時 - 2016-07-13 21:16:23

お礼

NotFound404さま
いつもご回答ありがとうございます。

こ・・・これは!汗
以前質問した内容としては、インポート時に文字列が
255で切れてしまうというものでした。
で、今回はデータ型の変換エラー。

別物と思ってましたが、結局「先頭数行がチェックされて
データ型が決まる」っていうことについては同じこと
でしたね。。失礼しました。

この回答を見て思い出しましたが、今年の頭にPC不具合で
再インストールしており、レジストリの値がデフォルトの(8)
になってました。早速(0)にしてみたところ、ちゃんと
文字列としてインポートできました。

ありがとうございました。

投稿日時 - 2016-07-14 11:03:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問