私は契約の詳細といくつかの追加情報を入力するサブフォームのレコードフォームを1つ持っています。メインフォームには、閉じるためのコマンドボタンがあります。Accessのフォームからの終了を確認するMsgBox
閉じるときに2つのコントロール(メインフォームとサブフォームに1つ)をチェックする必要があります。いくつかの条件が満たされている場合は、はい/いいえMsgBoxが表示されます。ユーザが「はい」を押すと、フォームが閉じ、「いいえ」を押すと、フォームは開いたままになります。
Private Sub Form_Unload(Cancel As Integer)
Dim Response As Integer
Response = MsgBox("It looks like this contract is fixed. Would you like to edit the final price?", vbYesNo, "Database Information")
If Me![fixed price] = 0 And Me![Fixation Orders Subform1].Form!Text38 = "Final Fixed Price" Then
Cancel = True And Response
If Response = vbYes Then
Cancel = True
Else
Cancel = False
End If
Else
Cancel = False
End If
End Sub
問題:
は、これまでのところ、私はこれを持って、私は「応答」を定義した前のMsgBoxが正しく登場しますが、フォームはとにかく閉じました。メッセージボックスがフォームがいずれかのクローズ私は「はい」または「いいえ」さらに
を押して何
- :私は「場合」第二に、それを使用するように定義された後、この問題を解決した後、次のレコードに行くときにもこのコードを条件に当てはめてください。前もって感謝します。
は多分 '=レスポンスを取り消し=キャンセル代わりに= trueおよびResponse'キャンセル'の真とvbYes'、手段は同じになりますANDの反対側。 「TRUEと今日=水曜日」は、一日だけチェックする必要があります。 ifを見て、論理的ではないと思われる場合は、Cancelを設定してから、msgboxの決定に基づいてください。 end subの前に、単に 'cancel = response = vbYes'を入力するか、それとも決まっているのかを判断してください。 –
これは奇妙なコードです。もちろん、常にメッセージボックスが表示されます。そのサブシェルで最初に行うことは、メッセージボックスを表示し、その結果を 'Response'に割り当てます。これは 'If'ステートメントにネストされていません。 'Cancel = True And Response'という行は正確には何ですか?あなたは 'Option Explicit'を持っていますか? –
こんにちは、もう一度エリック。私はちょうど私自身でVBAを学び始めたので、plsは辛抱強くてください。あなたが参照している行は、アンロードを取り消し、条件が満たされている場合msgboxをポップアップするはずです。私が回答を定義するまでうまくいった。私は "Option Explicit"が何であるか分からない。 msgboxの応答を確認する適切な方法は何ですか? – aran0ia