前提・実現したいこと
メインフォームにいくつかのサブフォームを配置し、
サブフォーム1のボタンを押すと、メインフォームに配置しているF02_1_入力画面のテキストボックスに表示する値を変更するプログラムを作成しています。
表示する値を変更後に問題が発生しました。
発生している問題・エラーメッセージ
テキストボックスに表示する値を変更したところ、F02_1_入力画面を開くと変更後の値が表示されていますが、メインフォームのサブフォームエリアには、値変更後のF02_1_入力画面が表示されていません。
該当のソースコード
VBA
1'レコードセットを設定する 2 Set rs2 = CurrentDb.OpenRecordset("Q99_貯蔵品") 3 'カウント用変数を宣言し、初期値を設定する 4 Dim i As Integer: i = 0: Hiragana(1) = -1: Hiragana(2) = -1 5 'レコードが終わるまで繰り返す 6 Do Until rs2.EOF 7 '現在のレコードの貯蔵品名の読みが押されたひらがなと一致した場合 8 'Hiragana(0)には押されたボタンのひらがなが格納されています。 9 If Left(rs2(2), 1) = Hiragana(0) And Hiragana(1) = -1 Then 10 '現在のレコード番号を変数に格納する 11 '(押されたひらがなと一致するひらがなのスタート番号) 12 Hiragana(1) = i 13 End If 14 '押されたひらがなと不一致になった場合 15 If (Left(rs2(2), 1) <> Hiragana(0)) And (Hiragana(1) >= 0 And Hiragana(2) = -1) Then 16 '一致する最後のレコード番号を変数に格納する 17 Hiragana(2) = i - 1 18 '繰り返し処理から強制離脱する 19 Exit Do 20 End If 21 '次のレコードに移動し、カウント変数を加算する 22 rs2.MoveNext: i = i + 1 23 '繰り返す 24 Loop 25 'レコードセットを解除する 26 Set rs2 = Nothing 27 28 '押されたひらがなで始まる貯蔵品名がない場合 29 If Hiragana(1) = -1 Then 30 MsgBox Hiragana(0) & "で始まる貯蔵品名はありません。", vbOKOnly + vbInformation, _ 31 "用度請求配達システム" 32 Exit Sub 33 End If 34 35 'フォーム名を変数に格納する 36 strForm = "F02_1_入力画面" 37 '変数を宣言し、初期値を指定する 38 Dim j, k, moji As Integer: j = 1: k = 0: moji = 98 39 'ひらがなが一致する件数だけ繰り返し処理を実行する 40 For i = Hiragana(1) To Hiragana(2) 41 '1行(レコード)分繰り返す 42 For k = 0 To 10 43 'フィールド(列)番号が2以外の場合 44 If k <> 2 Then 45 '出力に使用するテキストボックス名を変数に格納する 46 strTxt = "Txt_" & Chr(moji) & CStr(j) 47 'フィールド(列)番号が3・5以外の場合 48 If k <> 3 And k <> 5 Then 49 'テキストボックスに貯蔵品情報を表示する 50 Forms(strForm).Controls(strTxt).Value = Stock(i, k) 51 End If 52 '文字コードを加算する 53 moji = moji + 1 54 End If 55 Next 56 '表示件数用カウント変数を加算する 57 j = j + 1: moji = 98 58 Next
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/01 08:45 編集