【Access模仿】01 制作客戶統(tǒng)計報表

目的

學(xué)習(xí)該模板的查詢設(shè)計,用于自制管理系統(tǒng)人員信息詳情查詢——查詢員工編號,并根據(jù)查詢生成表,用于窗體文件顯示。

順便學(xué)習(xí)markdown文檔寫法 2018-03-18

附件:點(diǎn)擊查看-百度云
提取密碼:hruv

版本一,通過查詢設(shè)計,生成報表

無數(shù)據(jù)庫表關(guān)系

一 創(chuàng)建表鏈接數(shù)據(jù)源表

1.表設(shè)計:規(guī)格/客戶/商品/銷售員/訂單明細(xì)/生產(chǎn)明細(xì)/銷售明細(xì)
2.表規(guī)格:規(guī)格編碼+規(guī)格名稱
3.表客戶:客戶編碼+客戶名稱
4.表商品:商品編碼+商品名稱
5.表銷售員:銷售員編碼+銷售員
6.表訂單明細(xì):序號+訂貨月份+商品編碼+規(guī)格編碼+訂貨數(shù)量+訂貨價格+客戶編碼+銷售員編碼
7.表生產(chǎn)明細(xì):序號+分廠+生產(chǎn)月份+商品編碼+規(guī)格編碼+生產(chǎn)數(shù)量
8.表銷售明細(xì):序號+銷售日期+商品編碼+規(guī)格編碼+銷售數(shù)量+客戶編碼+價格+銷售員編碼

二 建立臨時表

1.tab參數(shù)表:StartDate + EndDate + LastDate
2.tbl臨時表 _ 本日銷量:項(xiàng)目名稱+銷售小計 未定義主鍵
3.tbl臨時表 _ 累計銷量:項(xiàng)目名稱+銷售小計 未定義主鍵
4.tbl臨時表 _ 銷售日報:項(xiàng)目名稱+訂單數(shù)量+本日銷量+本月累計 未定義主鍵
5.tbl臨時表 _ 月訂單量:項(xiàng)目名稱+訂貨量 未定義主鍵

三 建立查詢

(一) 選擇 - 查詢

1.建立查詢qry銷售明細(xì)

1.1 參與表【tbl銷售明細(xì)】;
1.2 除“序號”外的所有字段,添加到條件;
1.3 對銷售日期設(shè)置條件 Between DLookUp("[startdate]","tbl參數(shù)表") And dlookup("[enddate]","tbl參數(shù)表")。

2.建立查詢qry訂單明細(xì)

2.1 參與表【tbl訂單明細(xì)】;
2.2 除“序號”外的所有字段,添加到條件;
2.3 對訂貨月份設(shè)置條件 between dlookup("[startdate]","tbl參數(shù)表") and dlookup("[enddate]","tbl參數(shù)表")。

(二) 更新 - 查詢

1.建立查詢qry更新當(dāng)日銷量

1.1 參與表【tbl臨時表 _ 銷售日報】、【tbl臨時表 _ 本日銷量】;
1.2 對上面2個表相同項(xiàng)項(xiàng)目名稱鼠標(biāo)拖動建立關(guān)系;
1.3 將【tbl臨時表 _ 銷售日報】的本日銷量,更新到【tbl臨時表 _ 本日銷量】銷售小計里;
1.4 條件寫法對表名和字段名 [ ] 框住。

2.建立查詢qry更新月訂單量

2.1 參與表【tbl臨時表 _ 銷售日報】、【tbl臨時表 _ 月訂單量】;
2.2 對項(xiàng)目名稱建立查詢關(guān)系;
2.3 將【tbl臨時表 _ 銷售日報】的訂單數(shù)量,更新到【tbl臨時表 _ 月訂單量】訂貨量里;
2.4 條件 [tbl臨時表 _ 月訂單量].[訂貨量]。

(三) 刪除 - 查詢

1.建立qry清空銷售日報

1.1 參與表【tbl臨時表 _ 銷售日報】;
1.2 以 * 符號,添加所有字段;
1.3 刪除條件顯示為“from”。

(四) 生成 - 查詢

1.建立qry本日銷量

生成數(shù)據(jù),追加到【tbl臨時表 _ 本日銷量】

1.1 參與表【tbl銷售明細(xì)】、【tbl編碼 _ 客戶】;
1.2 對客戶編碼建立關(guān)系;
1.3 參與字段“客戶名稱”、“銷售數(shù)量”、“銷售日期”;
1.4 添加匯總,總計“客戶名稱”分類匯總group by,并更改字段顯示為“項(xiàng)目名稱”;
1.5 總計銷售數(shù)量進(jìn)行合計,更改字段顯示為“銷售小計”,并降序排列;
1.6 總計銷售日期選擇where,賦予條件 DLookUp("[結(jié)束日期]","tbl參數(shù)表");
1.7 銷售日期設(shè)置為不顯示。

2.建立qry本月累計銷量

生成數(shù)據(jù),生成到【tbl臨時表 _ 累計銷量】

