よろしくお願いいたします。
フォームでテキストボックスをダブルクリックすると、イベントが発生します。
そのイベントに、別フォームに入力した値に基づき処理を分岐する記述をしている最中です。
別フォームには、1つのコンボボックスがあり、この値を使います。
しかし、ダブルクリックイベントでは当然、フォームを開いて、入力する値を待たずにとっとと処理が終了してしまいます。
Inputboxのように入力する値を待ってくれるような記述は何かありますでしょうか?
DoCmd.OpenFormでフォームを開くときに、ダイアログモードを指定すればフォームを閉じる(あるいは非表示になる)まで次のコードにすみません。また、開いている間はユーザーはこのフォーム以外を操作できません。それを利用するといいでしょう。 具体的には、WindowMode引数にacDialogを設定します。
DoCmd.OpenForm メソッド (Access) | Microsoft Learn
コード例
'テキストボックスのダブルクリック時 Private Sub テキスト1_DblClick(Cancel As Integer) Cancel = True DoCmd.OpenForm "InputForm", WindowMode:=acDialog End Sub
'別フォーム(InputForm)上のコマンドボタンのクリック時 Private Sub OKボタン_Click() Me.Visible = False '非表示にする 'ダブルクリックしたテキストボックスがActiveControlになる Screen.ActiveControl = Me.コンボ2.Value DoCmd.Close acForm, Me.Name End Sub
hatena様
ご返答ありがとうございます。
今回ばかりは、コードをストップする手立てはないんじゃないかと思っていました。
ダイアログにすれば止まる、というのは驚きました。
それと、別フォームを非表示にしたら、元フォームのテキストボックスがアクティブコントロールになること、 また、Screen.という使い方も知りませんでした。
今回も助かりました。 ありがとうございました。 早速、やってみます!
不適切なコンテンツとして通報するには以下の「送信」ボタンを押して下さい。 現在このグループでは通報を匿名で受け付けていません。 管理者グループにはあなたが誰であるかがわかります。
どのように不適切か説明したい場合、メッセージをご記入下さい。空白のままでも通報は送信されます。
通報履歴 で、あなたの通報と対応時のメッセージを確認できます。
トピックをWIKIWIKIに埋め込む
次のコードをWIKIWIKIのページに埋め込むと最新のコメントがその場に表示されます。
// generating...
プレビュー
Accessのテーブルやクエリのデータを貼り付ける場合は下記で、Markdown書式のテーブルに変換して貼り付けてください。
Markdown Tables generator
ここまでがあなたのコンテンツ
ここからもあなたのコンテンツ
DoCmd.OpenFormでフォームを開くときに、ダイアログモードを指定すればフォームを閉じる(あるいは非表示になる)まで次のコードにすみません。また、開いている間はユーザーはこのフォーム以外を操作できません。それを利用するといいでしょう。
具体的には、WindowMode引数にacDialogを設定します。
DoCmd.OpenForm メソッド (Access) | Microsoft Learn
コード例
hatena様
ご返答ありがとうございます。
今回ばかりは、コードをストップする手立てはないんじゃないかと思っていました。
ダイアログにすれば止まる、というのは驚きました。
それと、別フォームを非表示にしたら、元フォームのテキストボックスがアクティブコントロールになること、
また、Screen.という使い方も知りませんでした。
今回も助かりました。
ありがとうございました。
早速、やってみます!