Microsoft Access 掲示板

メインフォームからサブフォームにSetFocusさせたい

4 コメント
views
4 フォロー

win10pro64
microsoft365access

いつもお世話になってます。
相談お願いします。

サブフォームを持つメインフォームのコマンドボタンクリック後にサブフォームのコントロールにカーソルを移動させたいのです。

メインフォーム「F_受注入力_メイン」
サブフォーム「F_受注入力_サブ」
メインフォーム上のサブフォームコントロール名「受注明細」

「F_受注入力_メイン」にコマンドボタン「コマンド_登録」を配しておりまして、入力必須コントロールに未入力の場合メッセージボックスを出して、入力を促すように該当コントロールにカーソルが自動で行くようにしたいと思っています。
同一フォーム上ではわかるのですが、サブフォームコントロールへの移動がどうしてもわからずご相談した次第です。

今のところ「コマンド_登録」のクリック時に以下のコードを書いています。

With codeContextObject
    If (IsNull(Forms!F_受注入力_メイン!受注明細.Form!品名)) Then
        Beep
        MsgBox "品種番号が正しく入力されていません。", vbCritical, "受注管理"
        Forms!F_受注入力_メイン!受注明細.Form!品種番号.SetFocus
    Else
    End If
End With

サブフォームの「品名」に「品種番号」とリレーションが設定されているので、「品種番号」が正しく入力されていない場合、「品名」は空欄になるのを判定基準にしています。
なので、「品名」が空欄の場合メッセージボックスが出て「品種番号」にカーソルが移動するようにしたいのですが、現状のコードではそのようになりません。

どうすればできるかお教えいただけませんでしょうか。
よろしくお願いします。

涼子
作成: 2021/09/07 (火) 12:08:40
通報 ...
1
りんご 2021/09/07 (火) 13:46:49 c564b@0e907
Public Sub ほにゃらら()
    Forms![フォーム名]![サブフォームコントロール名].SetFocus
    Forms![フォーム名]![サブフォームコントロール名].Form![コントロール名].SetFocus
End Sub
2
りんご 2021/09/07 (火) 13:59:32 c564b@0e907 >> 1

サブフォームの「品名」に「品種番号」とリレーションが設定されている

ところで、これはどういう事でしょうか?

3

【解決】
リンゴ様

いつもありがとうございます!

教えて頂きましたコードで動作実現できました!!
「品名」に「品種コード」とリレーション・・・表現が間違ってました。
正しくは”両方とも同一テーブルで「品種番号」に入力したら「品名」に自動的に入力されるので・・・”でした。
紛らわしい表現をしてしまいすみませんでした。

早々のご回答ありがとうございました!
また、行き詰ったら宜しくお願いします。

4
りんご 2021/09/07 (火) 17:01:46 c564b@0e907 >> 3

品種コードですが、もしかして親テーブルから参照してきているのかしらと、私が早とちりしていました。ごめんなさい。