2016-11-03 43 views
1

我一直在決定如何做最好的計算。我的主表包含學生的標記,其中每個考試有11個科目....訪問幫助設計多個計算參數

我可以很容易地在每個考試的查詢中想象這個,甚至創建一個交叉表。我可以使用計算控制箱的報告平均得分......

問題1:我怎樣才能做到這一點查詢或VBA,而不是報告?我需要一種可以在不同考試中比較表現的方式,我是否還需要將平均值存儲在表中以供將來參考?

每門考試(11例)由examdate_id鑑定....也可以通過參數(ExamYear,學期和examType),我可以從一種形式的組合框獲取查詢

問題2後如下

[主表:考試] [1] [1]:https://i.stack.imgur.com/NJz3A.jpg

回答

1

你想計算的平均結果觸發。 Access不支持數據庫觸發器,因此您必須對錶單中的事件使用解決方法。

  • 屬性AverageScore添加到您的Exams -table
  • 創建基於您Exams -table另一種形式。它應該有新的屬性AverageScore
  • 如果你喜歡它,你可以將視圖改變爲datagrid,看起來就像一張表。
  • form_load -event中,您可以檢索學生的所有ID並根據考試表ID更新每個AverageScore
  • 此解決方案將每次載入表單時更新每一個平均分數,因此建議將其放在其他地方。當您輸入個人考試結果時,有利於您。
+0

謝謝@eliteraceelephant我一直在考慮你的建議(還在等待聽取其他意見)但是這並不意味着我總是需要說WHERE是AverageScore ...或者排除那個分數,如果我需要做其他計算?不會更容易使用不同的平均值表?大多數專家在論壇上反對此提議 – Bonifacey

+1

是的,它應該是另一張桌子。如果每個學生只有一個平均分數,學生桌可能是一個好地方。如果有幾個分數(例如幾年),你肯定需要一個單獨的表。在您的表格之間使用內部聯接的SQL查詢檢查以及放置average_score的位置將爲您提供所需的數據源。 – EliteRaceElephant

+1

在這種情況下,我認爲我可以使用按鈕來計算或更新平均值,因爲每次輸入分數時都不需要執行此操作。最大的邏輯問題是由許多建議組合而成,不存儲計算的數據 – Bonifacey