- ベストアンサー
MS Access200のフォーム
MS Access2000のVBAを使っています。 メッセージBOXのように、値を返すフォームを作りたいのですが、方法がわかりません。 どのようにすればいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
s_husky です。 *****<広域変数版>***** Option Compare Database Option Explicit Public InputValue Public Function MyInputBox(ByVal Msg As String) As String DoCmd.OpenForm "MyInputBox", , , , , , Msg Do DoEvents Loop Until Not CurrentProject.AllForms("MyInputBox").IsLoaded MyInputBox = inputValue End Function まず、こにょうなMyInputBox 関数を作成。 <MyInputBox フォーム> Option Compare Database Option Explicit Private Sub cmdOK_Click() DoCmd.Close End Sub Private Sub Form_Load() Me.メッセージ.Caption = Me.OpenArgs End Sub Private Sub 入力欄_AfterUpdate() InputValue = 入力欄 End Sub <利用> ? MyInputBox("顧客名を入力して下さい") ※こんなもんでも使えるでしょう!
その他の回答 (3)
s_husky です。 私は、値を戻すべきフォーム名とフィールド名をOpenArgに渡しています。まあ、全体の作り方です。
Private Sub コマンド4_Click() On Error Resume Next Dim strCustName As String strCustName = InputBox("顧客名を入力して下さい。") MsgBox strCustName End Sub 質問の主旨は、オリジナル InputBox の作成要領!?
補足
>質問の主旨は、オリジナル InputBox の作成要領!? すみません。その通りです。 よろしくお願いします。
単にテキストボックスを配置して、そこのtextをvbaから指定すればよいのではないでしょうか? それとも、私何か勘違いしているのでしょうか?
補足
回答ありがとうございます。 質問の意味は、「独自のINPUTBOXを作る」でした。 引き続き、よろしくお願いします。
お礼
ありがとうございます。OpenArgには別の情報を渡しているので、大域変数を使う方法を参考にさせていただきます。