AccessでExcelデータをインポート
お世話になります。
Access2003/2010
Excel2003/2010
10年程前より、Access2003で作成したツール(Excel2003形式のファイルを
インポート)を利用しております。
Excelファイルは毎日追加/更新しているのですが、先日、とうとうExcel2003
の行の上限である65,536行を超えてしまいました。
今後はExcel2010形式のファイル(行の上限は1,048,546行)とし、かつ、
2010形式のファイルをインポートできるようツールの修正をしなければならなく
なりました。
ツールの修正というよりは、今までAccess2003上で使用していたので、そのまま
Access2010上で使用したいだけなので、修正が必要がどうかも分からない
状況です。
そこで2点質問ですが、
1.現状インポートする際は、
DoCmd.TransferSpreadsheet acImport, 8, "temp", strFile, True
としておりますが、「8」の箇所は2010形式のExcelをインポートする場合
どのように修正すればよいでしょうか。
ヘルプを見ても8(Excel2000形式)までの記載しかありません。
とりあえず8のままExce2010形式で、かつ2003の行の上限を超えている
ファイルを(66000行)インポートしてみましたが、行は削れることなく
インポートできました。
2.インポート時の文字数制限について
インポートするExcelファイルの「備考」フィールドは文字数が多いのですが、
Access2003上で使用すると全ての文字列(750文字程度)をインポート
できておりました。
しかしAccess2010上で使用すると、文字列が途中で切れる(255文字)
不具合が発生しました
インポートする際は、あらかじめテーブルを作成しておき、そこに対して
Excelのデータをインポートしております。なお、「備考」のデータ型は
メモ型です。
(255文字で切れることから)恐らくAccessがインポートする時点で「備考は
テキスト型」と判断しているから255で切れてしまうのではないか、で、切れた
文字列をメモ型に入れてるだけのように見受けられるのですが。。
2003から仕様が変わってしまったのでしょうか。
上記のことから、インポートするExcelの先頭行の「備考」に、適当な文字列
(750文字)を入力し、それをインポートすると途切れることなくインポート
できました。
※Accessがメモ型と認識したから?
※いずれもツールをAccess2010上で使用した状況です。
ご教示の程、宜しくお願い致します。