![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
現在、顧客のデータベースを作成しております。DBは名前、住所等の連絡先を入力したテーブルを元に下記のクエリやマクロを作成しています。取引がない顧客等はメイン名簿テーブルから削除して、メインテーブルの構造をコピーした、削除テーブルに入れるようにしたいと考えています。
そこで下記のテーブル、クエリ、グループマクロを作成しました。グループマクロは作成したクエリ3つで構成されています。各アクションクエリは一個一個は正常に作動するのですが、グループマクロを実行しますと、1行目のクエリしか実行されません。実行方法はマクロの画面で更新ボタンを押しても、フォームに削除というボタンを作成してクリック時にグループマクロを実行させるよう設定した場合の両方で起きます。
グループマクロに登録されているマクロを全て実行するにはどうしたらいいのでしょうか。色々調べると、グループマクロは1行目しか実行できないようですが、全て実行する簡単な方法はありませんか?できればVBAではない方法を希望します。大変お手数ですがどうぞ、よろしくお願い致します。
・(テーブル)メイン名簿(以下、名簿tblとします)
⇒フィールド:名前、郵便番号、住所、電話、メモ欄、削除の有無、削除処理日
・(テーブル)削除テーブル(以下、削除tblとします)
⇒フィールドは上記と同じ
・(更新クエリ)削除処理日追加
⇒名簿tblの「削除の有無」フィールドにyesと入力されていれば、「削除処理日」に処理日が
入力されるようにdate関数を設定しています。(date())
・(追加クエリ)削除tblへ追加
⇒名簿tblの「削除の有無」フィールドにyesと入力されていれば、「削除tbl」へそのレコードを、
追加する。
・(削除クエリ)名簿tblからの削除
⇒名簿tblの「削除の有無」フィールドにyesと入力されていれば、名簿tblからそのレコードを、
削除する。
・(マクログループ)削除処理(上から順番に実行希望)
マクロ名 アクション クエリ名
削除処理日追加 クエリを開く (更新クエリ)削除処理日追加
削除tblへコピー クエリを開く (追加クエリ)削除tblへ追加
名簿tblからの削除 クエリを開く (削除クエリ)名簿tblからの削除
以上
No.4ベストアンサー
- 回答日時:
> 全て実行する簡単な方法はありませんか?
3つのアクションクエリを「常にセットで実行」するのでしたら、マクロのデザインビューの
『マクロ名』欄は、全て空白にして下さい。
【現状】 ※クエリ名はここでは省略しています。
<マクロ名> <アクション>
削除処理日追加 クエリを開く
削除tblへコピー クエリを開く
名簿tblからの削除 クエリを開く
【修正版・1】
<マクロ名> <アクション>
クエリを開く
クエリを開く
クエリを開く
【修正版・2】
※bin-chanさんからの回答にもある、クエリ実行前に都度発生する確認メッセージを
省略する場合。
<マクロ名> <条件> <アクション> 『メッセージの表示』引数
(*1) マクロの中止 ↓
メッセージの設定 「いいえ」
クエリを開く
クエリを開く
クエリを開く
※「(*1)」には、以下の式を入れてください:
MsgBox("処理を実行します。", 1, "確認")=2
※マクロの場合は、マクロの処理が終了するのと同時に『メッセージの設定』を「はい」に
戻さなくても自動で元の設定に戻ります(VBAと動作が違うので、VBAに乗り換える
場合は注意が必要)。
★フォームからの呼び出し方が、「(親マクロ名).削除処理日追加」となっている場合は、
「(親マクロ名)」の形に変更して下さい。
------------------------------
また、各アクションクエリを個別でも実行したい、という場合は、以下のような形にします。
【修正版・3】
<マクロ名> <条件> <アクション> 『マクロの実行』引数の値
(*1) マクロの中止 ↓
マクロの実行 「(親マクロ名).削除処理日追加」
マクロの実行 「(親マクロ名).削除tblへコピー」
マクロの実行 「(親マクロ名).名簿tblからの削除」
削除処理日追加 メッセージの設定
クエリを開く
削除tblへコピー メッセージの設定
クエリを開く
名簿tblからの削除 メッセージの設定
クエリを開く
※「(*1)」は【修正版・3】と同じもの。
・・・以上です。
![「accessマクログループの全マクロの実」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/4/256939_5497e8b167bdd/M.jpg)
この回答への補足
DexMachina様
出来ました!!モジュールが苦手なので、【修正1】でやってみました。
マクロ名は入れると便利かなと思っていましたが、、、勉強になりました!
【修正2】はマクロをもう少し勉強してからやって見たいと思います。
画像も付けていただき、本当にありがとうございました!!
No.3
- 回答日時:
クエリを単独で行なうことはできるのならば、
標準モジュールに以下を設定し、
Sub cmdQuery()
'メッセージの無効化
DoCmd.SetWarnings False
DoCmd.OpenQuery "削除処理日追加"
DoCmd.OpenQuery "削除tblへ追加"
DoCmd.OpenQuery "名簿tblからの削除"
'メッセージの有効化
DoCmd.SetWarnings True
End Sub
マクログループのかわりに、
マクロで「プロシージャの実行」で、
プロシージャ名を「cmdQuery」を
設定する方法はどうですか。
この回答への補足
piroin654様
ありがとうございます!
ただ、モジュールが苦手なので…
もう少し勉強して参考にしたいと思います。
お忙しい中、ありがとうございました!!
No.2
- 回答日時:
「ツール>オプションのアクションクエリの確認で、チェックを外す」だったんですが
その他の処理でもすべて確認が無くなってしまうのでマズそうですね。
マクロの前後に各1行ずつ追加して、「メッセージの設定」を加えてみてください。
削除処理日追加などで「作成(削除)します」系のメッセージが出ないはずです。
メッセージ抑止 メッセージの設定 “いいえ”
削除処理日追加 クエリを開く (更新クエリ)削除処理日追加
削除tblへコピー クエリを開く (追加クエリ)削除tblへ追加
名簿tblからの削除 クエリを開く (削除クエリ)名簿tblからの削除
メッセージ有効 メッセージの設定 “はい”
No.1
- 回答日時:
記載されているマクロではなく、単純な削除クエリを作成・実行すると
「削除してよいですか?」的な確認が行われませんか?
ツール>オプションで、アクションクエリの項を確認なさると良いかも。
(都度、確認が入るので停止してませんか?)
この回答への補足
bin-chan様
早速のご回答、ありがとうございます!!
すみません、ご回答について質問をさせてください。。
●記載されているマクロではなく、単純な削除クエリを作成・実行すると
「削除してよいですか?」的な確認が行われませんか?
⇒はい、単純な削除クエリだけで実行するとメッセージが出て削除されます。
また他のクエリも単体だけだと正常に動作します。
でもフォームに「削除」ボタンを作成してそこをクリックすると、(更新クエリ)削除処理日追加→(追加クエリ)削除tblへ追加→(削除クエリ)名簿tblからの削除という順番でアクションクエリを一気に実行させたいのです。その様な方法はありませんでしょうか。
●ツール>オプションで、アクションクエリの項を確認なさると良いかも。
(都度、確認が入るので停止してませんか?)
⇒すみません、これはアクションクエリのどういったことを確認すればいいのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 10:35
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
ExcelVBAでPDFを閉じるソース
-
一つのTeratermのマクロで複数...
-
VBA 実行時エラー 1004 マクロ...
-
ExcelのVBA。public変数の値が...
-
【Excel】複数のマクロをまとめ...
-
TERA TERMを隠す方法
-
エクセルマクロでワードの一ペ...
-
マクロ実行時、ユーザーフォー...
-
TeraTermマクロの文字列結合
-
c言語で言うところの #define
-
エクセルに張り付けた写真のフ...
-
VBAで図形同士をコネクタで繋い...
-
右クリックによるイベントマク...
-
複数ページあるPDFファイル内の...
-
accessマクログループの全マク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
EXCELのVBAでRange("A1:C4")を...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロ実行時、ユーザーフォー...
-
特定文字のある行の前に空白行...
-
エクセルVBA
-
マクロの記録を使用したマクロ...
-
wordを起動した際に特定のペー...
-
ダブルクリックで貼り付けた画...
おすすめ情報