プロが教えるわが家の防犯対策術!

CSVで出力されたデータをAccessに読み込んで作業しています。一日ごとのCSVをAccessのテーブルに順にインポートして、複数日のデータをひとつのテーブルにしていたのですが、97ではできたこの機能が2000だと「キー違反」としてレコードが削除されてしまいます。以前は(97では)何の問題もなく進んでいたので、何がいけないのかさっぱりわかりません。どなたか教えていただけるとありがたいのですが・・・。よろしくお願いいたします。

A 回答 (2件)

インポートするデータは以下のような感じ。



ファイル:AAAA.csv
0001,"aaaaa"
0002,"bbbbb"
0003,"ccccc"

ファイル:AAAA.csvをインポートする時、新規テーブルの作成を行いキーを自動で作成します。
するとできたテーブルはこんなレイアウトに。

テーブル:T_AAAA
Key :オートナンバー
col1:長整数
col2:テキスト

さらに、上記のテーブルに先ほどインポートしたデータと同じレイアウトのファイル:BBBB.csvをインポートします。
すると、テーブルのレイアウト上ではカラム:Keyに1番目の項目(0004とか0005)を入力しようとしてエラーとなるのでは?

ファイル:BBBB.csv
0004,"ddddd"
0005,"eeeee"
0006,"fffff"

テーブルのデザインビューでテーブル:T_AAAAのレイアウトを以下のように変更してから、ファイル:BBBB.csvを再度インポートすると正常に処理が終了します。

col1:長整数
col2:テキスト
Key :オートナンバー

テーブルのレイアウトを変更して使用するのが一番楽ですが。
mnabeがおっしゃったように、VBでインポート用の処理を作成するか、自動でキーを作成しないでインポートされるデータの値を使用してキーとするかが正式な対応かと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
レイアウト変更、早速やってみました。
確かにこれなら追加はされますが、IDがけた違いの数字になってしまいました。。。

VBはよくわからないので・・・、別テーブルを作成しキーを設定せずにインポートして、それを追加クエリーでマスターに追加する、というステップにしてみたら上手くいきました。

それが正しい方法なのかよくわからないのですが・・・。
あきらかに勉強不足ですね。これからAccessをきちんと勉強してみます。
今後もつまづくことがあったときは助けてください。
どうもありがとうございました。

お礼日時:2001/06/14 17:21

 テーブルの構成。


 インポートの方法。

 特にインポートの方法を説明して下さい。
 多分、キーの設定方法の問題だと思われる。
 複合キーにして、ユニークなキーを生成するか、別にIndexを作成するか、VBAを使用して読込んで格納するアプリケーションにしてしまうかのどれかだと思う。


 そもそも、動いていたシステムを、バージョンアップしたら動かなくなったら、昔の物を使用すれば済むのでは??

この回答への補足

素早いご回答ありがとうございます。
漠然とした質問をしてしまったようで、すみませんでした。

テーブルの内容は、
・ID(オートナンバー)
・日付/時刻型
・テキスト型
で、読み込みはテーブルの「新規作成」→「テーブルのインポート」で行っています。

もうすでに過去のデータを読み込んであるテーブルに、新たな一日分をインポートしてみたところ、エラーになりました。
エラーレポートには「データ型の変換エラー」と「オートナンバー型フィールドに Null 値があります。」がIDフィールドでエラー出力されています。

Access2000になった理由は、業務端末とソフトの一斉入れ替えがあったためです。
古い端末もまだ手元にありますが、今後は新しい端末とシステムを使用しなくてはならないので・・・。

とりあえず・・・コピーペーストではうまく行くので、危険な気もしますがその方法でやってみようかと思っています。
お気づきの点があればご教授ください。

補足日時:2001/06/14 11:06
    • good
    • 0

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

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