Access如何對交叉查詢産生報錶

2002-03-17 18:17:00
tmtony-Office交流網
原創
6082
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)中的交叉查詢
交叉錶查詢中的纍計
分享