次の方法で共有

ACCESS2010のマクロで、while end構文は使えますか?

Anonymous
2012-02-05T09:24:17+00:00

マクロで、テーブルの各行に対して順々に値の操作を行いたいのです。

そのためにwhile ~ end構文を使おうとしましたが、マクロビルダーのアクションカタログ/プログラムフローの中を探しましたが、IF Then Else構文しかなく、困っています。

VBAでは使えそうなことは分かっていますが、不慣れなものですから、できればマクロで対応したいと考えています。

どなたか、ご指導ください。

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

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

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

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

Anonymous
2012-02-05T14:09:15+00:00

「マクロの実行」アクションを使えばどうでしょうか。

「実行回数」や「繰り返し条件式」を設定できますので、For ... Next やwhile ... end のような使い方ができます。

「サブマクロ」にくり返したい処理をいれて、それを「マクロの実行」で実行させればいいでしょう。

マクロ1 を実行すると、「実行しますか?」と聞いてくるので、OK を押すと「テスト」とメッセージがでます。

Cancel をおすまで繰り返します。

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

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

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-02-06T02:36:29+00:00

    ご教示いただいた内容を参考にやってみました。

    テーブルのレコード数をカウントするクエリーを用意し、そのクエリーをソースとするフォームを作って、レコード数を取得し、この値で繰り返し条件式を設定しました。

    サブマクロには、データ処理をしたいテーブルをソースとするフォームを用意し、

    レコードの移動(次のレコード)を行ったところ、

    次々とレコードが移動しました。

    コードはこんな風にしました。

    フォームを開く

                  フォーム名:カウント用フォーム

    フォームを開く

                  フォーム名:データ処理用フォーム

    レコードの移動

                  オブジェクト名:データ処理用フォーム

                  レコード:先頭のレコード

    マクロの実行

                  マクロ名:マクロ1.サブ1

                  実行回数:

                  繰り返し条件式:Forms![ データ処理用フォーム]![ID] < Forms![ カウント用フォーム]![IDのカウント]

    サブマクロの終了

    ありがとうございました。

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

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