office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

Access如何對交叉查詢產生報表

2002-03-17 18:17:00
tmtony-Office交流網
原創
6411
ACCESS提供一個交叉查詢的功能,為用戶提供許多方便,它也可以直接打印。
但如果你需要使用這個交叉查詢來制作一個報表,由于交叉查詢產生的列是不定的,且根據數據而變,所以制作報表存在一些問題,請大家就這個問題進行討論,提出一個比較好的解決方案。

以后每周均會以這種形式對ACCESS的一些難題進行討論。
表現優秀者將由版主或站長予以各種形式的嘉獎!!!


ganrong
加夠多的控件,然后用不到的隱藏起來
不知這種方法是否可行

cnwang
先加控件再隱藏,或動態創建控件應該都可以。

用交叉查詢做報表源,其最大難點應該在于字段名的不固定,下面這句可以幫點忙啦:

CurrentDb.QueryDefs("交叉查詢1").Fields(2).Name

老大這個點子非常不錯!!!!!!!
tmtony
cnwang兄,我現在采取的辦法是也是創建足夠多的控件。
但我根據查詢表或窗體(一般是子窗體)的列(動態列)來動態顯示和重新定位報表中的列,使整個報表永遠比較美觀,但在處理上始終不是十分方便。
所以想知道高手在這方面的經驗。

yuab
我做了個例子可解決以上問題。最關鍵是不會影響速度。
文件下載

tmtony
很不錯,看來大家的思路都是一樣的
我的程序基本上與你的是類似的。
我過幾天整理一下也放上來
不過,想知道還有沒有其它辦法

tmtony
上傳了我的例子,由于有客戶的數據,所以只放上報表和程序,無法取具體數據,大家看看程序即要明白。
根據產生的查詢窗體的列的多少自動設置報表顯示的列及重新排列各列的位置。
自動根據數據窗體欄目寬度的變化而自動改變報表各列的寬度的功能還正在完善(即所見即所得)文件下載


xushengqi
斑竹,我有急用,請指導我,謝謝!
就是:交叉表按您們的方法在報表中橫的可以總計,那么豎的總計如何設計,萬分感謝!

tmtony
我的程序里面有啊,
lblTotal.Left = 30
lblTotal.Width = Width1
txttotalwaste_qty.ControlSource = "totalwaste_qty"
txtttotalwaste_qty.ControlSource = "=sum(totalwaste_qty)"
If Me.Width < ttlwidth + txttotalwaste_qty.Width Then
Me.Width = Me.Width + txttotalwaste_qty.Width
End If
lbltotalwaste_qty.Left = ttlwidth
txttotalwaste_qty.Left = ttlwidth
txtttotalwaste_qty.Left = ttlwidth
lbltotalwaste_qty.Visible = True
txttotalwaste_qty.Visible = True
txtttotalwaste_qty.Visible = True
ttlwidth = ttlwidth + txttotalwaste_qty.Width
不過,這種合計需要你選擇某些字段進行合計,如果你想所有數字字段都進行合計,則還要進行一次判斷,即如果此列被顯示且是數字字段,則在報表頁腳上相應位置加上相應合計:


xushengqi在 2002/09/03 1:34:00 回復-------------------
老大啊,我是剛入門的,您的高深內容我非常仰慕,不過我看不太懂,最好有數據結合或者簡單點介紹一下,我相信這個功能大家都會碰到的,萬分感謝!


(報表設計-相關文章技巧鏈接):
ADP(SQL SERVER)中的交叉查詢
交叉表查詢中的累計
分享
北京十一选五基本走势