プロが教えるわが家の防犯対策術!

クエリ実行時に表示されるメッセージがありますが、
(DoCmd.SetWarnings False で非表示にできるメッセージ)
この「はい/いいえ」を利用して
if文のように分岐したいのですが、可能でしょうか?

よろしくお願いします。

A 回答 (3件)

「いいえ」でキャンセルするとエラーになりますので、それをチェックすれば良いかと。



例:
Sub test()
 Dim SQL As String
 On Error GoTo Test_Error
 SQL = "SELECT * INTO 新しいテーブル名 FROM テーブル名;"
 DoCmd.RunSQL SQL
 'はいの場合の処理

Test_Next:
 Exit Sub

Test_Error:
 Debug.Print Err.Description
 Debug.Print Err.Number
 'いいえの場合の処理
 Resume Test_Next
End Sub
    • good
    • 2

System Warningの戻り値を取得することはできないと思います



自作のメッセージボックスを作るしかないでしょう
メッセージが出る操作の前に自作ダイアログでやるかやらないかを確認しておき
警告を出さないようにして実行という手順かな
    • good
    • 0
この回答へのお礼

ありがとうございます。

>System Warningの戻り値を取得することはできないと思います

そうですか。
「○件追加しました。」というメッセージは、ユーザに分かり易いので
使いたいと思いうのですが、
”重複なし”設定のあるテーブルに、誤って重複したレコードを追加した場合のエラー表示は、ユーザに分りづらいので、
その手前で何か戻り値があればな…と考えた次第です。

お礼日時:2007/01/18 16:02

すみません、何を想定しているのか、よく判りません



> この「はい/いいえ」を利用して
> if文のように分岐したいのですが、可能でしょうか?

システムメッセージで「はい/いいえ」で既に分岐していると思うのですが、VBAで分岐し処理を変えるのであれば、システムメッセージの「はい/いいえ」は活用出来た記憶がないので、

' 処理が必要なレコードがあるか?レコード数の確認
If DCount(~) > 0 Then
' メッセージボックスの発生
If MsgBox(~, vbYesNo,~) = vbYes Then
' 「はい」の時の処理
Else
' 「いいえ」の時の処理
End If
End If

のような感じで分岐処理をかけていく方が、よろしいかと思います
    • good
    • 0
この回答へのお礼

ありがとうございます。

>システムメッセージの「はい/いいえ」は活用出来た記憶がない

そうですか。

自前でやってみます。

お礼日時:2007/01/18 16:12

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