目的
學(xué)習(xí)該模板的查詢?cè)O(shè)計(jì)伟恶,用于自制管理系統(tǒng)人員信息詳情查詢——查詢員工編號(hào)博秫,并根據(jù)查詢生成表挡育,用于窗體文件顯示。
順便學(xué)習(xí)markdown文檔寫(xiě)法 2018-03-18
附件:點(diǎn)擊查看-百度云
提取密碼:hruv
版本一母赵,通過(guò)查詢?cè)O(shè)計(jì)凹嘲,生成報(bào)表
無(wú)數(shù)據(jù)庫(kù)表關(guān)系
一 創(chuàng)建表鏈接數(shù)據(jù)源表
1.表設(shè)計(jì):規(guī)格/客戶/商品/銷(xiāo)售員/訂單明細(xì)/生產(chǎn)明細(xì)/銷(xiāo)售明細(xì)
2.表規(guī)格:規(guī)格編碼+規(guī)格名稱(chēng)
3.表客戶:客戶編碼+客戶名稱(chēng)
4.表商品:商品編碼+商品名稱(chēng)
5.表銷(xiāo)售員:銷(xiāo)售員編碼+銷(xiāo)售員
6.表訂單明細(xì):序號(hào)+訂貨月份+商品編碼+規(guī)格編碼+訂貨數(shù)量+訂貨價(jià)格+客戶編碼+銷(xiāo)售員編碼
7.表生產(chǎn)明細(xì):序號(hào)+分廠+生產(chǎn)月份+商品編碼+規(guī)格編碼+生產(chǎn)數(shù)量
8.表銷(xiāo)售明細(xì):序號(hào)+銷(xiāo)售日期+商品編碼+規(guī)格編碼+銷(xiāo)售數(shù)量+客戶編碼+價(jià)格+銷(xiāo)售員編碼
二 建立臨時(shí)表
1.tab參數(shù)表:StartDate + EndDate + LastDate
2.tbl臨時(shí)表 _ 本日銷(xiāo)量:項(xiàng)目名稱(chēng)+銷(xiāo)售小計(jì) 未定義主鍵
3.tbl臨時(shí)表 _ 累計(jì)銷(xiāo)量:項(xiàng)目名稱(chēng)+銷(xiāo)售小計(jì) 未定義主鍵
4.tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào):項(xiàng)目名稱(chēng)+訂單數(shù)量+本日銷(xiāo)量+本月累計(jì) 未定義主鍵
5.tbl臨時(shí)表 _ 月訂單量:項(xiàng)目名稱(chēng)+訂貨量 未定義主鍵
三 建立查詢
(一) 選擇 - 查詢
1.建立查詢qry銷(xiāo)售明細(xì)
1.1 參與表【tbl銷(xiāo)售明細(xì)】溯革;
1.2 除“序號(hào)”外的所有字段致稀,添加到條件抖单;
1.3 對(duì)銷(xiāo)售日期設(shè)置條件Between DLookUp("[startdate]","tbl參數(shù)表") And dlookup("[enddate]","tbl參數(shù)表")
萎攒。
2.建立查詢qry訂單明細(xì)
2.1 參與表【tbl訂單明細(xì)】耍休;
2.2 除“序號(hào)”外的所有字段羊精,添加到條件读规;
2.3 對(duì)訂貨月份設(shè)置條件between dlookup("[startdate]","tbl參數(shù)表") and dlookup("[enddate]","tbl參數(shù)表")
束亏。
(二) 更新 - 查詢
1.建立查詢qry更新當(dāng)日銷(xiāo)量
1.1 參與表【tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)】、【tbl臨時(shí)表 _ 本日銷(xiāo)量】雀久;
1.2 對(duì)上面2個(gè)表相同項(xiàng)項(xiàng)目名稱(chēng)鼠標(biāo)拖動(dòng)建立關(guān)系;
1.3 將【tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)】的本日銷(xiāo)量趁舀,更新到【tbl臨時(shí)表 _ 本日銷(xiāo)量】銷(xiāo)售小計(jì)里赖捌;
1.4 條件寫(xiě)法對(duì)表名和字段名 [ ] 框住。
2.建立查詢qry更新月訂單量
2.1 參與表【tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)】矮烹、【tbl臨時(shí)表 _ 月訂單量】越庇;
2.2 對(duì)項(xiàng)目名稱(chēng)建立查詢關(guān)系;
2.3 將【tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)】的訂單數(shù)量奉狈,更新到【tbl臨時(shí)表 _ 月訂單量】訂貨量里卤唉;
2.4 條件[tbl臨時(shí)表 _ 月訂單量].[訂貨量]
。
(三) 刪除 - 查詢
1.建立qry清空銷(xiāo)售日?qǐng)?bào)
1.1 參與表【tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)】仁期;
1.2 以 * 符號(hào)桑驱,添加所有字段;
1.3 刪除條件顯示為“from”。
(四) 生成 - 查詢
1.建立qry本日銷(xiāo)量
生成數(shù)據(jù),追加到【tbl臨時(shí)表 _ 本日銷(xiāo)量】
1.1 參與表【tbl銷(xiāo)售明細(xì)】、【tbl編碼 _ 客戶】;
1.2 對(duì)客戶編碼建立關(guān)系;
1.3 參與字段“客戶名稱(chēng)”、“銷(xiāo)售數(shù)量”、“銷(xiāo)售日期”;
1.4 添加匯總,總計(jì)“客戶名稱(chēng)”分類(lèi)匯總group by腹躁,并更改字段顯示為“項(xiàng)目名稱(chēng)”烧颖;
1.5 總計(jì)銷(xiāo)售數(shù)量進(jìn)行合計(jì),更改字段顯示為“銷(xiāo)售小計(jì)”,并降序排列;
1.6 總計(jì)銷(xiāo)售日期選擇where反砌,賦予條件 DLookUp("[結(jié)束日期]","tbl參數(shù)表")酒贬;
1.7 銷(xiāo)售日期設(shè)置為不顯示零如。
2.建立qry本月累計(jì)銷(xiāo)量
生成數(shù)據(jù),生成到【tbl臨時(shí)表 _ 累計(jì)銷(xiāo)量】
2.1 先建立選擇查詢【qry銷(xiāo)售明細(xì)】、【qry訂單明細(xì)】
2.2 參與表【qry銷(xiāo)售明細(xì)】赎瞎、【tbl編碼 _ 客戶】态辛;
2.3 添加字段 “客戶名稱(chēng)”熟史、“銷(xiāo)售數(shù)量”;
2.4 添加匯總昆烁,總計(jì)“客戶名稱(chēng)”分類(lèi)匯總group by鸭巴,總計(jì)“銷(xiāo)售數(shù)量”合計(jì)恬口;
2.5 更改字段“客戶名稱(chēng)”為項(xiàng)目名稱(chēng)祖能,“銷(xiāo)售數(shù)量”為銷(xiāo)售小計(jì)养铸。
- 建立qry月訂單量
生成數(shù)據(jù),生成到【tbl臨時(shí)表 _ 月訂單量】
3.1 參與表【qry訂單明細(xì)】扳碍、【tbl編碼 _ 客戶】;
3.2 添加字段 “客戶名稱(chēng)”、“訂貨數(shù)量”隐圾;
3.3 添加匯總边翁,總計(jì)“客戶名稱(chēng)”分類(lèi)匯總group by翎承,總計(jì)“銷(xiāo)售數(shù)量”合計(jì);
3.4 更改字段“客戶名稱(chēng)”為項(xiàng)目名稱(chēng)符匾,“訂貨數(shù)量”為訂貨量叨咖。
(五) 追加 - 查詢
1.建立qry追加銷(xiāo)量累計(jì)數(shù)
生成數(shù)據(jù),追加到【tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào)】
1.1 參與表【tbl臨時(shí)表 _ 累計(jì)銷(xiāo)量】啊胶;
1.2 添加字段 “項(xiàng)目名稱(chēng)”甸各、“銷(xiāo)售小計(jì)”;
1.3 追加到“項(xiàng)目名稱(chēng)”焰坪、“本月累計(jì)”趣倾。
四 建立窗體
1.建立frm報(bào)表選擇
用于錄入銷(xiāo)售日期,以生成供查詢數(shù)據(jù)的開(kāi)始某饰、結(jié)束儒恋、月底時(shí)間
1.1 進(jìn)入窗體設(shè)計(jì)善绎,插入文本框(格式選擇短日期);
1.2 插入按鈕控件诫尽,設(shè)置為確定和取消禀酱;
1.3 設(shè)置“取消”按鈕代碼:DoCmd.Close acForm, "frm報(bào)表選擇", acSaveYes
;
1.4 由于“確定”按鈕代碼牧嫉,涉及報(bào)表生成剂跟,因此需要先建立窗體【frm銷(xiāo)售明細(xì)】和報(bào)表【rpt銷(xiāo)售日?qǐng)?bào)】;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.銷(xiāo)售日期) Then
MsgBox "請(qǐng)輸入要查詢的銷(xiāo)售日期", vbCritical, "提醒"
Me.銷(xiāo)售日期.SetFocus
Exit Sub
End If
EndDate = Me.銷(xiāo)售日期
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 '將 銷(xiāo)售的當(dāng)天日期酣藻,月初開(kāi)始日期曹洽,月底結(jié)束日期寫(xiě)入 tbl參數(shù)表,以供查詢作為條件使用
DoCmd.OpenQuery "qry清空銷(xiāo)售日?qǐng)?bào)" '每次生成報(bào)表數(shù)據(jù)前辽剧,對(duì) tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào) 進(jìn)行清空
DoCmd.OpenQuery "qry本月累計(jì)銷(xiāo)量" '生成 本月累計(jì)銷(xiāo)量的清單(例如按客戶)
DoCmd.OpenQuery "qry追加銷(xiāo)量累計(jì)數(shù)" '將 清單追加到 tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào) 中
DoCmd.OpenQuery "qry本日銷(xiāo)量" '生成當(dāng)天的銷(xiāo)售量(按客戶)
DoCmd.OpenQuery "qry更新當(dāng)日銷(xiāo)量" '對(duì) tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào) 中的本日銷(xiāo)量進(jìn)行更新
DoCmd.OpenQuery "qry月訂單量" '生成本月的訂單量(按客戶)
DoCmd.OpenQuery "qry更新月訂單量" '對(duì) tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào) 中的訂單量進(jìn)行更新
DoCmd.SetWarnings True
DoCmd.OpenReport "rpt銷(xiāo)售日?qǐng)?bào)", acViewReport '打開(kāi)報(bào)表
End Sub
2.建立frm銷(xiāo)售明細(xì)
2.1 數(shù)據(jù)源【tbl銷(xiāo)售明細(xì)】- 動(dòng)態(tài)集送淆;
2.2 添加所有字段,分割窗體抖仅,數(shù)據(jù)表在下方坊夫;
2.3 對(duì)字段標(biāo)簽“編碼”改為名稱(chēng);
2.4 更改字段商品名稱(chēng)撤卢、規(guī)格名稱(chēng)环凿、客戶名稱(chēng)、銷(xiāo)售員文本框?yàn)?strong>組合框放吩;
2.5 設(shè)置組合框代碼
商品名稱(chēng):select tbl編碼_商品.商品編碼, tbl編碼_商品.商品名稱(chēng) from tbl編碼_商品;
規(guī)格名稱(chēng):select tbl編碼_規(guī)格.規(guī)格編碼, tbl編碼_規(guī)格.規(guī)格名稱(chēng) from tbl編碼_規(guī)格;
客戶名稱(chēng):select tbl編碼_客戶.客戶編碼, tbl編碼_客戶.客戶名稱(chēng) from tbl編碼_客戶;
銷(xiāo)售員名稱(chēng):select tbl編碼_銷(xiāo)售員.銷(xiāo)售員編碼, tbl編碼_銷(xiāo)售員.銷(xiāo)售員 from tbl編碼_銷(xiāo)售員;
以上智听,限于列表,取2列 渡紫,設(shè)置列寬 0cm;2cm到推;
五 建立報(bào)表
1.建立rpt銷(xiāo)售日?qǐng)?bào)
用于最后生成報(bào)表顯示。序號(hào)+項(xiàng)目名稱(chēng)+訂單數(shù)量+本日銷(xiāo)量+本月累計(jì)+占訂單百分比
[數(shù)據(jù)源]: tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)
1.1 添加報(bào)表頁(yè)眉惕澎。在頁(yè)眉增加文本框莉测,顯示報(bào)表所屬期間。
開(kāi)始日期=DLookUp("startdate","tbl參數(shù)表")
唧喉,
結(jié)束日期=DLookUp("enddate","tbl參數(shù)表")
捣卤;
1.2 添加頁(yè)面頁(yè)眉,6個(gè)標(biāo)簽八孝,屬性為摘要顯示要素董朝;
1.3 添加主體要素,6個(gè)文本框干跛,屬性為摘要顯示要素子姜。并定義名稱(chēng);
序號(hào)=1
運(yùn)行總和:工作組之上
占訂單百分比:=IIf(not IsNull([訂單數(shù)量]), Round([本月累計(jì)]/[訂單數(shù)量], 4),"")
1.4 設(shè)置頁(yè)面頁(yè)腳楼入,2個(gè)文本框=now()
哥捕;="共"&[Pages]&"頁(yè)牧抽,第"&[Page]&"頁(yè)"
1.5 設(shè)置報(bào)表頁(yè)腳,4個(gè)文本框+1個(gè)標(biāo)簽扭弧。對(duì)文本框定義阎姥;
訂單合計(jì)=Sum([訂單數(shù)量])
日銷(xiāo)量合計(jì)=Sum([本日銷(xiāo)量])
月銷(xiāo)量合計(jì)=Sum([本月累計(jì)])
百分比=IIf(not IsNull([訂單合計(jì)]),Round([訂單合計(jì)]/[月銷(xiāo)量合計(jì)],4),"")
總結(jié)
- 提供一個(gè)日期记舆,根據(jù)此日期計(jì)算當(dāng)月第一天和最后一天鸽捻,并寫(xiě)入tbl參數(shù)表;
- 選擇-查詢泽腮,根據(jù)日期范圍生成數(shù)據(jù)御蒲;
- 清空 tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào) ;
- 根據(jù)選擇查詢 qry本月銷(xiāo)量累計(jì),分類(lèi)匯總【qry銷(xiāo)售明細(xì)】與【tbl編碼_客戶】生成 tbl臨時(shí)表 _ 累計(jì)銷(xiāo)量;
- 根據(jù)追加查詢 qry追加銷(xiāo)量累計(jì)數(shù)懦趋,將tbl臨時(shí)表 _ 累計(jì)銷(xiāo)量的項(xiàng)目名稱(chēng)和銷(xiāo)售小計(jì)结借,追加到tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)里;
- 根據(jù)生成查詢 qry本日銷(xiāo)量汉额,將tbl編碼_客戶和tbl銷(xiāo)售明細(xì),通過(guò)客戶分類(lèi)匯總、合計(jì)銷(xiāo)售數(shù)量丰榴、指定銷(xiāo)售日期為enddate,然后生成表tbl臨時(shí)表 _ 本日銷(xiāo)量秆撮;
- 根據(jù)更新查詢 qry更新當(dāng)日銷(xiāo)量四濒,將tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)中的當(dāng)日銷(xiāo)量更新為tbl臨時(shí)表 _ 本日銷(xiāo)量.銷(xiāo)售小計(jì);
- 根據(jù)生成查詢 qry月訂單量职辨,分類(lèi)匯總【qry訂單明細(xì)】與【tbl編碼_客戶】生成 tbl臨時(shí)表 _ 月訂單量盗蟆;
- 根據(jù)追加查詢 qry更新月訂單量,將tbl臨時(shí)表 _ 銷(xiāo)售日?qǐng)?bào)中的訂貨數(shù)量更新為tbl臨時(shí)表 _ 月訂單量.訂貨量舒裤;
- 圖解
st=>start: 選擇銷(xiāo)售日期
e=>end
in=>inputoutput: 日期設(shè)置
op1=>operation: qry清空銷(xiāo)售日?qǐng)?bào)-清空 tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào)
op2=>operation: qry本月累計(jì)銷(xiāo)量-生成 本月累計(jì)銷(xiāo)量
op3=>operation: qry追加銷(xiāo)量累計(jì)數(shù)-追加 tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào)
op4=>operation: qry本日銷(xiāo)量-生成 本日銷(xiāo)量
op5=>operation: qry更新當(dāng)日銷(xiāo)量-更新 tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào)-本日銷(xiāo)量
op6=>operation: qry月訂單量-生成 月訂單量
op7=>operation: qry更新月訂單量-更新 tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào)-訂單量
st->in->op1->op2->op3->op4->op5->op6->op7
備注
- 建表時(shí)喳资,對(duì)臨時(shí)表“tbl臨時(shí)表_銷(xiāo)售日?qǐng)?bào)”,數(shù)據(jù)默認(rèn)不應(yīng)為0比較重要腾供,會(huì)導(dǎo)致報(bào)表計(jì)算錯(cuò)誤仆邓。
- tbl參數(shù)表,必須現(xiàn)有數(shù)據(jù)台腥。SQL語(yǔ)句UPDATE才可以更新宏赘。