次の方法で共有

Access2002 2003にて、マクロ実行時のエラー対策

Anonymous
2014-08-05T06:49:03+00:00

お世話になっております。

Access2002または、2003の環境で、下記のマクロを使用しています。

「USBメモリ直下の『データ.csv』を"テーブル1"へインポート


オブジェクトの削除:テーブル1

インポート:=Inputbox("ドライブ名入力","","F:") & "データ.csv"

       テーブル1にインポート


USBの刺し忘れや、ドライブ名の記入間違いで、インポートに失敗により、下記のようなエラーが予想します。

・テーブル1が削除されてからエラー落ちをした後に

 マクロを実行すると、テーブルの削除ができないとメッセージが出て、処理全体が中断される

・インポート元のファイルが無いのにインポートを実行しようとするとエラーが出る

Access2010では、エラー時 イベントがあるそうですが、2003以前には機能がないので、

IIFなどを使用した方法で、エラー発生時の解決、または処理実行前のファイル有無チェックなどはできませんでしょうか?

※マクロ内のみで解決をしたいです。

(古くから、マクロのみを使用しており、マクロから、VBに切り替えるのなら、膨大な量のmdbファイルがあるため)

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2014-08-06T08:16:37+00:00

こんばんは、ずっちです。

マクロのみでってのはできるのかな・・・

既存のマクロはそのままでって事なので、VBAでユーザ定義関数を使うのはいかがでしょう。

新規で標準モジュールを追加し、そこに以下のようなものを記述

(Dir 関数はVBAでのみ使える関数です)

このユーザ定義関数「FileExistChk」は、引数で受け取ったパスが存在していればTrueを返します。

Inputbox が受け取った値を一時変数に格納し、

格納されたパスをユーザ定義関数「FileExistChk」で評価し、結果で分岐する。

といったマクロを作ります。

「ファイルあるよ!」のメッセージボックスの代わりにインポートをすればいいかなと。

ほかにもやり方はあるかもですが、私がパッと思いついた方法をご紹介しました。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-08-07T00:06:11+00:00

    Access2003以前では、一時変数の機能は無いそうですね

    (変数を代用するには、別途VBを用意しておく必要があるとか

     ttp://d.hatena.ne.jp/himorogi/20110311/1299814597)

    以下、多少エラーは出る事がありますが、自己解決途中の内容です。

    (Access2002での環境)


    マクロ画面にて、

    表示 → 条件にレ点して表示

    1行目

    条件:DCount("*","MSysObjects","[Name]='テーブル1'")>0

    オブジェクトを削除:テーブル1

    2行目

    インポート:=InputBox("ドライブ名を記入","","F:") & "ファイル名.csv"


    Dcountで、システムオブジェクト内に、テーブル名があった時にのみテーブル削除を行います。

    インポート元に、ファイルが無かった時は、"テーブル1"が削除されっぱなしになりますが、もう一度正常に実行しなおしたら問題なく使用できます。ということで・・・

    2行目

    条件:=InputBox("ドライブ名を記入","","F:") & "ファイル名.csv"インポート:=InputBox("ドライブ名を記入","","F:") & "ファイル名.csv"

    とすると、条件のInputBox後に、インポートのInputBoxが開かれて、条件を付ける意味がないため、

    ここは一番上で紹介したURLの方法で、変数を用意する必要がありそうです。

    VBAに追記するか、マクロ1本で運用するかは個人次第ってところかと

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません