• ベストアンサー

MS Access200のフォーム

MS Access2000のVBAを使っています。 メッセージBOXのように、値を返すフォームを作りたいのですが、方法がわかりません。 どのようにすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.3

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)

noname#22222
noname#22222
回答No.4

s_husky です。 私は、値を戻すべきフォーム名とフィールド名をOpenArgに渡しています。まあ、全体の作り方です。

KAZUMI2003
質問者

お礼

ありがとうございます。OpenArgには別の情報を渡しているので、大域変数を使う方法を参考にさせていただきます。

noname#22222
noname#22222
回答No.2

Private Sub コマンド4_Click() On Error Resume Next   Dim strCustName As String   strCustName = InputBox("顧客名を入力して下さい。")   MsgBox strCustName End Sub 質問の主旨は、オリジナル InputBox の作成要領!?

KAZUMI2003
質問者

補足

>質問の主旨は、オリジナル InputBox の作成要領!? すみません。その通りです。 よろしくお願いします。

noname#60992
noname#60992
回答No.1

単にテキストボックスを配置して、そこのtextをvbaから指定すればよいのではないでしょうか? それとも、私何か勘違いしているのでしょうか?

KAZUMI2003
質問者

補足

回答ありがとうございます。 質問の意味は、「独自のINPUTBOXを作る」でした。 引き続き、よろしくお願いします。