|
> DoCmd.DeleteObject acTable, strac 'テーブルを削除します。
原因はおそらくここですね。
この手前の行で削除するテーブルの名前を指定していますが、
それが見つからないためにエラーとなるのでしょう。
とりあえずの解決手段としては、エクセルファイルの名前を
元に戻した上で、アクセスの方に T_Sample&POP という名前の
テーブルを作成するといいでしょう。テーブルは名前さえ
合っていれば中身はどうでもいいです。
なんで今まで大丈夫だったのにこうなったのかというと、
一度エクセルファイルの名前を変えてしまった際、プログラムの中で
エクセルファイルを取り込もうとしたところでエラーが起こったが、
その前にアクセスのテーブルが削除されており、その後、新しいテーブルが
作成されておらず、次回プログラム起動時にありもしないテーブルを
削除しようとしたためエラーになったということです。
ところでこのプログラム、作成者でないあなたに言っても
仕方のないことですが、システムとして使い物にならないレベルですね。
取り込み対象のエクセルファイルの名前はおろか、その保存場所まで
プログラムそのものに指定してあるため、エクセルファイルの場所を
動かしても今回と同じエラーが起こるでしょう。また、エラー処理が
甘いので、エクセルファイルが見つからなかったり、データ構造が
いじられたりしていると、後で元に戻しても、正常に動かなくなる恐れが
あります(今回はまさにこのパターンでしょう)。
予想するに、元々の制作者もあまりAccessやVBAに詳しくないのでしょう。
エクセルデータを取り込むサンプルプログラムを丸ごとコピーして、
取り込むファイルのファイル名だけ修正したのでしょう。
(元ネタのプログラムはネットですぐに見つかりました)
もしも今後、あなたが勉強してプログラムを修正されるのであれば、
取り込む対象のエクセルファイルをユーザーが指定出来るようにしたり、
テーブル削除をエクセルファイルの存在有無の確認後にするなど
することをお勧めします。
|
|