次の方法で共有

サブフォームのコントロール名について

Anonymous
2017-03-16T08:01:19+00:00

大変お世話になります。

サブフォームのコントロール名について教えて下さい。

Forms!フォーム名!サブフォーム名.Form!コントロール名

で、コントロールの値は指定できるのですが、

サブフォームレコードの1番目、2番目の指定の仕方が解りません。

コンボックス.Clumn(2) といったような指定がないのでしょうか?

コンボックスを「隠して」設定すれば可能かなーなどと思っています。

添付ファイルを付けました。

最下段の商品名(3つのテキストボックス)に、商品名を表示したいのです。

宜しく、お願いします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

7 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-03-16T23:28:41+00:00

    というのは、図にあるように、

    「氏名・住所」のある名簿をメインにして、サブが「商品」になります。

    名簿と商品は、「一対多」のクエリを設定しています。

    サブフォームコントロールの親リンクフィールド/子リンクフィールドを設定して、

    関連したデータのみ表示しているとことですよね。

    前回までの回答の方法でも、抽出条件を適切に設定して、親フォームのレコード移動のたびに再度実行するか、

    リストボックスを再クエリすれば可能です。

    サブフォームを使用する場合は、下記のコードになります。

    Dim rs As DAO.Recordset

    Set rs = Me.売上.Form.RecordsetClone

    For i = 1 To 5

       If rs.EOF Then Exit For

       Me("テキスト" & i) = rs!商品

       rs.MoveNext

    Next

    rs.Close

    前の回答の Set rs = ・・・・ の部分を変更するだけです。

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2017-03-16T15:30:40+00:00

    VBAを使わない別案

    リストボックスを配置して下記のように設定します。

    値集合ソース クエリ名

    名前 リスト1

    可視 いいえ

    テキスト1のコントロールソース

    =[リスト1].ItemData(0)

    テキスト2のコントロールソース

    =[リスト1].ItemData(1)

    テキスト3のコントロールソース

    =[リスト1].ItemData(2)

    テキスト4のコントロールソース

    =[リスト1].ItemData(3)

    テキスト5のコントロールソース

    =[リスト1].ItemData(4)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2017-03-16T15:21:00+00:00

    サブフォームは使用しなくてもいいのですね。

    テーブル(または、クエリ)のデータを自由な位置に表示したいということですね。

    下記のコードを適切なイベントで実行すればいいでしょう。

    Dim rs As DAO.Recordset

    Set rs = CurrentDB.OpenRecordset("SELECT * FROM テーブル名 WHERE 抽出条件")

    For i = 1 To 5

       If rs.EOF Then Exit For

       Me("テキスト" & i) = rs!商品

        rs.MoveNext

    Next

    rs.Close

    テーブル名や抽出条件は適切に変更してください。

    フォーム上に、テキスト1,  テキスト2,  テキスト3,  テキスト4,  テキスト5 の5つのテキストボックスを配置。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2017-03-16T14:47:16+00:00

    お世話になります。

    >それぞれ1番目のレコードの値、2番めのレコードの値、3番目のレコードの値

    >を表示したいということでしょうか。

    はい、その通りです。

    添付した画は、テスト用です。

    サブデータシートは確認用で、実際には、使いません。

    サブデータシートやレポートのグループでは、

    思った場所に、別々に商品名を表示できないので、困っているのです。

    実際には、クエリで5件以内でデータを選択して、使用するつもりです。

    宜しくお願いします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2017-03-16T13:26:44+00:00

    テキストボックスのコントロールソースを

    =Forms!フォーム名!サブフォーム名.Form!コントロール名

    とした場合、カレントレコードの値が表示されます。

    で、メインフォームにテキストボックスが3つありますが、

    それぞれ1番目のレコードの値、2番めのレコードの値、3番目のレコードの値を表示したいということでしょうか。

    すでにサブフォームに表示されているのと同じものをメインフォームに表示する目的はなんでしょうか。

    テキストボックスは3つですが、サブフォームのレコード数が4以上の場合はどうするのでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません