
ACCESS2003で開発しています。
ひとつのフォーム(Form1)にサブフォームを10個(SubForm01からSubForm10まで)配置しており、そのフォーム内のボタンで1つのサブフォームを切り替え表示するようにしています。
サブフォーム部分だけがページ遷移しているように見えるような感じのことしたいので、こんな面倒なことをやっています。
各サブフォームの処理は全く一緒なのですが、サブフォームが10個もある為に同じ処理をForm1に10まとまり書かないといけないので、サブフォームの名前を変数にできないかなと考えていますがやり方がわかりません。
下記ソースで色々試してみたのですが、だめでした。
具体的にはサブフォーム(SubForm01~SubForm10まで)のテキストボックス(txtBox1~txtBox30)に順に値を入れたいということです。
教えてください。
Dim strPageCnt As String 'サブフォームの番号
'(処理省略)ここでstrPageCntに01から10までのいずれかの値を放り込んでいます。
For i = 1 To rs.RecordCount 'レコードセット最大値までループ
'↓ここでサブフォーム名を変数に入れる
strSubForm = frmLOT31010_SubForm & strPageCnt
'↓この方法もだめ
Forms!Form1!strSubForm!txtBox(i).Value = rs("NO").Value
'↓この方法もだめ
Forms!Form1!SubForm("strPageCnt")!txtBox(i).Value = rs("NO").Value
'↓これもだめ
Forms!Form1!SubForm(strPageCnt)!txtBox(i).Enable = False
'↓これもだめ
Forms!Form1!SubForm(strPageCnt)!txtBox(i + 1).SetFocus
next
どのようにすればサブフォームの名前を変数に入れて、なおかつサブフォーム名を可変にし(ここで言うところのサブフォームの最後の数値を変えて)サブフォームが扱えるようになりますか?
教えてください。よろしくお願いいたします。
No.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
のようにしたのですがだめでした。サブフォームだから無理なのはわかっていたのですが、やり方がわかりませんでした。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- その他(プログラミング・Web制作) google formsで回答者をスプレッドシートに記載する方法 1 2023/06/23 11:22
このQ&Aを見た人はこんなQ&Aも見ています
-
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
-
4
Access2000 サブフォームのRecordSet取得法
Access(アクセス)
-
5
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
6
サブフォームに変数を代入し、RecordSourceの値を取得したい
Access(アクセス)
-
7
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
8
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
9
「#エラー」の回避
Access(アクセス)
-
10
Access サブフォームでの選択行の取得
その他(データベース)
-
11
オブジェクト型の変数にフォームを入れたい
Visual Basic(VBA)
-
12
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
13
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
14
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
15
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
16
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
17
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
18
Accessのリンクされたテーブルでリンク先ではデータを変更出来ないようにするには?
Access(アクセス)
-
19
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
20
アクセス・別フォームの新規レコードへの移動
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFフォームに本日の日付を自動...
-
Accessでフォームから別フォー...
-
サブフォームの新規レコードに...
-
VBプログラムの終了
-
メッセージボックスの背景色
-
C# 別なフォームへ値を渡す (...
-
VBAにてメッセージボックスを最...
-
Googleフォーム・複数人の申し...
-
Access 無操作の場合、自動で閉...
-
アクセスVBA フォームのス...
-
VBA リストボックスをダブルク...
-
WithEvents変数について
-
ACCESS 表形式フォームで1レ...
-
VC++のコーディングについて
-
VBAでフォームのスクロールバー...
-
子フォームから親フォームのオ...
-
フォームの左上のアイコンだけ...
-
【ACCESS2003】サブフォーム名...
-
accessで2つ以上のフォームを起...
-
バイク王の買取り金額検索フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAにてメッセージボックスを最...
-
VBA リストボックスをダブルク...
-
Accessでフォームから別フォー...
-
Googleフォーム・複数人の申し...
-
PDFフォームに本日の日付を自動...
-
サブフォームの新規レコードに...
-
ユーザーフォーム上にアイコン...
-
リストボックスの選択解除
-
アクセスVBA フォームのス...
-
VBプログラムの終了
-
Access 無操作の場合、自動で閉...
-
メインフォームからサブフォー...
-
フォーム上の全てのコントロー...
-
ExcelVBAでフォーム内でブック...
-
ExcelVBAでユーザーフォーム内...
-
サブフォームのイベント取得
-
dbOpenTableとdbOpenDynaset
-
VB.net(VB)で、フォームにExcel...
-
C# 別なフォームへ値を渡す (...
-
メッセージボックスの背景色
おすすめ情報