2.1 先建立選擇查詢【qry銷售明細(xì)】、【qry訂單明細(xì)】
2.2 參與表【qry銷售明細(xì)】、【tbl編碼 _ 客戶】;
2.3 添加字段 “客戶名稱”、“銷售數(shù)量”;
2.4 添加匯總,總計“客戶名稱”分類匯總group by,總計“銷售數(shù)量”合計;
2.5 更改字段“客戶名稱”為項(xiàng)目名稱,“銷售數(shù)量”為銷售小計。

  1. 建立qry月訂單量

生成數(shù)據(jù),生成到【tbl臨時表 _ 月訂單量】

3.1 參與表【qry訂單明細(xì)】、【tbl編碼 _ 客戶】;
3.2 添加字段 “客戶名稱”、“訂貨數(shù)量”;
3.3 添加匯總,總計“客戶名稱”分類匯總group by,總計“銷售數(shù)量”合計;
3.4 更改字段“客戶名稱”為項(xiàng)目名稱,“訂貨數(shù)量”為訂貨量。

(五) 追加 - 查詢

1.建立qry追加銷量累計數(shù)

生成數(shù)據(jù),追加到【tbl臨時表_銷售日報】

1.1 參與表【tbl臨時表 _ 累計銷量】;
1.2 添加字段 “項(xiàng)目名稱”、“銷售小計”;
1.3 追加到“項(xiàng)目名稱”、“本月累計”。

四 建立窗體

1.建立frm報表選擇

用于錄入銷售日期,以生成供查詢數(shù)據(jù)的開始、結(jié)束、月底時間

1.1 進(jìn)入窗體設(shè)計,插入文本框(格式選擇短日期);
1.2 插入按鈕控件,設(shè)置為確定和取消;
1.3 設(shè)置“取消”按鈕代碼:DoCmd.Close acForm, "frm報表選擇", acSaveYes;
1.4 由于“確定”按鈕代碼,涉及報表生成,因此需要先建立窗體【frm銷售明細(xì)】和報表【rpt銷售日報】;

1.5 編輯“確定”按鈕代碼

Private Sub Save _ Click()
Dim StartDate As Date
Dim EndDate As Date
Dim LastDate As Date
Dim strSQL As String
If IsNull(Me.銷售日期) Then
    MsgBox "請輸入要查詢的銷售日期", vbCritical, "提醒"
    Me.銷售日期.SetFocus
    Exit Sub
 End If
EndDate = Me.銷售日期
StartDate = CDate(Year(EndDate) & " - " & Month(EndDate) & " - " & "1")
lastdate = CDate(Year(EndDate) & " - " & Month(EndDate) + 1 & " - " & "1") - 1
strSQL = "update tbl參數(shù)表 set startdate=# " & StartDate & " #,enddate=# " & EndDate & " #,lastdate=# " & LastDate & " #"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL '將 銷售的當(dāng)天日期,月初開始日期,月底結(jié)束日期寫入 tbl參數(shù)表,以供查詢作為條件使用
DoCmd.OpenQuery "qry清空銷售日報" '每次生成報表數(shù)據(jù)前,對 tbl臨時表_銷售日報 進(jìn)行清空
DoCmd.OpenQuery "qry本月累計銷量" '生成 本月累計銷量的清單(例如按客戶)
DoCmd.OpenQuery "qry追加銷量累計數(shù)" '將 清單追加到 tbl臨時表_銷售日報 中
DoCmd.OpenQuery "qry本日銷量" '生成當(dāng)天的銷售量(按客戶)
DoCmd.OpenQuery "qry更新當(dāng)日銷量" '對 tbl臨時表_銷售日報 中的本日銷量進(jìn)行更新
DoCmd.OpenQuery "qry月訂單量" '生成本月的訂單量(按客戶)
DoCmd.OpenQuery "qry更新月訂單量" '對 tbl臨時表_銷售日報 中的訂單量進(jìn)行更新
DoCmd.SetWarnings True
DoCmd.OpenReport "rpt銷售日報", acViewReport '打開報表
End Sub

2.建立frm銷售明細(xì)

2.1 數(shù)據(jù)源【tbl銷售明細(xì)】- 動態(tài)集;
2.2 添加所有字段,分割窗體,數(shù)據(jù)表在下方;
2.3 對字段標(biāo)簽“編碼”改為名稱;
2.4 更改字段商品名稱、規(guī)格名稱、客戶名稱、銷售員文本框?yàn)?strong>組合框;
2.5 設(shè)置組合框代碼
商品名稱:select tbl編碼_商品.商品編碼, tbl編碼_商品.商品名稱 from tbl編碼_商品;
規(guī)格名稱:select tbl編碼_規(guī)格.規(guī)格編碼, tbl編碼_規(guī)格.規(guī)格名稱 from tbl編碼_規(guī)格;
客戶名稱:select tbl編碼_客戶.客戶編碼, tbl編碼_客戶.客戶名稱 from tbl編碼_客戶;
銷售員名稱:select tbl編碼_銷售員.銷售員編碼, tbl編碼_銷售員.銷售員 from tbl編碼_銷售員;
以上,限于列表,取2列 ,設(shè)置列寬 0cm;2cm;

