- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【ACCESS2003】サブフォーム名を変数に入れたい)
【ACCESS2003】サブフォーム名を変数に入れたい
このQ&Aのポイント
- ACCESS2003で開発しています。ひとつのフォーム(Form1)にサブフォームを10個(SubForm01からSubForm10まで)配置しており、そのフォーム内のボタンで1つのサブフォームを切り替え表示するようにしています。サブフォーム部分だけがページ遷移しているように見えるような感じのことしたいので、こんな面倒なことをやっています。各サブフォームの処理は全く一緒なのですが、サブフォームが10個もある為に同じ処理をForm1に10まとまり書かないといけないので、サブフォームの名前を変数にできないかなと考えていますがやり方がわかりません。
- 具体的にはサブフォーム(SubForm01~SubForm10まで)のテキストボックス(txtBox1~txtBox30)に順に値を入れたいということです。
- どのようにすればサブフォームの名前を変数に入れて、なおかつサブフォーム名を可変にし(ここで言うところのサブフォームの最後の数値を変えて)サブフォームが扱えるようになりますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
やりたい事が良くわかりませんが strSubForm = frmLOT31010_SubForm & strPageCnt のfrmLOT31010_SubFormって何?サブフォームの名前? サブフォーム(SubForm01~SubForm10まで)と書かれていますが 名前をSubForm・・とされているなら For Ix1 = 1 To 10 Controls("SubForm" & Format(Ix1,"00")).Form.TxtBox1.Text = "XXX" Next でアクセスできるのでは また、サブフォーム内のテキストも名前を順に取っているのなら Controls("SubForm" & Format(Ix1,"00")).Form.Controls("TxtBox" & Format(Ix2,"00")).Text でアクセスできると思います。 文字とコントロールの文字列結合は出来ません コントロール名とするなら.Nameと書くべきだし擬似的にコントロールを配列化したいなら名前を連番にしてControls("SubForm" & Format(Ix1,"00"))として扱う方法がベターです
お礼
frmLOT31010_SubFormとは実際使っているサブフォームです。 置き換えたつもりだったのですが・・・ noah7150のさんに教えていただいた方法でテキストボックスの参照についてはできました。ありがとうございました。 あともうひとつ。 サブフォーム自体を変数に入れたいのです。 やりたいことは、サブフォームをVisible = false です。 どのようにしたらよいでしょうか?? Forms("SubForm" & Format(Ix1,"00")).Visible = False のようにしたのですがだめでした。サブフォームだから無理なのはわかっていたのですが、やり方がわかりませんでした。 よろしくお願いいたします。