お世話になります。前に質問した件がまだ解決していないのに、また質問してすみません。
質問NO.217579の時のデータベースなのですが、T_グループ名の印刷フィールドのチェックボックスがonになっているものを選択クエリで作っています。そこにはT_個人名簿のグループIDが同じレコードも抽出されます。
このクエリをもとにレポートを作っているのですが、レポートの詳細にはクエリで表示された目的のグループIDに該当するすべてのデータが表示できました。でも、T_個人名簿の代表者フィールドのチェックボックスがonになっている人を、レポートのグループIDヘッダーにも表示させたいのです。
フィールドリストにない値って表示できないのでしょうか?どなたかご指導お願いします。
No.4ベストアンサー
- 回答日時:
御疲れ様です
>複数グループ選択しても、それぞれのグループの代表者が表示されるように
そうですね、前回のコードでは複数グループは考慮していませんでした。
複数グループの場合も考慮するとなると多少のカスタマイズが必要になってきます。
まず「グループヘッダー0」のエリアに「T_グループ名.グループID」テキストボックスを配置して下さい。
配置したテキストボックスの名前を「TxtGrpID」に変更します。(名前は任意です)
※配置したテキストボックスは、可視不可にしてもかまいません
コード上の「印刷するグループの代表者のみを抜き出すSQL」を下記SQLに更新します。
stSQL = "SELECT T_個人名簿.氏名 " & _
"FROM T_グループ名 INNER JOIN T_個人名簿 ON T_グループ名.グループID = T_個人名簿.グループID " & _
"WHERE (((T_グループ名.印刷)=True) " & _
"AND ((T_グループ名.グループID)=" & Me.TxtGrpID.Value & ") " & _
"AND ((T_個人名簿.代表者)=True));"
これで希望するものができると思います。
たぶん、テキストボックスをなぜ配置するのか疑問に思われると思いますが、それには理由があります。
レポートの場合、フォームと違ってレコードソースに設定したフィールドデータを取得できない為、
取得したいフィールドのデータは、レポートのどこかに配置してあげる必要があるからです。
参考になれば...
出来ました!すごいです!!カンペキです!!!ありがとうございました。
私の未熟さと説明不足で遠回りをして、いっぱいお手数をおかけしてしまいましたが、本当にお世話になりました。これに懲りずにまたご指導いただければと思います。本当にありがとうございました。
No.3
- 回答日時:
御疲れ様です
前回の補足を元に記述します
> 残念ながら上手く表示されませんでした。
これはどのように出来なかったのですか?
処理が出来なかったのですか?
処理のどこかにブレークポイントを設定して、ちゃんと実行されているか確認することをオススメします
もし、実行されていなければ、「グループIDヘッダー」というオブジェクト名は無いということになります
もう一度、オブジェクト名を確認してみましょう
実行されているにもかかわらず、表示されないのであればSQL文に不具合があると考えられます
一度、クエリにて確認してみましょう
>代表者は1グループにつき1名です
これを元に簡潔にコードをまとめました。参考程度に...
'~~~~~~~~~~~~~~~~~~~~
Private Sub グループIDヘッダー_Print(Cancel As Integer, PrintCount As Integer)
Dim RS As DAO.Recordset
Dim stSQL As String
'印刷グループの代表者の氏名データを展開
stSQL = "SELECT T_個人名簿.氏名 " & _
"FROM T_グループ名 INNER JOIN T_個人名簿 ON T_グループ名.グループID = T_個人名簿.グループID " & _
"WHERE (((T_グループ名.印刷)=True) " & _
"AND ((T_個人名簿.代表者)=True));"
Set RS = CurrentDb.OpenRecordset(stSQL, dbOpenSnapshot)
'データがあれば、代表者名更新
If RS.EOF = False Then Me.代表者名.Value = RS![氏名]
'レコードセット解放
Set RS = Nothing
End Sub
'~~~~~~~~~~~~~~~~~~~~
'参照設定にて「Microsoft DAO 3.6 Object Library」をチェックして下さい
印刷するグループの代表者のみを抜き出すSQLを実行し、
もし代表者のデータがあれば、
「代表者名」テキストボックスに「氏名」データを代入する処理です。
この回答への補足
お世話になります。
昨日実行した時には、代表者名欄に何も表示されなかったのですが、、、
>もう一度、オブジェクト名を確認してみましょう
「グループIDヘッダー」ではなく「グループヘッダー0」でした。失礼しました。
>参照設定にて「Microsoft DAO 3.6 Object Library」をチェックして下さい
先にも書いていただいていたのに、見落として忘れてました。
これを訂正して実行してみましたが、レポートのプレビューを繰り返すたびに代表者の氏名が重複して表示されていったり、複数のグループを選択した場合、グループごとの代表者を表示したいのに代表者にチェックが入っている人すべてが各グループの代表者欄に表示されます。
今回教えていただいたコードは、1つのグループを選択した場合は上手くいくのですが、複数のグループを印刷選択した場合、早い番号の代表者がすべてのグループの代表者名欄に表示され、それぞれの代表者が表示出来ませんでした。
先に教えていただいたコードではなく、今回のコードの方が私のやりたかったことに近いものが出来てとてもうれしいのですが、複数グループ選択しても、それぞれのグループの代表者が表示されるように、後もう少しだけご指導いただけますか?
よろしくお願いします。
No.2
- 回答日時:
コードに抜けがありました
>'代表者指名欄に追加
>Me.代表者の氏名.Value = Me.代表者の氏名.Value & RS![氏名]
上記文の次に下記コードを追加してください
'次のレコードへ
RS.MoveNext
どうも失礼致しましたm(_ _)m
No.1
- 回答日時:
御疲れ様です
レポートの種類が記述されていませんが...
「単票形式」、「帳票形式」なのでしょうか?
また「帳票形式」である場合には、一枚のレポートに何件くらいのデータが表示されるのでしょうか?
やりたいことはレポートのヘッダーに「代表者の氏名」を表示したいということですよね
で、表示するデータのキーになるのは、
> T_個人名簿の代表者フィールドのチェックボックスがonになっている人
ということですが、複数人数いた場合はどうするのでしょうか?
ちょっと曖昧な部分が多すぎますね
現状でできる解決策をコードを下記に記します
'~~~~~~~~~~~~~~~~~~~~
'レポートのグループIDヘッダー印刷時の処理です
'グループIDヘッダー部に非連結の「代表者の氏名」テキストボックスがあることを前提とする
'参照設定にて「DAO」をチェックする
'~~~~~~~~~~~~~~~~~~~~
Private Sub グループIDヘッダー_Print(Cancel As Integer, PrintCount As Integer)
Dim RS As DAO.Recordset
Dim stSQL As String
'印刷グループの代表者のデータを展開
stSQL = "SELECT T_グループ名.*, T_個人名簿.* " & _
"FROM T_グループ名 INNER JOIN T_個人名簿 ON T_グループ名.グループID = T_個人名簿.グループID " & _
"WHERE (((T_グループ名.印刷)=True) " & _
"AND ((T_個人名簿.代表者)=True));"
Set RS = CurrentDb.OpenRecordset(stSQL, dbOpenSnapshot)
'データはあるか?
Do Until RS.EOF = True
'複数人数いるときの対処
If IsNull(Me.代表者の氏名.Value) = False Then
Me.代表者の氏名.Value = Me.代表者の氏名.Value & "/"
End If
'代表者指名欄に追加
Me.代表者の氏名.Value = Me.代表者の氏名.Value & RS![氏名]
Loop
'レコードセット解放
Set RS = Nothing
End Sub
'~~~~~~~~~~~~~~~~~~~~
参考になれば...
この回答への補足
お世話になります。わかりにくい質問にもかかわらず、アドバイスありがとうございます。コピーして貼り付けてみましたが、残念ながら上手く表示されませんでした。非連結のテキストボックス名は、「代表者名」なので、ご指導いただいたコードの中の「代表者の氏名」は一応「代表者名」に訂正したのですが…。
さて、レポートですが、帳票形式です。で、一枚のレポートに表示されるデータの件数は、T_グループ名の印刷フィールドのチェックをonにした数なので、その時によりまちまちです。代表者は1グループにつき1名です。基になるクエリを何て説明すればいいのかわからないので、下にSQLを貼り付けます。
SELECT T_グループ名.グループID, T_グループ名.グループ名, T_グループ名.活動内容, T_グループ名.保険, T_グループ名.印刷, T_個人名簿.個人ID, T_個人名簿.氏名, T_個人名簿.フリガナ, T_個人名簿.出欠, T_個人名簿.代表者, T_個人名簿.活動保険, T_住所一覧.郵便番号, T_個人名簿.住所ID, T_個人名簿.番地, T_個人名簿.電話番号
FROM T_住所一覧 RIGHT JOIN (T_グループ名 INNER JOIN T_個人名簿 ON T_グループ名.グループID = T_個人名簿.グループID) ON T_住所一覧.住所 = T_個人名簿.住所ID
WHERE (((T_グループ名.印刷)=True) AND ((T_個人名簿.代表者)=True))
ORDER BY T_グループ名.グループID;
説明の方法すらわからない素人ですが、ご指導お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- Access(アクセス) お世話になっています いまクエリを作っています。。 デザインビューの画面の集計の欄で、「グループ化」 4 2022/09/17 17:03
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) お世話になっています 下記データがクエリにあります。 商品名 A A B B B B B C C C 1 2022/09/11 21:07
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのレポート上のテキスト...
-
Accessで複数レポートの印刷
-
ACCESS レポートでグループご...
-
アクセスのレポートのヘッダー...
-
Access2007 総ページ数が狂う
-
★お手上げ状態です。助けてくだ...
-
Accessでページヘッダーだけが...
-
レポートのラベルなどの非表示...
-
レポートのコントロールソース...
-
Access Yes/No型のデータを使...
-
アクセスのレポートをPDF化する...
-
計算結果がレポートビューでは...
-
エクセルで表を作り、ピボット...
-
ExcelからAccessデータを検索す...
-
Accessでボタンを押すと今日の...
-
「#エラー」の回避
-
差し込み文書のルールで if the...
-
accessのフィールドに10桁の数...
-
レプリケーションの設定方法に...
-
Accessのレポートの集計に条件...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのレポートのヘッダー...
-
Accessのレポート上のテキスト...
-
accessレポートにwordの文...
-
ACCESS2000 VBAで印刷時にサブ...
-
Accessのフォーマット時イベント
-
★お手上げ状態です。助けてくだ...
-
Access2013でレポートを名前を...
-
エクセルで表を作り、ピボット...
-
Accessでレポートの項目をVBAで...
-
Access チェックボックスを使...
-
アクセスでレポート作成時にデ...
-
Accessでページヘッダーだけが...
-
アクセスでファイル名をレポー...
-
レポートのコントロールソース...
-
計算結果がレポートビューでは...
-
BusinessObjectsについて教えて...
-
ACCESS でフォームフィルターを...
-
アクセスのレポートで空白のテ...
-
レポートのラベルなどの非表示...
-
テキストボックスにコントロー...
おすすめ情報