Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
検索画面における検索結果一覧の設定方法 @制限あり
投稿日時: 22/05/28 15:57:34
投稿者: 無能

どうかお知恵を貸していただけないでしょうか
 
【やりたいこと】
帳票形式のサブフォームにDAOのSELECT結果を反映したい
ただし、サブフォームの各項目は非連結とする
 
【機能イメージ】
検索項目に検索値を設定して検索ボタンを押下
検索結果である10件(例)がメイン画面上に表示されているサブフォームに全件一覧表示される
 
【詰まっていること】
仕様上、サブフォームの各項目は非連結のため、
サブフォームに対してDAOのレコードセットを設定して
各項目のコントロールソースにSELECTの抽出項目名と同じ名称を設定し、
SELECT結果を反映する方法がとれません
 
下記のようにSELECT結果をサブフォームの値に設定、と試したものの
1件のみが設定され一覧表示できませんでした
 
dim rs as DAO.Recordset
set rs = CurrentDB.OpenRecordset(SQL,dbOpenShapshot)
Do until rs.eof
  Form![MAIN].[SUB].Form.社名.value = rs![社名]
loop
 
何卒、お助け願えないでしょうか
よろしくお願いいたします
 

回答
投稿日時: 22/05/28 22:33:37
投稿者: よろずや

無能 さんの引用:
【やりたいこと】
帳票形式のサブフォームにDAOのSELECT結果を反映したい
ただし、サブフォームの各項目は非連結とする
非連結にしなければならない理由は何でしょう?

回答
投稿日時: 22/05/28 22:53:05
投稿者: hatena
投稿者のウェブサイトに移動

連結帳票フォームだと、レコード数分(追加可能なら新規レコード用に+1)の、詳細セクションが繰り返し表示されます。
 
非連結フォームではレコードがないので、詳細セクションは1つしか表示されません。よって1件のデータしか表示できません。
 
非連結にする目的が、例えば保存ボタンをクリックするまでは、テーブルに更新を反映させたくない、というようなことなら、元のテーブルと同じフィールド構成のワークテーブルを用意しておいて、それをサブフォームと連結させるという設計になりますね。

投稿日時: 22/05/29 04:22:13
投稿者: 無能

コメントまことにありがとうございます。
 
>>よろずや様
仕様上、初期表示の際には一覧画面は空となります。
連結を行っていると#NAMEが表示されてしまうため、
非連結による設定を模索しておりました
 
>>hatena様
表示結果を登録用ワークTBLを作成し、
サブフォームと連結させる旨、了解致しました。
やはりどうやっても非連結で行うことは難しいということですね
 
お二人とも、回答まことにありがとうございました。

投稿日時: 22/05/29 16:36:35
投稿者: 無能

本件、解決済とさせていただきます。
ありがとうございました。