画像のあるフォームがMSAccessにあります。画像には、モーダルフォームを開くClickイベントがあります。モーダルフォームには、[OK]ボタンと[キャンセル]ボタンがあります。[OK]ボタンをクリックすると、どのボタンがクリックされたかをメインフォームに通知するイベントが発生するはずです。(これは、C#でDialogResult機能をシミュレートするためのものです)。ただし、イベントハンドラーのコードは実行されません。
モーダル形式は、一般的な宣言で次のようになります。
Public Event OnDialogBoxClose(NewRecordID As Long, DialogResult As DialogResults)
[OK]ボタンがクリックされた次のコード:
RaiseEvent OnDialogBoxClose(NewHardwareBaseItemID, dlgresBtnOKClicked)
一般的な宣言では、メインフォームには次のものがあります。
Dim WithEvents RespondQuickAddClose As Form_qckfrmHardwareBaseItemCreate
および次のイベントハンドラー:
Private Sub RespondQuickAddClose_OnDialogBoxClose(NewRecordID As Long, DialogResult As DialogResults)
MsgBox "Responding to closing of the dialog box" 'Never happens
Me.Requery
End Sub
イベントハンドラーが呼び出されない理由を誰かが説明できますか?ありがとう!
バックグラウンド:
このすべての目的は、モーダルダイアログボックスでエントリを追加し、エントリのIDをメインフォームに戻してコントロールの値を設定できるようにすることです。たとえば、保険フォームに記入していて、そこにない車のブランドを選択する必要があるとします。モーダルダイアログボックスが表示されるアイコンをクリックすると、車のブランドを追加できます。次に、[OK]をクリックすると、保険フォームに戻り、作成したばかりの車のブランドが選択されます。
これは私がここで見つけた例に従います:http: //database.itags.org/ms-access-database/80292/