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に表示させたいのですがどうしたら良いのでしょうか? とても初心者でどうしても分かりませんでした。どうか、どなたか教えて下さい。
DataReportの作成方法が解らないのか、ADOでのDataReportへの
渡し方が解らないのか・・・
ADOで、該当するレコードセットは取れていると考えていいので
すよネ?!
では・・・
http://homepage2.nifty.com/inform/vbdb/reportsample.htm
ただ単にDataReportをデザインして、DataSourceに渡すのみで
すが・・・
以上。
う〜ん。クロス集計だと、ちょっと無理では無いでしょうか。
RptTextBox等は動的にLoadする事ができませんので、列数が変化するような場合には不向きかと思いますよ。
階層化レコードセットで表現できないかどうか、デザインを再検討されては如何でしょう。
もしくは、DataReportで帳票出力するのではなく、Excelなどを使って出力させるとか。。。
岡田 之仁さん 魔界の仮面弁士さん 初心者でへんてこな質問に返事を下さりどうも有り難う御座います。私も質問を書いてから、あれこれ試してみたのですが、やっぱり無理でした。魔界の仮面弁士さんの言うとおり、今度はExcelで出力を試してみたいと思います。 ほんとに有り難う御座いました。
編集 削除おっと、あとから・・・
階層化レコードでのレコードセットの出力に気が回っていません
でしたが・・・
DataReportをどうしても使いたいということであれば、逆に階層
化をさせないで、2次元(1次方向はレコード)で集計結果を出
力するようにすれば・・・
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200405/04050050.txt
ここの件では、力技ですが、ピボットテーブルとかを使わないで
(アルゴリズ的には使っていますが)集計をさせる手もあります。
階層化でしたら、FlexGridですかネ〜
以上。