Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


20 / 2244 ツリー ←次へ | 前へ→

【13070】フォーム 複数データを表示 まゆ 16/9/30(金) 10:20 質問[未読]
【13073】Re:フォーム 複数データを表示 亀マスター 16/9/30(金) 18:32 回答[未読]
【13074】Re:フォーム 複数データを表示 まゆ 16/10/3(月) 15:56 質問[未読]
【13076】Re:フォーム 複数データを表示 亀マスター 16/10/3(月) 19:37 回答[未読]
【13077】Re:フォーム 複数データを表示 まゆ 16/10/4(火) 10:22 質問[未読]
【13078】Re:フォーム 複数データを表示 亀マスター 16/10/4(火) 11:41 回答[未読]
【13079】Re:フォーム 複数データを表示 まゆ 16/10/4(火) 16:31 お礼[未読]

【13070】フォーム 複数データを表示
質問  まゆ  - 16/9/30(金) 10:20 -

引用なし
パスワード
   はじめまして

現在、顧客の管理をする為に作成しているのですが、
顧客管理表として
<Table1>
No Name
01 あ
02 い
03 う
というメインのテーブルがあり

その他はNoに紐付けるかたちで
No Mail
01 1.com
01 2.com
02 3.com
02 4.com
02 5.com
03 6.com
03 7.com
03 8.com
のようにテーブルを作成しているのですが、
たとえばメールアドレスなどの場合
顧客ごとに管理する個数も変わり、増えたり減ったりする場合もある為

フォームでどのようにデザインすれば
全てのテーブルデータを顧客ごと
レコード別に表示させれるのかがわかりません。

初心者ですが教えていただける方返信いただければありがたいです。
よろしくお願い致します。

【13073】Re:フォーム 複数データを表示
回答  亀マスター  - 16/9/30(金) 18:32 -

引用なし
パスワード
   顧客管理表のテーブルを元にメインフォームを作り、メールデータを元にしたサブフォームを埋め込んではどうでしょうか。
「印刷時拡張」の値を「はい」にしておけば(デフォルトで「はい」になってます)、サブレポートの件数に応じて高さが変わるはずです。
ht tp://tsware.jp/tips/tips_072.htm


サブレポートの埋め込みについては、ここで以前に私が回答したスレッドも参考にしてください。
記事番号:13013
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=13013;id=access

【13074】Re:フォーム 複数データを表示
質問  まゆ  - 16/10/3(月) 15:56 -

引用なし
パスワード
   亀マスターさん
ご返信ありがとうございます。


顧客管理表のテーブルを元にメインフォームを作り、メールデータを元にしたサブフォームを埋め込んでみるということなのですが、
メールデータを元にしたサブフォームはフォームを作成しそちらを埋め込めばいいのでしょうか。
それとも、クエリからでしょうか。
フォームから埋め込むと1件しか表示されず、
クエリから埋め込むと全件表示されてしまいます。。。

レポートも作成はするのですが、
ユーザにフォーム入力もしてほしいため、フォーム画面も作成したいです。

【13076】Re:フォーム 複数データを表示
回答  亀マスター  - 16/10/3(月) 19:37 -

引用なし
パスワード
   >顧客管理表のテーブルを元にメインフォームを作り、メールデータを元にしたサブフォームを埋め込んでみるということなのですが、
>メールデータを元にしたサブフォームはフォームを作成しそちらを埋め込めばいいのでしょうか。

それでいいと思います。
サブフォームに使う方は帳票形式にし、不要であればレコードセレクタや移動ボタンは非表示にしておいた方がいいでしょう。

ただ、これだとメインの顧客が1件ずつしか表示されませんし、サブフォームの方は件数が増えても自動で高さが変わってくれないようですね(レポートだと変わってくれるのですが)。

そうではなく、1画面に全てのデータを表示したいということであれば、Noで2つのテーブルを結合したクエリを作成し、これを元にフォームを作ることになります。

【13077】Re:フォーム 複数データを表示
質問  まゆ  - 16/10/4(火) 10:22 -

引用なし
パスワード
   亀マスターさん

「1画面に全てのデータを表示したい」というよりも、
1画面ごとに各顧客の全データを表示していきたいです。

1レコード目
企業○○様全データ

2レコード目
企業△△様全データ




その各企業のデータの中で
メールアドレスともう一データ
企業によって登録されるデータが多かったり少なかったり
または
増えたり減ったり致します。

テーブルは全てで16あります。

【13078】Re:フォーム 複数データを表示
回答  亀マスター  - 16/10/4(火) 11:41 -

引用なし
パスワード
   >「1画面に全てのデータを表示したい」というよりも、
>1画面ごとに各顧客の全データを表示していきたいです。

それでしたら、やはり私が前回お示しした方法の一つ目(クエリを使わないパターン)でいいかと思います。
繰り返しになりますが、下記もご参考ください。
記事番号:13013
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=13013;id=access


>テーブルは全てで16あります。

メールデータのテーブルがひとつ、口座番号のテーブルがひとつ、連絡先のテーブルがひとつ・・・みたいな感じで、これが16種類あるということでしょうか。
メインになる顧客データのテーブルを元に単票フォームを作り、そこに各データテーブルを元に作成した帳票フォームをサブフォームとして埋め込めばいいでしょう。16種類もあるので、やや大きくなるでしょうが。
メールデータが顧客あたりに複数あり、その数が不定ということですが、前回にも書いたとおり、サブフォームの高さは自動で変わらないので、ある程度の件数を表示できる高さを確保しておき、表示しきれなければ手動でスクロールしてもらうしかありませんね。どうしてもということであればVBAで必要な高さを計算して設定すればいいのですが、やや面倒です。


あと、16種類のデータは、全てがメールアドレスのように顧客ひとつにつき複数あるのでしょうか。1対1で対応するデータであれば、顧客データのテーブルに統合してしまった方がいいのでは。

【13079】Re:フォーム 複数データを表示
お礼  まゆ  - 16/10/4(火) 16:31 -

引用なし
パスワード
   亀マスターさん

解決致しました。
サブフォームの元フォームを表形式で作成しないとだめだったんですね。。。

テーブルは数が多いですが
各テーブルごとに管理が必要なためこのままでいこうかと思います。

高さの長さは
フォームは大きめにスペースをとり、
レポートは「印刷時拡張」の値を「はい」にして作成してみます。

ありがとうございました!

20 / 2244 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
969553
(SS)C-BOARD v3.8 is Free