五 建立報表

1.建立rpt銷售日報

用于最后生成報表顯示。序號+項(xiàng)目名稱+訂單數(shù)量+本日銷量+本月累計+占訂單百分比

[數(shù)據(jù)源]: tbl臨時表 _ 銷售日報

1.1 添加報表頁眉。在頁眉增加文本框,顯示報表所屬期間。
開始日期=DLookUp("startdate","tbl參數(shù)表")
結(jié)束日期=DLookUp("enddate","tbl參數(shù)表");
1.2 添加頁面頁眉,6個標(biāo)簽,屬性為摘要顯示要素;
1.3 添加主體要素,6個文本框,屬性為摘要顯示要素。并定義名稱;
序號=1運(yùn)行總和:工作組之上
占訂單百分比: =IIf(not IsNull([訂單數(shù)量]), Round([本月累計]/[訂單數(shù)量], 4),"")
1.4 設(shè)置頁面頁腳,2個文本框=now()="共"&[Pages]&"頁,第"&[Page]&"頁"
1.5 設(shè)置報表頁腳,4個文本框+1個標(biāo)簽。對文本框定義;
訂單合計 =Sum([訂單數(shù)量])
日銷量合計 =Sum([本日銷量])
月銷量合計 =Sum([本月累計])
百分比 =IIf(not IsNull([訂單合計]),Round([訂單合計]/[月銷量合計],4),"")


總結(jié)

  1. 提供一個日期,根據(jù)此日期計算當(dāng)月第一天和最后一天,并寫入tbl參數(shù)表;
  2. 選擇-查詢,根據(jù)日期范圍生成數(shù)據(jù);
  3. 清空 tbl臨時表 _ 銷售日報 ;
  4. 根據(jù)選擇查詢 qry本月銷量累計,分類匯總【qry銷售明細(xì)】與【tbl編碼_客戶】生成 tbl臨時表 _ 累計銷量;
  5. 根據(jù)追加查詢 qry追加銷量累計數(shù),將tbl臨時表 _ 累計銷量的項(xiàng)目名稱和銷售小計,追加到tbl臨時表 _ 銷售日報里;
  6. 根據(jù)生成查詢 qry本日銷量,將tbl編碼_客戶和tbl銷售明細(xì),通過客戶分類匯總、合計銷售數(shù)量、指定銷售日期為enddate,然后生成表tbl臨時表 _ 本日銷量;
  7. 根據(jù)更新查詢 qry更新當(dāng)日銷量,將tbl臨時表 _ 銷售日報中的當(dāng)日銷量更新為tbl臨時表 _ 本日銷量.銷售小計;
  8. 根據(jù)生成查詢 qry月訂單量,分類匯總【qry訂單明細(xì)】與【tbl編碼_客戶】生成 tbl臨時表 _ 月訂單量;
  9. 根據(jù)追加查詢 qry更新月訂單量,將tbl臨時表 _ 銷售日報中的訂貨數(shù)量更新為tbl臨時表 _ 月訂單量.訂貨量;
  10. 圖解
st=>start: 選擇銷售日期
e=>end
in=>inputoutput: 日期設(shè)置
op1=>operation: qry清空銷售日報-清空 tbl臨時表_銷售日報
op2=>operation: qry本月累計銷量-生成 本月累計銷量
op3=>operation: qry追加銷量累計數(shù)-追加 tbl臨時表_銷售日報
op4=>operation: qry本日銷量-生成 本日銷量
op5=>operation: qry更新當(dāng)日銷量-更新 tbl臨時表_銷售日報-本日銷量
op6=>operation: qry月訂單量-生成 月訂單量
op7=>operation: qry更新月訂單量-更新 tbl臨時表_銷售日報-訂單量

st->in->op1->op2->op3->op4->op5->op6->op7

備注

  1. 建表時,對臨時表“tbl臨時表_銷售日報”,數(shù)據(jù)默認(rèn)不應(yīng)為0比較重要,會導(dǎo)致報表計算錯誤。
  2. tbl參數(shù)表,必須現(xiàn)有數(shù)據(jù)。SQL語句UPDATE才可以更新。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 還是放不下你,總想著說我哪里我錯了,我可以改正。但還是丟了你。靜靜地體會著心痛的滋味,每跳一次,痛一次。當(dāng)初有多快...
    蒙昧無知閱讀 199評論 0 0
  • 培養(yǎng)都沒花多少錢,有何資本去賺更多錢
    abided閱讀 108評論 0 0
  • 神奇動物在哪里 魔法有惡有不友好,但在我看來大部分都還是善良的。
    cclynn閱讀 281評論 0 0
  • 無規(guī)矩不成方圓。 項(xiàng)目角色 產(chǎn)品經(jīng)理(PM)后臺開發(fā)(RD)前端開發(fā)(FE)系統(tǒng)測試(QA) 項(xiàng)目周期 主要的環(huán)節(jié)...
    高廣超閱讀 8,804評論 0 19

友情鏈接更多精彩內(nèi)容