Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Access 2016)
サブフォームの切り替え
投稿日時: 18/09/21 10:14:59
投稿者: きき

サブフォームを切り替えると、
レコードが1つ(先頭)しか表示されず、
サブフォームは、レコードは1/1 フィルタなし となっています。
 
Me.subF.SourceObject = "フォーム1"
 
なにが原因なのでしょうか?

投稿日時: 18/09/21 10:17:28
投稿者: きき

サブフォームのリンクフィールドは、
いずれも最初から設定してありません。

回答
投稿日時: 18/09/21 10:37:44
投稿者: sk

引用:
サブフォームを切り替えると、
レコードが1つ(先頭)しか表示されず、
サブフォームは、レコードは1/1 フィルタなし となっています。

それの何が問題なのかを具体的に明記されることをお奨めします。
 
例えば、そのサブフォームが単票フォームであり、
レコードソースであるテーブル/クエリの
実際のレコードの件数が 1 件以下なのであれば、
そのように表示されるのは当然でしょう。

投稿日時: 18/09/21 10:51:56
投稿者: きき

サブフォームは帳票フォームでレコード数は150です。

回答
投稿日時: 18/09/21 11:40:57
投稿者: sk

引用:
サブフォームは帳票フォームでレコード数は150です。

・メインフォームのレコードソースの主キーと同名のフィールドが
 サブフォームのレコードソースにも存在している。
 
・そのフィールドはサブフォームのレコードソースにおける
 主キー(もしくはユニークキー)である。
 
・サブフォームコントロールのソースオブジェクトを変更した際、
 [リンク親フィールド]プロパティと[リンク子フィールド]プロパティが
 自動設定される。
 
・その結果、メインフォームのレコードとサブフォームのレコードが
 1対1でリンクすることになる。
 
恐らくそんなところかと。
 
勝手にリンクフィールドを設定されてしまうのが困るのであれば、
サブフォームコントロールの SourceObject プロパティを設定してから
LinkMasterFields プロパティと LinkChildFields プロパティを
明示的に設定なさればよろしいでしょう。

トピックに返信