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

こんにちは、いつも質問ばかりですみません。
WINDOWS2000 で ACCESS 97 ユーザーです。

品番.CSVがあるとします(数千行)
品番は、
100
A100
のように、数字のみやローマ字が入り混じっています。

ACCESS 側に「品番」テーブルを作り、データ型をテキストにします。その上で
 ファイル
 -外部データの取り込み
 -インポート
 -次のテーブルに保存する「品番」
でテーブルを指定すると、きちんと入ります。

が、マクロで
 テキスト変換
 -区切り記号付インポート
 -テーブル名「品番」
 -ファイル名「品番.CSV」
 -フィールド名の設定「はい」
で実行すると、
「品番インポートエラー」テーブルが別に作成され、
A100
を「データ型の変換エラー」と見なしています。

…どうしてでしょう。

A 回答 (3件)

データ型が数値になっているからだと思います。



インポートする際に、フィールドのオプションを指定する際に該当列をテキスト型としてください。

この回答への補足

回答ありがとうございました。
いやー。。。

> ACCESS 側に「品番」テーブルを作り、データ型をテキストにします。

受け入れテーブルは、テーブルデザインのデータ型を「テキスト型」にしてあります。
私の解釈、間違っています…?

補足日時:2006/02/01 11:49
    • good
    • 0

インポート定義を作成して保存し、


マクロでインポートする際に、
その定義を指定します。
http://www.f3.dion.ne.jp/~element/msaccess/AcTip …

「インポート/エクスポート定義の作成方法」
などを参考にしてみてください。

この回答への補足

ありがとうございました。
参考ページを教えていただきましたが、スキル不足で理解できません(泣)
VBA は、EXCEL 上ではそこそここなせますが、ACCESS はまだこれからの課題なんです。

とりあえず、マクロをモジュール化してみました。
(便宜上テーブル名をTEMP 、取り込みCSVもTEMP.CSV としています。)

DoCmd.TransferText acImportDelim, "", "TEMP", "D:\TEMP.CSV", True, ""

何が悪いのか、ご教授いただけるとありがたいです。。

補足日時:2006/02/01 12:02
    • good
    • 1

>DoCmd.TransferText acImportDelim, "", "TEMP", "D:\TEMP.CSV", True, ""


インポート定義を作成して
DoCmd.TransferText acImportDelim, "インポート定義名", "TEMP","D:\TEMP.CSV", True
ではどうでしょうか。

>A100を「データ型の変換エラー」と見なしています
数値文字混在のデータで型変換エラーが出でしまうのは最初のデータが数値の場合それ以降を数値として扱ってインポートしようとして文字があるとエラーになるような事例があったと思ったのですが前の事なので定かではありません。
    • good
    • 0
この回答へのお礼

もう一度、#2 さんが教えてくださった「外部テキストファイルとの接続方法」で、インポート定義名が空欄の場合に起こるエラーについて読みましたが、やっぱり定義名を設定するまでには至りませんでした(スキル不足)
が、
> 最初のデータが数値の場合それ以降を数値として扱って
もしかしたら2000以降のバージョンでは改善されているのかもしれませんが、どうもコレが犯人くさいです。
VBE で取り込み前に元CSV データを降順でソートし、ローマ字で始まる品番を上に持ってきてから取り込むと、エラーが起きないことがわかりました。
根本的な解決にはなってないですが(^^;)、助かりました。
ありがとうございました。

お礼日時:2006/02/02 17:37

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

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