- 締切済み
access 確認メッセージのはい/いいえの結果で分岐したい
クエリ実行時に表示されるメッセージがありますが、 (DoCmd.SetWarnings False で非表示にできるメッセージ) この「はい/いいえ」を利用して if文のように分岐したいのですが、可能でしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- venzou
- ベストアンサー率71% (311/435)
「いいえ」でキャンセルするとエラーになりますので、それをチェックすれば良いかと。 例: 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
- CHRONOS_0
- ベストアンサー率54% (457/838)
System Warningの戻り値を取得することはできないと思います 自作のメッセージボックスを作るしかないでしょう メッセージが出る操作の前に自作ダイアログでやるかやらないかを確認しておき 警告を出さないようにして実行という手順かな
- Dxak
- ベストアンサー率34% (510/1465)
すみません、何を想定しているのか、よく判りません > この「はい/いいえ」を利用して > if文のように分岐したいのですが、可能でしょうか? システムメッセージで「はい/いいえ」で既に分岐していると思うのですが、VBAで分岐し処理を変えるのであれば、システムメッセージの「はい/いいえ」は活用出来た記憶がないので、 ' 処理が必要なレコードがあるか?レコード数の確認 If DCount(~) > 0 Then ' メッセージボックスの発生 If MsgBox(~, vbYesNo,~) = vbYes Then ' 「はい」の時の処理 Else ' 「いいえ」の時の処理 End If End If のような感じで分岐処理をかけていく方が、よろしいかと思います
お礼
ありがとうございます。 >システムメッセージの「はい/いいえ」は活用出来た記憶がない そうですか。 自前でやってみます。
お礼
ありがとうございます。 >System Warningの戻り値を取得することはできないと思います そうですか。 「○件追加しました。」というメッセージは、ユーザに分かり易いので 使いたいと思いうのですが、 ”重複なし”設定のあるテーブルに、誤って重複したレコードを追加した場合のエラー表示は、ユーザに分りづらいので、 その手前で何か戻り値があればな…と考えた次第です。