ACCESSのVBAを使ってEXCELをインポートしました。


'エクセルシートをワークにインポート
DoCmd.TransferSpreadsheet , , "W_IN_EXCEL1", strFileName, False, strSeetName1
DoCmd.TransferSpreadsheet , , "W_IN_EXCEL2", strFileName, False, strSeetName2


ところが、4~5回の頻度でデータの並び順が元のEXCELとは狂っています。
いつもEXCELのデータのとおりにインポートするにはどうしたらよいでしょう?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/05/11 03:49:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:rikuzai No.1

回答回数1366ベストアンサー獲得回数141

ポイント60pt

http://www.naboki.net/access/achell/achell_03.html

お疲れ様です。

私が下手にご説明するより↑のサイトを読んでいただくのが一番だとは思いますが、

簡単に言いますと、ACCESSは簡単に並べ替えが可能なことから、データの順番をファイルの中に保存していないのです。

なので、並び方を指定するまではテーブルビューではデータシートビューの規則で勝手に並び替えられることが普通です。

4.5回の頻度で狂ってくるというのは、MDBを一旦閉じたり、最適化したりなどといったことで、格納順序が自動整列で変わってしまったためではないかと思います。


どうしても元のEXCEL表の順序を保持したいということでしたら、

元のEXCEL表に連番を振っておいて、インポートしてから並べ替えるというのが一番現実的だと思います。


また、何かのシステムに組み込んだり、表示したりするためにその並び順が必要ならば、選択クエリを作成して並び替え設定しておく方法をお薦めします。


以上ご参考まで。

id:katakatayama

ありがとうございます。インポートする前のEXCELをコピーして列を追加して連番を振るというのでいこうと思います。

2006/05/09 22:51:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません