• ベストアンサー

ACCESS フォームについて

お世話になっております。 ACCESSのフォームについてのご質問ですが、 2つのフォーム『fm_A』と『fm_B』があり、 fm_A・・・テキストボックス・コマンドボタン fm_B・・・テキストボックス・コマンドボタン グローバル変数一つ があります。 fm_Aのコマンドボタンをクリックすると、fm_Bが開き、fm_Bが開いているときはfm_Aに戻れなくしようとしております。 fm_Bのテキストボックスへ文字をいれ、fm_Bのコマンドボタンをクリックするとグローバル変数へその内容を保存。 保存後fm_Bが閉じてそのグローバル変数をfm_Aのテキストボックスへ入れる。 上記の作業をしようとおもったのですが、どうすればいいのかわかりません。 VB6の場合はform.showを使ってオプションで固定を使えば出来たのですが・・・ よろしくお願いします。

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

  • ベストアンサー
  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.1

○fm_Aのコマンドボタンクリック  DoCmd.OpenForm "fm_B", acNormal, , , , acDialog  fm_Aのテキストボックス = グローバル変数 ○fm_Bのコマンドボタンクリック  グローバル変数 = fm_Bのテキストボックス  DoCmd.Close こんな感じでもできます(あまり素敵な感じではないですが...)。

teas
質問者

お礼

ありがとうございます。 上記の方法で出来ました。 あまり素敵ではないとおっしゃっておりますが、スマートですので感謝です。

その他の回答 (2)

noname#22222
noname#22222
回答No.3

・フォームAからフォームBをオープンする。 ・オープン時に、フォームBをクローズした際に更新するテキストボックスの名前を渡す。 ・フォームBを閉じない限りフォームAには戻れません。 ・フォームBを閉じる際にフォームAの指定されたテキストボックスにフォームBの値を代入します。 こんな具合でしたら、 <フォームA> Private Sub コマンド_フォームB_Click() On Error Resume Next   DoCmd.OpenForm "フォームB", , , Null, , , "テキスト1" End Sub <フォームB> Private Sub Form_Close()   Forms("フォームA").Controls(Me.OpenArgs) = Me.テキスト1 End Sub フォームBのプロパティ ・ポップアップ=はい ・作業ウインドウ固定=はい この場合、広域変数は使う必要がありません。

teas
質問者

補足

説明が不十分でもうしわけありません。広域変数を使用し、再現が必要でした。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>VB6の場合はform.showを使って・・ Accessでもshowメソッドは使えます。 VisibleプロパティにFalseやTrueを設定して代用するとか・・。Me.Visible = False みたいに。 fm_Aのボタンに Dim stDocName As String Dim stLinkCriteria As String stDocName = "fm_B" DoCmd.OpenForm stDocName, , , stLinkCriteria   Me.Visible = False としてfm_Bを開きfm_AのVisibleをFalseにする。 fm_Bのボタンに(fm_BテキストボックスをText2・fm_AテキストボックスをText1として)   Const FORM_NAME = "fm_B"   変数 = Me!Text2   Forms!fm_A.Text1 = 変数 'グローバルで使用しないなら直に代入しても良いと思うのですが。   Forms!fm_A.Requery Forms.fm_A.Visible = True DoCmd.Close acForm, FORM_NAME こんな感じではどうでしょうか。

teas
質問者

お礼

ご返答ありがとうございます。 解決いたしました。また何かありましたらよろしくお願いします。

関連するQ&A