森羅観照記

つれづれなるままに・・。当世ではそれを「チラシの裏にでも書いとけ」と呼ぶそう。

データベースまたはオブジェクトは読み取り専用なので、更新できません。

MS Access 97 で作ったアプリケーションの 2007 への変換を頼まれました。
誰がどんな仕様で作ったか知らないものです。

ざっと眺めると、データ入力をしてFTPで取引先にputするらしい。

バーコードコントロールのバージョンを修正するだけで動いたように見えたのですが、VBAFTPを呼ぶところでエラーが出る。
それが

データベースまたはオブジェクトは読み取り専用なので、更新できません。

??

FTPのバッチファイルをアドホックで生成してそれをたたくようだけど、生成先フォルダが読取り専用になっていたり、パラメータのファイル名が実行環境に存在していなかったり、おかしい事だらけ。
しかも転送対象ファイルのドライブ指定が滅茶苦茶で、今まで動いていたことは絶対にありえないんだけど、何だこれは??

1時間半もかけてOSレベルからVBAまで調べ上げるもお手上げです。
歯医者に遅刻しそうだ。

でテーブルを手動でエクスポートしてみる・・・  
同じエラーが出た。

パチパチ・・ おめでとう、手動でVBAと同じエラーが出たよ。前進だ。

そこから調べると、
テーブルのエクスポートで
テキストファイルを指定して
生成ファイルに[.txt][.csv][.tab]以外の拡張子を指定すると
上記のエラーが発生する。

という事がわかりました。
今回はVBAで[.bat]を生成しています。

Access97ではできていたことも、2003以後できないことも確認しました。
こういうエラーメッセージをイワユル《地雷》というのでしょう。
Microsoftに2時間奪われた気分です。

しかも最後の最後で「FTPはできていないはずだ」と指摘すると、FTP転送はしておらずテキスト出力をメールで送信しているということ・・はああ~

[2009-12-18]