ACCESSのクロス集計クエリのようなData Reportを書くにはどうしたらよいのですか

解決


夏みかん  2004-05-25 10:02:25  No: 113499  IP: [192.*.*.*]

SQL = "TRANSFORM Sum(入力項目.金額) AS 金額の合計 SELECT 入力項目.勘定科目, 入力項目.年, 入力項目.月, Sum(入力項目.金額) AS [合計 金額] From 入力項目 GROUP BY 入力項目.勘定科目, 入力項目.年, 入力項目.月 PIVOT 入力項目.部署名;"
If NEN <> "" Then
 criteria = "年 = '" & NEN.Text & "'"
End If

If TUKI <> "" Then
    If criteria <> "" Then
    criteria = criteria & " And 月 = '" & TUKI.Text & "'"
    Else
    criteria = "月 = '" & TUKI.Text & "'"
    End If
End If


Set RS = New ADODB.Recordset
RS.Open SQL, CN
Set DataGrid1.DataSource = RS
RS.Filter = criteria

With DataGrid1
.Columns("年").Visible = False
.Columns("月").Visible = False
.Columns("勘定科目").Width = 80 * 15
.Columns("勘定科目").Alignment = dbgCenter
.Columns("合計 金額").Width = 80 * 15
.Columns("合計 金額").Alignment = dbgCenter
    Set MYDB = OpenDatabase("C:¥データ.mdb")
    SQL = "select * from 入力項目"
    Set RECSET = MYDB.OpenRecordset(SQL, dbOpenDynaset)
  CUNT = 0
    Do Until RECSET.EOF
    
    aaa = RECSET!部署名
.Columns(aaa).Width = 70 * 15
.Columns(aaa).Alignment = dbgCenter

    RECSET.MoveNext
    CUNT = CUNT + 1
    Loop
    RECSET.Close

End With
と書いてDataGridに表示させたのですが、このDataGridをそのままData Reportに表示させたいのですがどうしたら良いのでしょうか?    とても初心者でどうしても分かりませんでした。どうか、どなたか教えて下さい。

編集 削除
岡田 之仁  2004-05-26 00:09:13  No: 113500  IP: [192.*.*.*]

DataReportの作成方法が解らないのか、ADOでのDataReportへの
渡し方が解らないのか・・・

ADOで、該当するレコードセットは取れていると考えていいので
すよネ?!

では・・・
http://homepage2.nifty.com/inform/vbdb/reportsample.htm

ただ単にDataReportをデザインして、DataSourceに渡すのみで
すが・・・

以上。

編集 削除
魔界の仮面弁士  2004-05-26 03:19:46  No: 113501  IP: [192.*.*.*]

う〜ん。クロス集計だと、ちょっと無理では無いでしょうか。
RptTextBox等は動的にLoadする事ができませんので、列数が変化するような場合には不向きかと思いますよ。

階層化レコードセットで表現できないかどうか、デザインを再検討されては如何でしょう。
もしくは、DataReportで帳票出力するのではなく、Excelなどを使って出力させるとか。。。

編集 削除
夏みかん  2004-05-26 08:36:18  No: 113502  IP: [192.*.*.*]

岡田 之仁さん  魔界の仮面弁士さん  初心者でへんてこな質問に返事を下さりどうも有り難う御座います。私も質問を書いてから、あれこれ試してみたのですが、やっぱり無理でした。魔界の仮面弁士さんの言うとおり、今度はExcelで出力を試してみたいと思います。  ほんとに有り難う御座いました。

編集 削除
岡田 之仁  2004-05-26 09:08:58  No: 113503  IP: [192.*.*.*]

おっと、あとから・・・

階層化レコードでのレコードセットの出力に気が回っていません
でしたが・・・

DataReportをどうしても使いたいということであれば、逆に階層
化をさせないで、2次元(1次方向はレコード)で集計結果を出
力するようにすれば・・・

http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200405/04050050.txt

ここの件では、力技ですが、ピボットテーブルとかを使わないで
(アルゴリズ的には使っていますが)集計をさせる手もあります。

階層化でしたら、FlexGridですかネ〜

以上。

編集 削除