お世話になります。
現在、顧客のデータベースを作成しております。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】と同じもの。
・・・以上です。
この回答への補足
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで縦に並んだデータを...
-
Excel2000:Ontimeメソッドで特...
-
ExcelのVBA。public変数の値が...
-
既存のマクロをコンボボックス...
-
エクセルで別のセルにあるふり...
-
右クリックによるイベントマク...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excelで特定の文字のところで自...
-
特定のPCだけ動作しないVBAマク...
-
マクロ実行時、ユーザーフォー...
-
エクセルに張り付けた写真のフ...
-
エクセルでA1セルに時刻をリア...
-
エクセル マクロ 指定日の指定...
-
EXCELのマクロの重複起動...
-
VBAの記述の、Sub SetValue()など
-
エクセルのマクロについて教え...
-
VC++ 2008 EXPRESS "_T"識別子...
-
ワードで算用数字を漢数字に変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
Excel マクロでShearePoint先の...
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
マクロ実行時、ユーザーフォー...
-
wordを起動した際に特定のペー...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロで空白セルを詰めて別シ...
-
【EXCEL VBA】オートシェイプを...
-
エクセルのマクロをセルの値に...
おすすめ情報