掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
データレポートに変数を送り、それを表示するには? (ID:78455)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DataReportでグループ化した出力を行うためには、『階層型レコードセット』を作成する必要があります。 階層型レコードセットとは、「RS.Fields(X).Value」がRecordsetを返すような構造になっていて、 これは、データシェイププロバイダ(Provider=MSDataShape)によって作成する事ができます。 以下、サンプルです。先のTAKEさんのコードと同様、BIBLIO.MDBで作ってみますね。 ---- 1. DataReportを右クリックし、ポップアップメニューにて、レポートヘッダ/フッタと ページヘッダ/フッタを外します。(これらは、今回のサンプルでは使いません) 2. さらに、グループヘッダ/フッタを挿入しておきます。 3. テキストボックスを、グループヘッダに1つ、詳細セクションに2つ配置します。 4. 詳細セクションの2つのテキストボックスに対し、それぞれのDataFieldプロパティに 「PubID」「Name」と指定します。 5. さらに、その2つのテキストボックスの DataMemberに、「ChildData」と指定します。 6. グループヘッダのテキストボックスに対し、DataFieldを「City」にします。 なお、こちらのDataMemberは空のままにします。 7. グループヘッダのForcePageBreakプロパティを、rptPageBreakBeforeにします。 8. 以下のコードを、フォーム側に記述します。 Private Sub cmdGO_Click() Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=MSDataShape;" _ & "Data Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & BIBLIO_MDB_PATH Set rs = CreateObject("ADODB.Recordset") rs.Open "SHAPE {SELECT PubID,Name,City FROM Publishers WHERE City = 'New York'} AS ChildData" _ & " COMPUTE ChildData BY City", cn Set rptSample.DataSource = rs rptSample.Show End Sub ---- これで、求める結果になると思います。 さらに「WHERE City <> 'New York'」で実行してみれば、都市名ごとに改ページされた 帳票を出力する事ができます。あるいは、他のSHAPEコマンド(SHAPE APPEND等)を併用して、 さらにグループ化させていく事もできます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.