萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> access教程 >> access2007教程 >> 在Access2007表中如何同時顯示明細、小計、總?

在Access2007表中如何同時顯示明細、小計、總?

 問題描述: 如何在Access2007 表中同時顯示明細、小計、總計?

  ID      fullname  pay
  2       a         ¥500.00
  4       a         ¥600.00
  5       a         ¥700.00
  6       b         ¥800.00
  7       b          ¥55.00

  在Access2007 有以上格式的表格,要根據 FULLNAME 做小計,然後全部的做總計,變成以下格式,該如何完成?

  fullname  pay
  a           ¥700.00
  a           ¥600.00
  a           ¥500.00
  a 小計    ¥1,800.00
  b            ¥55.00
  b           ¥800.00
  b 小計      ¥855.00
  總計      ¥2,655.00

  問題解答:首先,應該了解,表是用來存儲數據的,而不是用來顯示統計結果以及顯示給最終用戶看的。類似工作應該在 Access2007 報表中完成,報表中可以分組且顯示小計。具體內容你可以參考幫助或者 NORTHWIND.MDB 示例數據庫中的報表。

  其次,在 ADO 中專門有一部分,稱為數據整形用來完成上述工作,但是它需要配合 VB 的 DATAGRID 等控件來完成顯示。 部分 VB 控件也可以使用在 Access2007 的窗體中。

  最後,如果你實在想在 Access2007 的表格中完成,你可以使用組織 JET SQL 生成查詢的方式來完成。

  select fullname,pay from pay 


  用來查詢出明細

  SELECT pay.fullname & " 小計" AS 表達式1, Sum(pay.pay) AS payAll
  FROM pay
  GROUP BY pay.fullname & " 小計" 


  用來分類匯總小計,注意上述技巧,在 FULLANME 字段旁加“ 小計”不只是為了好看,要將小計這行放在明細的下面完全要靠  ORDER BY FULLNAME 來實現,你可以通過調整這一行來編排它的顯示順序

  select "總計", sum(pay) from pay


  用來顯示總計數,請注意,“總”字的 ANSI 編碼必須大於 FULLNAME 字段中任何一個字符,否則就無法根據 FULLNAME 排序將總計數放在表格的最下面一行。提示:不能用“總”的時候你可以用其他字符,甚至是符號也可以,只要它的機器碼夠大就行。

  將上述語句用 UNION ALL 來組織就可以達到預想的效果。

  select fullname,pay from pay
  union all

  SELECT pay.fullname & " 小計" AS 表達式1, Sum(pay.pay) AS payAll
  FROM pay
  GROUP BY pay.fullname & " 小計"

  union all

  select "總計", sum(pay) from pay

  order by fullname

copyright © 萬盛學電腦網 all rights reserved