版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫課程設(shè)計實驗報告姓名:黃世增班級:計算機(jī)1403學(xué)號:05實驗名稱使用VisualBasic和SQLServer2014開發(fā)庫存銷售管理系統(tǒng)實驗?zāi)康氖褂肰isualBasic開發(fā)工具開發(fā)一個庫存銷售管理系統(tǒng),該系統(tǒng)采用SQLServer2014數(shù)據(jù)庫保存庫存貨物信息,數(shù)據(jù)庫中包括貨物進(jìn)出庫信息和商品銷售等信息。該系統(tǒng)包括系統(tǒng)登錄、貨物進(jìn)出庫管理、商品銷售管理和商品統(tǒng)計管理等功能,經(jīng)過這些功能實現(xiàn)對庫存中貨物信息和銷售信息進(jìn)行管理。系統(tǒng)主要實現(xiàn)以下目標(biāo):實現(xiàn)系統(tǒng)登錄及更正用戶密碼的功能。對庫存貨物的進(jìn)出庫信息進(jìn)行管理。對商品的銷售信息進(jìn)行管理。依照銷售日期統(tǒng)計商品的銷售數(shù)據(jù)。實驗步驟設(shè)計數(shù)據(jù)庫建立一個名為“DB_KCGL”的數(shù)據(jù)庫,依照前述的主要功能目標(biāo),需要建立(關(guān)系):(1)貨物的進(jìn)出庫信息:保存貨物的進(jìn)出庫信息
3個數(shù)據(jù)表id:庫存貨物信息的編號,主碼,建議長度為18的numeric種類。tb_title:庫存貨物的名稱,建議長度為50的varchar種類。tb_style:庫存貨物的種類,建議長度為50的varchar種類。tb_nums:庫存貨物的數(shù)量,建議為整型int。tb_values:庫存貨物的價格,實數(shù)種類real。tb_date:庫存貨物的入庫日期,時間日期種類tb_mark:庫存貨物的備注信息,建議長度為
datetime。50的varchar
種類。(2)商品的銷售信息:保存商品的銷售信息id:商品銷售信息的編號,主碼,建議長度為18的numeric種類。tb_title:銷售商品的名稱,建議長度為50的varchar種類。tb_nums:建議為整型int。tb_values:銷售商品的總價,浮點種類float。tb_date
:商品銷售的日期,時間日期種類
datetime
。(3)系統(tǒng)用戶的信息:保存系統(tǒng)用戶的信息id:用戶信息的編號,主碼,建議長度為tb_name:用戶名稱,建議長度為50的
18的varchar
numeric種類。
種類。tb_pas:用戶的密碼信息,建議長度為50的varchar種類。設(shè)計連接數(shù)據(jù)庫的模塊需要第一建立一個連接數(shù)據(jù)庫的模塊,這樣應(yīng)用程序才能與數(shù)據(jù)庫中的數(shù)據(jù)表獲取連接,將數(shù)據(jù)信息從數(shù)據(jù)表中讀出到應(yīng)用程序中或經(jīng)過應(yīng)用程序保存到數(shù)據(jù)表中。為此,建立一個負(fù)責(zé)數(shù)據(jù)庫連接的模塊以下:(1)選擇“工程”菜單下的“增加模塊”命令,在應(yīng)用程序中增加一個模塊Module1。2)Module1模塊的實現(xiàn)以下:數(shù)據(jù)連接模塊PublicMyStrsAsStringPublicDB_AdoRsAsNew'后增加一個記錄集對象PublicDB_AdoRs1AsNew'后增加一個記錄集對象PublicDB_AdoRs2AsNew'后增加一個記錄集對象PublicFunctionCnn( )As'定義連接字符串函數(shù)SetCnn=New"Provider=;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=DB_KCGL;DataSource=."EndFunctionPublicSubMain( )MyStrs="Provider=;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=DB_KCGL;DataSource=."'
顯示系統(tǒng)登錄窗體EndSub(3)這里需要將程序的入口設(shè)置為模塊中的
Main( )
函數(shù)。選擇“工程”菜單下的“工程屬性”命令,在“通用”標(biāo)簽中進(jìn)行相應(yīng)設(shè)置。系統(tǒng)登陸模塊設(shè)計在本庫存銷售管理系統(tǒng)中,只有授權(quán)用戶(管理員)能夠登錄并進(jìn)行庫存和銷售信息管理與保護(hù),因此需要一個系統(tǒng)登錄界面,防范非法用戶登錄到系統(tǒng)中,從而保證了應(yīng)用程序的安全性和可靠性。登錄窗體設(shè)計設(shè)計以下的登錄窗體,在窗體中要增加一個ADO控件,命名為Adodc1。1)登錄窗體啟動此后,需要將系統(tǒng)用戶的信息數(shù)據(jù)表中的所適用戶名稱信息增加到窗體的ComboBox控件的Op_Name屬性中,即實現(xiàn)在“操作員名稱”下拉列表中能夠出現(xiàn)系統(tǒng)當(dāng)前的操作員信息,供登錄取戶選擇。PrivateSubForm_Load( )使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表MyStrs="select*from系統(tǒng)的用戶信息"If>0Then'在增加數(shù)據(jù)時,第一清空控件中的內(nèi)容DoWhile=False'將操作員信息增加到下拉列表框控件中間"tb_name"))LoopEndIfEndSub2)當(dāng)用戶在“操作員名稱”下拉列表中選擇操作員的名稱,并且在“操作員密碼”文本框輸入正確的密碼此后,單擊“確定”按鈕將登錄到系統(tǒng)中,否則將無法登錄系統(tǒng)。詳細(xì)實現(xiàn)以下:PrivateSubCmd_Ok_Click( )="select*fromTb_Userwheretb_name='"&&"'"If>0ThenMPassword="tb_pas")If=MPasswordThenName1=="當(dāng)前操作員:
'"+"tb_name")
判斷數(shù)據(jù)的密碼可否正確'
經(jīng)過身份考據(jù)則顯示主窗體,登錄到系統(tǒng)中間UnloadMeElseMsgBox"
密碼不正確
,請您確認(rèn)后重新輸入
",,"
提示信息
"=""EndIfElseMsgBox"對不起沒有此用戶的信息",,"提示信息"""""EndIfEndSub系統(tǒng)主界面的實現(xiàn)主界面設(shè)計(1)在工程中增加一個窗體,將窗體命名為Frm_main,將窗體Caption屬性設(shè)置為“庫存管理系統(tǒng)”。2)增加一個Toolbar控件,工具欄由“更正密碼”、“庫存管理”、“商品銷售”、“銷售統(tǒng)計”和“退出系統(tǒng)”5個按鈕組成。3)增加一個StatusBar控件,使得狀態(tài)欄中能夠顯示登錄操作員姓名和當(dāng)前系統(tǒng)時間等信息。4)在主窗體上增加一個時鐘控件,用于顯示系統(tǒng)當(dāng)前日期和時間信息。5)在主窗體上增加一個Label標(biāo)簽控件,將其Caption屬性設(shè)置為“庫存管理系統(tǒng)”。代碼實現(xiàn)(1)窗體啟動時,在窗體的狀態(tài)欄中將顯示當(dāng)前系統(tǒng)的日期信息:PrivateSubForm_Load( )=Format(Now,"yyyy年mm月dd日")EndSub(2)單擊窗口工具欄按鈕時,將會調(diào)用系統(tǒng)的各個子功能模塊:PrivateSubToolbar1_ButtonClick(ByValButtonAsSelectCaseCase1'更正密碼Case2'庫存管理Case3'商品銷售Case4'銷售統(tǒng)計Case5End'退出系統(tǒng)EndSelectEndSub(3)在時鐘控件的Timer事件中增加以下代碼,實現(xiàn)在狀態(tài)欄中顯示當(dāng)前系統(tǒng)時間的功能:PrivateSubTimer1_Timer( )TimeEndSub(4)再向狀態(tài)欄中增加公司名稱,操作員和公司網(wǎng)址信息。系統(tǒng)主窗體的運(yùn)行界面以以下圖所示:進(jìn)出庫管理模塊的設(shè)計與實現(xiàn)該模塊主若是記錄和保護(hù)庫存中的貨物信息,其中包括對貨物信息的刪除、更正和保存等方面的功能。窗體界面設(shè)計1)在工程中增加一個窗體,命名為Frm_Inout,將窗體Caption設(shè)置為“進(jìn)出庫管理”。2)在窗體上增加相應(yīng)的控件,以以下圖所示。3)經(jīng)過“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件增加到工具箱中,爾后在窗體上增加1個數(shù)據(jù)表格控件DataGrid1。(4)在窗體上增加一個ADO控件Adodc1,同時將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc1。程序代碼實現(xiàn)(1)窗口載入時,將數(shù)據(jù)庫中商品表數(shù)據(jù)讀出。PrivateSubForm_Load( )=MyStrs="select*from貨物的進(jìn)出庫信息orderbyid"AddTitleEndSub其中,AddTitle函數(shù)用于向DataGrid1增加表頭,實現(xiàn)以下:增加數(shù)據(jù)庫字段標(biāo)題的事件過程PrivateSubAddTitle( )"編號""名稱""種類""數(shù)量""單價""入庫日期""備注"EndSub(2)點擊“增加”按鈕,清空編寫框,讓用戶輸入新的待增加內(nèi)容PrivateSubCommand1_Click( )'清空文本框中的內(nèi)容=""=""=""=""=""=""EndSub(3)點擊“刪除”按鈕,刪除選中當(dāng)前記錄。PrivateSubCommand2_Click( )'刪除庫存信息c=MsgBox("確認(rèn)要刪除該信息嗎
",17,"
提示信息
")Ifc=vbOKThen'若是有錯誤則執(zhí)行錯誤辦理OnErrorResumeNextSetDB_AdoRs=("Deletefrom貨物的進(jìn)出庫信息whereid='"++"'")MsgBox"數(shù)據(jù)刪除成功",64,"提示信息"刪除后刷新數(shù)據(jù)信息="select*from貨物的進(jìn)出庫信息orderbyid"AddTitleEndIf""""""""""""EndSub(4)點擊“更正”按鈕,更正當(dāng)前的記錄信息。PrivateSubCommand3_Click( )更正庫存信息c=MsgBox("確認(rèn)更正信息嗎",33,"提示信息")Ifc=vbOKThen'OnErrorResumeNextSetDB_AdoRs=("UPDATE貨物的進(jìn)出庫信息SETtb_title='"+Text2+"',tb_style='"+Text3+"',tb_nums='"+Text4+"',tb_values='"_+Text5+"',tb_mark='"+Text6+"'whereid='"++"'")MsgBox"數(shù)據(jù)更正成功",64,"提示信息"="select*from貨物的進(jìn)出庫信息orderbyid"AddTitleEndIfEndSub(5)點擊“保存”按鈕,將保存文本框中輸入的貨物信息。PrivateSubCommand4_Click( )If=""Or=""Or=""Or=""Or=""Or=""ThenMsgBox"保存的數(shù)據(jù)信息不能夠為空",48,"提示信息"Else"select*from貨物的進(jìn)出庫信息wheretb_title='"++"'",Cnn,adOpenKeysetIf>0Then'判斷要保存的信息可否已經(jīng)存在MsgBox"該貨物信息信息已經(jīng)存在",48,"提示信息"Elsec=MsgBox("
確認(rèn)保存信息嗎
",33,"
提示信息
")Ifc=vbOKThen
'
若是選擇的是“確定”按鈕則保存信息SetDB_AdoRs=("insertinto貨物的進(jìn)出庫信息values("&Text1&",'"Text2&"','"&Text3&"',"&Text4&","_Text5&",'"&Date&"','"&Text6&"')")MsgBox"信息保存成功",64,"提示信息"ElseEndIf保存數(shù)據(jù)后刷新數(shù)據(jù)信息="select*from貨物的進(jìn)出庫信息orderbyid"AddTitleEndIfEndIfEndSub(6)點擊退出,銷毀當(dāng)前窗口。PrivateSubCommand6_Click( )UnloadMeEndSub(7)單擊DataGrid1中的相應(yīng)記錄,會在窗體左側(cè)的各個編寫框中顯示相應(yīng)的內(nèi)容。PrivateSubDataGrid1_Click( )'OnErrorResumeNextIf>0Then======EndIfEndSub窗體的運(yùn)行界面以以下圖所示:商品銷售模塊的設(shè)計與實現(xiàn)在“商品銷售管理”窗口中的“銷售商品”下拉列表中選綱要銷售的商品此后,該商品的基本信息將顯示在窗體中相應(yīng)的文本框中,在輸入銷售數(shù)量和實收金額后,單擊“確認(rèn)銷售”按鈕完成銷售商品的操作。窗體界面設(shè)計1)在工程中增加一個窗體,命名為Frm_Sale,將Caption屬性設(shè)置為“商品銷售管理”。2)在窗體上增加相應(yīng)的控件,以以下圖所示。3)經(jīng)過“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件增加到工具箱中,爾后在窗體上增加1個數(shù)據(jù)表格控件DataGrid1。4)在窗體上增加2個ADO控件Adodc1和Adodc2,同時將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc2。程序代碼實現(xiàn)1)窗體啟動時,將商品庫存中的貨物名稱信息增加到下拉列表中,爾后再將商品銷售的數(shù)據(jù)信息顯示在DataGrid1控件中。PrivateSubForm_Load( )=MyStrs="select*from商品的銷售信息orderbyid"AddTitle使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表=MyStrs="select*from
貨物的進(jìn)出庫信息
"If>0Then'在增加數(shù)據(jù)時,第一清空控件中的內(nèi)容DoWhile=False'將貨物進(jìn)出庫信息增加到下拉列表框控件當(dāng)中"tb_title"))LoopEndIfEndSubPrivateSubAddTitle( )"編號""名稱""銷售數(shù)量""銷售總價""銷售日期"EndSub2)選擇下拉列表中的商品此后,該商品的詳細(xì)信息將顯示在窗體中相對應(yīng)的文本框中。商品詳細(xì)信息PrivateSubCombo1_Click( )="select*from貨物的進(jìn)出庫信息wheretb_title='"&&"'"If>0Then"id")"tb_style")"tb_nums")"tb_values")"tb_mark")EndIf清空文本框中的內(nèi)容""""""""EndSub3)單擊“確認(rèn)銷售”按鈕,將完成銷售商品的操作。4)當(dāng)用戶輸入銷售數(shù)量后并將輸入焦點移開后,需要實時更新商品詳細(xì)信息中的數(shù)量信息,即在原有數(shù)量的基礎(chǔ)上減去用戶輸入的銷售數(shù)量。3)和(4)的代碼:PrivateSubCommand1_Click( )=MyStrs="select*from貨物的進(jìn)出庫信息wheretb_title='"&&"'"DimaAsIntegerDimbAsIntegera=Valb=Val*If=""Or=""ThenMsgBox"請補(bǔ)全信息!ElseIfa<bThen
",64,"
提示信息
"MsgBox"信息輸入有誤,請重新輸入!",64,"提示信息"Else*--SetDB_AdoRs=("insertinto+1&"','"&&"','"&Text6&"',"&Text8&",'"&Date&"')")SetDB_AdoRs=("UPDATE貨物的進(jìn)出庫信息whereid='"&Text1&"'")MsgBox"銷售成功!",64,"提示信息"="select*from商品的銷售信息"
商品的銷售信息SETtb_nums='"
values('"&&Text3&"'AddTitleEndIfEndIfEndSub窗體的運(yùn)行結(jié)果以以下圖所示:銷售統(tǒng)計模塊的設(shè)計與實現(xiàn)該模塊主要實現(xiàn)統(tǒng)計商品銷售信息的功能。選擇商品的銷售日期和銷售商品的名稱之后,在下面的DataGrid數(shù)據(jù)表格控件中就會顯示盤問的數(shù)據(jù)結(jié)果信息,同時統(tǒng)計出銷售商品的總數(shù)量和總價格。窗體界面設(shè)計1)增加一個窗體,命名為Frm_Stat,將窗體的Caption屬性設(shè)置為“銷售統(tǒng)計”。2)在窗體上增加控件情況如后圖。4)在窗體上增加2個ADO控件Adodc1和Adodc2,同時將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc2。銷售統(tǒng)計窗體的設(shè)計界面以以下圖所示。程序代碼實現(xiàn)1)在啟動窗體時,將貨物的名稱信息增加到下拉列表控件中,爾后再將商品銷售的數(shù)據(jù)信息顯示在表格控件中。2)在日期時間控件DTPicker1的Change事件下增加以下的程序代碼,實現(xiàn)依照選擇條件統(tǒng)計商品銷售信息的功能。3)在日期Combo1控件的Click事件下增加以下的程序代碼,實現(xiàn)依照選擇條件統(tǒng)計商品銷售信息的功能。PrivateSubCombo1_Click( )="select*from商品的銷售信息wheretb_title='"&&"'andtb_date='"&&"'"AddTitleDimn,mAsIntegern=0m=0DoWhileNotn=n+m=m+LoopnmEndSubPrivateSubDTPicker1_Change( )="select*from商品的銷售信息wheretb_title='"&&"'andtb_date='"&&"'"AddTitleDimn,mAsIntegern=0m=0DoWhileNotn=n+m=m+LoopnmEndSubPrivateSubForm_Load( )=MyStrs="select*from
商品的銷售信息
wheretb_title='"&&"'andtb_date='"&&"'orderbyid"AddTitle使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表MyStrs="select*from貨物的進(jìn)出庫信息"If>0Then'在增加數(shù)據(jù)時,第一清空控件中的內(nèi)容DoWhile=False'將商品銷售信息增加到下拉列表框控件中間"tb_title"))LoopEndIfEndSubPrivateSubAddTitle( )"編號""名稱""銷售數(shù)量""銷售總價""銷售日期"EndSub窗體的運(yùn)行結(jié)果以下:更正密碼模塊的設(shè)計與實現(xiàn)窗體界面設(shè)計1)增加一個窗體,命名為Frm_Pas,將Caption屬性設(shè)置為“密碼更正”。2)在窗體上加入一個ADO控件Adodc1。3)設(shè)計窗體的界面以以下圖。程序代碼實現(xiàn)(1)載入窗口時連接操作員信息數(shù)據(jù)表PrivateSubForm_Load( )使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表MyStrs="select*from系統(tǒng)用戶的信息"EndSub2)當(dāng)點擊“確定”按鈕時,第一判斷用戶輸入的用戶名和原密碼信息可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中專助產(chǎn)畢業(yè)個人總結(jié)(11篇)
- 2024年度數(shù)據(jù)中心建設(shè)安裝工程分包合同
- 七一二:天津七一二通信廣播股份有限公司2021年年度報告摘要
- 前臺年終總結(jié)開頭范本(3篇)
- 2024年血液凈化信息系統(tǒng)項目綜合評估報告
- 2024年文化活動中心管理承包協(xié)議
- 2024年戶外護(hù)欄安裝合同
- 2024年文化旅游項目投資與股權(quán)轉(zhuǎn)讓合同
- 2024年影樓客戶資料保密協(xié)議
- 節(jié)約用電主題班會教案(合集8篇)
- 蔬菜出口基地備案管理課件
- 子宮異常出血的護(hù)理
- 高考英語單詞3500記憶短文40篇
- 《耳穴療法治療失眠》課件
- 詢盤分析及回復(fù)
- 氯化工藝安全培訓(xùn)課件
- 指導(dǎo)巡察工作精細(xì)科學(xué)
- 企業(yè)法律知識培訓(xùn)消費(fèi)者權(quán)益保護(hù)實務(wù)
- 快樂讀書吧-讀后分享課:《十萬個為什么》教學(xué)案列
- 2024年 貴州茅臺酒股份有限公司招聘筆試參考題庫含答案解析
- 河上建壩糾紛可行性方案
評論
0/150
提交評論