アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは!
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つが分かる方でもかまいません。
回答よろしくお願いします!

A 回答 (3件)

要するに、


「修正が終わったので、このフォームを
閉じますよ、よろしいですか?」
というようなことでしょうか。
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

では?

この回答への補足

説明不足、失礼しました;
実を言うと、私の希望としては、

メッセージボックス
タイトル:修正完了
メッセージ:修正が完了しました
ボタン:『OK』のみ

で、OKクリックと同時にフォームを閉じる形にしたいのです。
pirorin654さんのVBAも参考に、設定してみます。
回答ありがとうございます!

補足日時:2013/12/11 17:13
    • good
    • 0

失礼しました。

考えてみれば、CopyRec が先にあるので、
Yes/NoでするとNoだと  CopyRec をまたすることになるので
NGですね。

以下のようにしてみてください。


Private Sub 修正_Click()
CopyRec
If MsgBox("修正が完了しました。フォームを閉じます。") = vbOK Then
DoCmd.Close acForm, Me.Name
End If
End Sub
    • good
    • 0

No2のIf文はこの形ではなく、単に



Private Sub 修正_Click()
CopyRec
MsgBox("修正が完了しました。フォームを閉じます。")
DoCmd.Close acForm, Me.Name
End Sub

のように、コードを羅列しても同じなので
どちらでもいいです。
一応、No1とNo2はIf文を使った例です、ということに
します。
    • good
    • 0
この回答へのお礼

複数のパターンのVBAをご教授いただき、ありがとうございます!
試したところ、正常作動しました♪
今回ベストアンサーにしたこちらを採用しましたが、No.1とNo.2も今後の参考にさせていただきます。

回答、ありがとうございます!

お礼日時:2013/12/12 12:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!