こんにちは!
Accessについて、質問です!!
あるフォームの『修正』というボタンのクリック時プロパティに、以下のVBAが組み込まれています。
Private Sub 修正_Click()
CopyRec
End Sub
ここに新たに、
『メッセージボックス』『ウインドウを閉じる』VBAを加えたいのです。
現状として……
(1)Private Sub 修正_Click()
CopyRec
MsgBox "修正が完了しました"
End Sub
(2)Option Compare Database
(下線)
Private Sub 修正_Click()
CopyRec
End Sub
Option Compare Database
(下線)
MsgBox "修正が完了しました"
End Sub
上記(1)(2)は、失敗しています。
質問は2つあります。
(1)1つのプロパティに、複数のVBAを設定するのは可能ですか?可能なら、どのようにVBAを入力すれば正常作動するのでしょうか?
(2)『ウインドウを閉じる』VBAの書き方が調べても分かりませんでした……。どのように入力するのですか?
どちらか1つが分かる方でもかまいません。
回答よろしくお願いします!
No2のIf文はこの形ではなく、単に
Private Sub 修正_Click()
CopyRec
MsgBox("修正が完了しました。フォームを閉じます。")
DoCmd.Close acForm, Me.Name
End Sub
のように、コードを羅列しても同じなので
どちらでもいいです。
一応、No1とNo2はIf文を使った例です、ということに
します。
失礼しました。考えてみれば、CopyRec が先にあるので、
Yes/NoでするとNoだと CopyRec をまたすることになるので
NGですね。
以下のようにしてみてください。
Private Sub 修正_Click()
CopyRec
If MsgBox("修正が完了しました。フォームを閉じます。") = vbOK Then
DoCmd.Close acForm, Me.Name
End If
End Sub
要するに、
「修正が終わったので、このフォームを
閉じますよ、よろしいですか?」
というようなことでしょうか。
YESならば閉じるというコードを、というのであれば、
Private Sub 修正_Click()
Dim ret As Integer
CopyRec
ret = MsgBox("修正が完了しました。フォームを閉じます。よろしいでしょうか?", vbYesNo + vbQuestion + vbDefaultButton1, "お知らせ")
If ret = vbYes Then
DoCmd.Close acForm, Me.Name
End If
End Sub
では?
お礼
複数のパターンのVBAをご教授いただき、ありがとうございます! 試したところ、正常作動しました♪ 今回ベストアンサーにしたこちらを採用しましたが、No.1とNo.2も今後の参考にさせていただきます。 回答、ありがとうございます!