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

Excelで作成したリストを、Accessテーブルへ追加インポートしたとき、
インポートはできますが、主キーの数値が大きく桁違いな数字が現れてしまいます。

例えば、Accessテーブルのレコード数が10957件あります。
主キーの一番最後の数字は10980番です。(途中いくつか削除しました)

Excelのレコード数は100件あり、これを追加インポートしますが、
    10979
    10980
 85200513
 85200514
 85200515
 85200516
    ・
    ・
    ・
というように、10980以下の主キーの数値が、まったく桁違いになってしまいます。
どうしてこのようなことになってしまうのでしょうか?
ソフトはExcel2002、Access2002です。

A 回答 (4件)

えーっと、なんだか問題点が曖昧になってきましたね・・・


1.インポートすると主キーが桁違いになる。
2.インポートすると年月フィールドがエラーになる。

1は通貨型かテキスト型にしたことで解決し、未解決は2だけでいいんでしょうか?

2004/04/01→2004年4月(yyyy"年"m"月")
2004→2004年(####"年")

これらはそれぞれ、かっこ内の書式設定によってこのようにセルに表示されているだけであり、セルの値そのものは、数式バーに表示してある通りです。
(ただし、2004/04/01の方は、厳密に言えば本当はシリアル値といって、1900年1月1日を1とした、38078という数字が実態ですので、このセルを標準表示すると38078となったのはご承知の通りです。)

そんな訳で、ACCESSには、数式バーに表示される値でインポートされるみたいですね・・・僕もそれ以上はちょっと今はわかりません(>_<)

EXCELでの書式設定通りにインポートする方法は、調べれば多分あると思いますので、まずはACCESSのヘルプが、下記のMS技術情報などを見てみてください。
http://support.microsoft.com/default.aspx?scid=f …

頑張ってくださいヽ(^。^)ノ

参考URL:http://support.microsoft.com/default.aspx?scid=f …
    • good
    • 0
この回答へのお礼

昨日会社をお休みしてたので、本日出社後、さっそくいろいろいじっていたところ、原因がようやくわかりました。
Accessの「年月」フィールドは、今はテキスト形式ですが、最初のころは日付/時刻型だったようです。
途中からテキスト形式に変更したため、いくつかのデータが
「2004年」のところを「2004」という表示のままになっていました。
つまりAccessは日付/時刻型としてデータが残っていたため、追加するExcelを文字列にしても
追加インポートでエラーが出る→主キーにも影響が出る ということになったようです。

早速Accessの10957件のデータを、一旦Excelへエクスポートし、
「年月」の書式を統一して再度Accessへインポートしたものに、
追加する100件のデータをインポートしたところ、成功しました。

最初にエラーについて記載していなかったために
snoopy64さんに何度もご回答いただくことになってしまい、すみませんでした。
でも丁寧にアドバイスいただき、本当に助かりました。どうもありがとうございました。

お礼日時:2004/07/21 15:31

#2の補足を見ました。


う~ん、何でしょうね・・・
インポート元のEXCELの方に、長整数型の有効範囲を超えるような大きな数字はないですか?
通貨型かテキスト型にするとどうでしょうか。
エラーメッセージにあるように、キーが重複しているのではないかと・・・確認してみてください。
ちなみに今、質問文を改めて読み返したんですが、85200513などのデータは、正しくインポートされたデータだったのですか?

この回答への補足

おっしゃる通り、インポートできたものの、あるフィールドについてエラーは出ています。
それは「年月」を入れているフィールドで、Accessテーブルではテキスト型に設定し、
元のExcelファイルでは「2004年4月」「2004年」と表示されています。

ただ気になるのは「2004年4月」のセルは、数式バーでは「2004/04/01」という表示になります。
セルの中と数式バーを同じ表示になるよう、文字列に設定してみましたが、
今度はセルの中が「38078」という数字になってしまいましたので、元に戻しました。
もしかしたらこのあたりがインポート・エラーの原因かもしれませんね。

実は元のExcelファイルは他の部署から送られたもので、
Accessへインポート後「2004/4/1」「2004」という表示になりますが、
うちの部署ではさほど重要なデータではないため、エラーが出ても無視してました。
しかし主キーに影響が出てくるのは、ひょっとしたらこれが原因かもしれませんね・・・。

作業は会社で行ってるため、この数日間は確認することができませんが、
来週出社したら、Excelの設定のほうをもう一度チェックしてみます。

補足日時:2004/07/17 18:05
    • good
    • 0

#1です。

補足ありがとうございます。
オートナンバーかそうでないかによって、以降の回答がかなり違ってくるので、まずはじめに確認させていただきました。

オートナンバー型をやめて、数値型(長整数型)にすれば現在のような現象は解消されると思います。

オートナンバー型は、レコードを追加するたびに自動的に1加算された数字が入ります。が、レコードを削除しても番号は自動的には詰まりません。
詰めるには最適化をすればよかったはずです。

頑張ってくださいヽ(^。^)ノ

この回答への補足

再度ご回答いただきありがとうございます。
オートナンバー型をやめて、数値型(長整数型)に設定しましたが、今度はインポートできませんでした。

「キー違反のため、0件のレコードのデータが失われ、100件のレコードが削除されました。
 *データが失われたときは、貼り付けまたはインポートしたデータが、対象となるテーブルのフィールドのデータ型または"FieldSize/フィールドサイズ”プロパティと一致していません。
 *レコード削除されたときは、対象となるテーブルにすれに存在する主キー値が貼り付けたレコードに含まれているか、テーブル間に設定されているリレーションシップの参照整合性に違反しています。」
というエラーメッセージが出ました。

Accessテーブルはこれ一つのみで、リレーションシップは関係ないはずですし、変更前はオートナンバー型で、フィールドサイズ:長整数型、新規レコードの値:インクリメント、インデックス:はい(重複なし) に設定してます。
また何かご存知でしたら、よろしくお願いします。

補足日時:2004/07/16 16:41
    • good
    • 0

テーブルの主キーがオートナンバー型だとそうなるかも・・・未確認なので自信なしです(>_<)

    • good
    • 0
この回答へのお礼

たしかに主キーはオートナンバー型です。オートナンバー型以外に設定すれば直るものなのでしょうか・・・?
主キーのフィールドは、ただのレコードNo.なので、今のところ追加のインポートしたあと、
Accessテーブルの主キー解除&フィールド削除し、また新たにフィールド追加&主キー設定をしています。
なぜこんなことが発生してしまうのかがわかればいいんですが・・・
ご回答ありがとうございました。

お礼日時:2004/07/15 21:40

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

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


このQ&Aを見た人がよく見るQ&A