アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。

今回、お伺いしたいのは
Access`2002を使用しているのですが、
データを落として保存されたエクセルファイルをインポート元にして
AccessDBにインポートした際にエラーが発生しました。

インポート先はAccessのテーブルで全てテキスト型にしているのですが、
インポートした際に、同じ列の数字のものはインポートされているのですが、
アルファベットが入っている列のものがエラーとなって外に出されてしまいます。


私としましては、全てテキスト型で空文字受付状態であれば、
全てインポートされる物だと思っていたのですが、
エラーになってしまいます。

何か対処方法などご存知方、お教え頂きたくおもいます。


どうぞよろしくお願い致します。

A 回答 (2件)

Access2002・2010(多分2013も)で


フィールドのデータ型を設定してあっても
インポートの際にはAccessが頑固一徹にデータ型を決めてしまいます。
Excelの場合はデータ行で先頭から8行を空読みして決定しています。
これはレジストリに登録されています。
レジストリエディタを立ち上げ
Ctrl + F で
Typeguessrows を検索すると(当方では最初に見つけるまで1分程度)
WindowsXPなら
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
にあるかと思います。
複数個所(Windows7 & Office2010なら二か所でした)にあることも。
規定値は、8 になっていますので
この値を10進数なら30位の適当な大きな値にするか
0 にすればすべてを空読みしてからデータ型の決定を行います。
(0 だとモノによっては時間が掛かるかも)
CSVファイルなら、Maxscanrows を検索してみてください。25行になっているかと。

FF1 FF2
1  123
2  123
3  123
4  123
5  123
6  123
7  123
8  123 ここまでで数値型に決定される
9  abc データ型が違うので除外される

レジストリの変更をすれば、その後はデータ型に注意しなくともすみますが、
権限の問題でRegedit.exe を立ち上げられない(変更ができない)
レジストリの変更に不安
な場合は、
先頭に近いセルの値に一つにシングルクォーターしょんを付け、123 → '123 にしてしまうことです。
そうすればすべてテキスト型で読み込まれます。

なお連続している順番が
数値→数値・・・・・・・・・テキスト
だと変換エラーになりますが
テキスト→テキスト・・・・・・・数値
だと数値もテキスト型として読んでくれます。
テキスト型はある意味オールマイティです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
アルファベットのテーブルヘッダも一緒に読み込ませることで
全てのデータがインポートされました。

あとで削除して対応したいと思います。

お礼日時:2013/08/27 13:06

私も以前同じことが起こりました。


そのときは、アクセスでインポートする際に、最初の数データでデータ型が判断され、
数値型と読み取られてしまっていました。
同じ現象かはわかりませんが、
読み取れないフィールドの最初のほうのデータに文字列が入っているデータを入れて
インポートしてみてはいかがでしょうか?

この回答への補足

結果報告です。

事前に「あ」を全てのフィールドに入れてみて、
インポートしましたが、インポートで
変わらずエラーが発生しました。

補足日時:2013/08/27 13:02
    • good
    • 0
この回答へのお礼

なるほど、データ型のダミーを入れてご認識をさせないようにすると言うことですね。

試してみます、ありがとうございました。

お礼日時:2013/08/26 17:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す