已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
學習資料收集于網(wǎng)絡(luò),僅供參考 數(shù)據(jù)庫課程設(shè)計 實驗報告 姓名:黃世增 班級:計算機1403 學號:1411640305學習資料1. 實驗名稱 使用Visual Basic 6.0和SQL Server 2014開發(fā)庫存銷售管理系統(tǒng)2.實驗目的使用Visual Basic 6.0開發(fā)工具開發(fā)一個庫存銷售管理系統(tǒng),該系統(tǒng)采用SQL Server 2014數(shù)據(jù)庫保存庫存貨物信息,數(shù)據(jù)庫中包括貨物出入庫信息和商品銷售等信息。該系統(tǒng)包括系統(tǒng)登錄、貨物出入庫管理、商品銷售管理和商品統(tǒng)計管理等功能,通過這些功能實現(xiàn)對庫存中貨物信息和銷售信息進行管理。系統(tǒng)主要實現(xiàn)以下目標:l 實現(xiàn)系統(tǒng)登錄及修改用戶密碼的功能。l 對庫存貨物的出入庫信息進行管理。l 對商品的銷售信息進行管理。l 根據(jù)銷售日期統(tǒng)計商品的銷售數(shù)據(jù)。3.實驗步驟3.1 設(shè)計數(shù)據(jù)庫建立一個名為“DB_KCGL”的數(shù)據(jù)庫,根據(jù)前述的主要功能目標,需要建立3個數(shù)據(jù)表(關(guān)系):(1) 貨物的出入庫信息:保存貨物的出入庫信息l id:庫存貨物信息的編號,主碼,建議長度為18的numeric類型。l tb_title:庫存貨物的名稱,建議長度為50的varchar類型。l tb_style:庫存貨物的類型,建議長度為50的varchar類型。l tb_nums:庫存貨物的數(shù)量,建議為整型int。l tb_values:庫存貨物的價格,實數(shù)類型real。l tb_date:庫存貨物的入庫日期,時間日期類型datetime。l tb_mark:庫存貨物的備注信息,建議長度為50的varchar類型。 (2) 商品的銷售信息:保存商品的銷售信息l id:商品銷售信息的編號,主碼,建議長度為18的numeric類型。l tb_title:銷售商品的名稱,建議長度為50的varchar類型。l tb_nums:建議為整型int。l tb_values:銷售商品的總價,浮點類型float。l tb_date:商品銷售的日期,時間日期類型datetime。 (3) 系統(tǒng)用戶的信息:保存系統(tǒng)用戶的信息l id:用戶信息的編號,主碼,建議長度為18的numeric類型。l tb_name:用戶名稱,建議長度為50的varchar類型。l tb_pas:用戶的密碼信息,建議長度為50的varchar類型。 3.2 設(shè)計連接數(shù)據(jù)庫的模塊需要首先建立一個連接數(shù)據(jù)庫的模塊,這樣應用程序才能與數(shù)據(jù)庫中的數(shù)據(jù)表取得連接,將數(shù)據(jù)信息從數(shù)據(jù)表中讀出到應用程序中或通過應用程序保存到數(shù)據(jù)表中。為此,建立一個負責數(shù)據(jù)庫連接的模塊如下:(1) 選擇“工程”菜單下的“添加模塊”命令,在應用程序中添加一個模塊Module1。(2) Module1模塊的實現(xiàn)如下:數(shù)據(jù)連接模塊Public MyStrs As StringPublic DB_AdoRs As New ADODB.Recordset 后添加一個記錄集對象Public DB_AdoRs1 As New ADODB.Recordset 后添加一個記錄集對象Public DB_AdoRs2 As New ADODB.Recordset 后添加一個記錄集對象Public Function Cnn() As ADODB.Connection 定義連接字符串函數(shù) Set Cnn = New ADODB.Connection Cnn.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DB_KCGL;Data Source=.End FunctionPublic Sub Main() MyStrs = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DB_KCGL;Data Source=. 顯示系統(tǒng)登錄窗體 Form1.ShowEnd Sub(3) 這里需要將程序的入口設(shè)置為模塊中的Main()函數(shù)。選擇“工程”菜單下的“工程屬性”命令,在“通用”標簽中進行相應設(shè)置。3.3 系統(tǒng)登陸模塊設(shè)計在本庫存銷售管理系統(tǒng)中,只有授權(quán)用戶(管理員)可以登錄并進行庫存和銷售信息管理與維護,因此需要一個系統(tǒng)登錄界面,防止非法用戶登錄到系統(tǒng)中,從而保證了應用程序的安全性和可靠性。3.3.1 登錄窗體設(shè)計設(shè)計如下的登錄窗體,在窗體中要添加一個ADO控件,命名為Adodc1。(1) 登錄窗體啟動之后,需要將系統(tǒng)用戶的信息數(shù)據(jù)表中的所有用戶名稱信息添加到窗體的ComboBox控件的Op_Name屬性中,即實現(xiàn)在“操作員名稱”下拉列表中可以出現(xiàn)系統(tǒng)當前的操作員信息,供登錄用戶選擇。Private Sub Form_Load()使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表 Adodc1.ConnectionString = MyStrs Adodc1.RecordSource = select * from 系統(tǒng)的用戶信息 Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset.MoveFirst Op_Name.Clear 在添加數(shù)據(jù)時,首先清空控件中的內(nèi)容 Do While Adodc1.Recordset.EOF = False 將操作員信息添加到下拉列表框控件當中 Op_Name.AddItem (Adodc1.Recordset.Fields(tb_name) Adodc1.Recordset.MoveNext Loop End IfEnd Sub(2) 當用戶在“操作員名稱”下拉列表中選擇操作員的名稱,并且在“操作員密碼”文本框輸入正確的密碼之后,單擊“確定”按鈕將登錄到系統(tǒng)中,否則將無法登錄系統(tǒng)。具體實現(xiàn)如下:Private Sub Cmd_Ok_Click() Adodc1.RecordSource = select * from Tb_User where tb_name = & Op_Name.Text & Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then MPassword = Adodc1.Recordset.Fields(tb_pas) If Txt_Password.Text = MPassword Then 判斷數(shù)據(jù)的密碼是否正確 Name1 = Op_Name.Text Frm_Main.StatusBar1.Panels.Item(2).Text = 當前操作員: + Adodc1.Recordset.Fields(tb_name) Frm_Main.Show 通過身份驗證則顯示主窗體,登錄到系統(tǒng)當中 Unload Me Else MsgBox 密碼不正確,請您確認后重新輸入, , 提示信息 Txt_Password.Text = Txt_Password.SetFocus End If Else MsgBox 對不起 沒有此用戶的信息, , 提示信息 Op_Name.Text = Txt_Password.Text = End IfEnd Sub3.4 系統(tǒng)主界面的實現(xiàn)3.4.1 主界面設(shè)計(1) 在工程中添加一個窗體,將窗體命名為Frm_main,將窗體Caption屬性設(shè)置為“庫存管理系統(tǒng)”。(2) 添加一個Toolbar控件,工具欄由“修改密碼”、“庫存管理”、“商品銷售”、“銷售統(tǒng)計”和“退出系統(tǒng)”5個按鈕組成。(3) 添加一個StatusBar控件,使得狀態(tài)欄中能夠顯示登錄操作員姓名和當前系統(tǒng)時間等信息。(4) 在主窗體上添加一個時鐘控件,用于顯示系統(tǒng)當前日期和時間信息。(5) 在主窗體上添加一個Label標簽控件,將其Caption屬性設(shè)置為“庫存管理系統(tǒng)”。3.4.2 代碼實現(xiàn)(1) 窗體啟動時,在窗體的狀態(tài)欄中將顯示當前系統(tǒng)的日期信息:Private Sub Form_Load() StatusBar1.Panels.Item(3).Text = Format(Now, yyyy年mm月dd日)End Sub(2)單擊窗口工具欄按鈕時,將會調(diào)用系統(tǒng)的各個子功能模塊:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 Frm_Pas.Show 修改密碼 Case 2 Frm_Inout.Show 庫存管理 Case 3 Frm_Sale.Show 商品銷售 Case 4 Frm_Stat.Show 銷售統(tǒng)計 Case 5 End 退出系統(tǒng) End SelectEnd Sub(3) 在時鐘控件的Timer事件中添加如下代碼,實現(xiàn)在狀態(tài)欄中顯示當前系統(tǒng)時間的功能:Private Sub Timer1_Timer() StatusBar1.Panels.Item(4).Text = TimeEnd Sub(4) 再向狀態(tài)欄中添加公司名稱,操作員和公司網(wǎng)址信息。系統(tǒng)主窗體的運行界面如下圖所示:3.5 出入庫管理模塊的設(shè)計與實現(xiàn)該模塊主要是記錄和維護庫存中的貨物信息,其中包括對貨物信息的刪除、修改和保存等方面的功能。3.5.1 窗體界面設(shè)計(1) 在工程中添加一個窗體,命名為Frm_Inout,將窗體Caption設(shè)置為“出入庫管理”。(2) 在窗體上添加相應的控件,如下圖所示。(3) 通過“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件添加到工具箱中,然后在窗體上添加1個數(shù)據(jù)表格控件DataGrid1。(4) 在窗體上添加一個ADO控件Adodc1,同時將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc1。3.5.2 程序代碼實現(xiàn)(1) 窗口載入時,將數(shù)據(jù)庫中商品表數(shù)據(jù)讀出。Private Sub Form_Load() Adodc1.ConnectionString = MyStrs Adodc1.RecordSource = select * from 貨物的出入庫信息 order by id Adodc1.Refresh AddTitleEnd Sub其中,AddTitle函數(shù)用于向DataGrid1添加表頭,實現(xiàn)如下:添加數(shù)據(jù)庫字段標題的事件過程Private Sub AddTitle() DataGrid1.Columns.Item(0).Caption = 編號 DataGrid1.Columns.Item(1).Caption = 名稱 DataGrid1.Columns.Item(2).Caption = 類型 DataGrid1.Columns.Item(3).Caption = 數(shù)量 DataGrid1.Columns.Item(4).Caption = 單價 DataGrid1.Columns.Item(5).Caption = 入庫日期 DataGrid1.Columns.Item(6).Caption = 備注End Sub(2)點擊“添加”按鈕,清空編輯框,讓用戶輸入新的待添加內(nèi)容Private Sub Command1_Click()清空文本框中的內(nèi)容 Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text1.SetFocusEnd Sub(3)點擊“刪除”按鈕,刪除選中當前記錄。Private Sub Command2_Click()刪除庫存信息 c = MsgBox(確認要刪除該信息嗎, 17, 提示信息) If c = vbOK Then 如果有錯誤則執(zhí)行錯誤處理 On Error Resume Next Set DB_AdoRs = Cnn.Execute(Delete from 貨物的出入庫信息 where id= + Text1.Text + )MsgBox 數(shù)據(jù)刪除成功, 64, 提示信息 刪除后刷新數(shù)據(jù)信息 Adodc1.RecordSource = select * from 貨物的出入庫信息 order by id Adodc1.Refresh AddTitle End If Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = End Sub(4)點擊“修改”按鈕,修改當前的記錄信息。Private Sub Command3_Click()修改庫存信息 c = MsgBox(確認修改信息嗎, 33, 提示信息) If c = vbOK Then On Error Resume Next Set DB_AdoRs = Cnn.Execute(UPDATE 貨物的出入庫信息 SET tb_title= + Text2 + ,tb_style= + Text3 + ,tb_nums= + Text4 + ,tb_values= _ + Text5 + ,tb_mark= + Text6 + where id= + Text1.Text + ) MsgBox 數(shù)據(jù)修改成功, 64, 提示信息 Adodc1.RecordSource = select * from 貨物的出入庫信息 order by id Adodc1.Refresh AddTitle End IfEnd Sub(5)點擊“保存”按鈕,將保存文本框中輸入的貨物信息。Private Sub Command4_Click()If Text1.Text = Or Text2.Text = Or Text3.Text = Or Text4.Text = Or Text5.Text = Or Text6.Text = Then MsgBox 保存的數(shù)據(jù)信息不能為空, 48, 提示信息 Else DB_AdoRs.Open select * from 貨物的出入庫信息 where tb_title= + Text2.Text + , Cnn, adOpenKeyset If DB_AdoRs.RecordCount 0 Then 判斷要保存的信息是否已經(jīng)存在 MsgBox 該貨物信息信息已經(jīng)存在, 48, 提示信息 DB_AdoRs.Close Else DB_AdoRs.Close c = MsgBox(確認保存信息嗎, 33, 提示信息) If c = vbOK Then 如果選擇的是“確定”按鈕則保存信息 Set DB_AdoRs = Cnn.Execute(insert into 貨物的出入庫信息 values( & Text1 & , & Text2 & , & Text3 & , & Text4 & , _ & Text5 & , & Date & , & Text6 & ) MsgBox 信息保存成功, 64, 提示信息 Else End If 保存數(shù)據(jù)后刷新數(shù)據(jù)信息 Adodc1.RecordSource = select * from 貨物的出入庫信息 order by id Adodc1.Refresh AddTitle End If End IfEnd Sub(6)點擊退出,銷毀當前窗口。Private Sub Command6_Click() Unload MeEnd Sub(7) 單擊DataGrid1中的相應記錄,會在窗體左側(cè)的各個編輯框中顯示相應的內(nèi)容。Private Sub DataGrid1_Click()On Error Resume Next If Adodc1.Recordset.RecordCount 0 Then Text1.Text = Adodc1.Recordset.Fields(0) Text2.Text = Adodc1.Recordset.Fields(1) Text3.Text = Adodc1.Recordset.Fields(2) Text4.Text = Adodc1.Recordset.Fields(3) Text5.Text = Adodc1.Recordset.Fields(4) Text6.Text = Adodc1.Recordset.Fields(6) End IfEnd Sub 窗體的運行界面如下圖所示: 3.6 商品銷售模塊的設(shè)計與實現(xiàn)在“商品銷售管理”窗口中的“銷售商品”下拉列表中選擇要銷售的商品之后,該商品的基本信息將顯示在窗體中相應的文本框中,在輸入銷售數(shù)量和實收金額后,單擊“確認銷售”按鈕完成銷售商品的操作。3.6.1 窗體界面設(shè)計(1) 在工程中添加一個窗體,命名為Frm_Sale,將Caption屬性設(shè)置為“商品銷售管理”。(2)在窗體上添加相應的控件,如下圖所示。 (3)通過“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件添加到工具箱中,然后在窗體上添加1個數(shù)據(jù)表格控件DataGrid1。(4)在窗體上添加2個ADO控件Adodc1和Adodc2,同時將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc2。3.6.2 程序代碼實現(xiàn)(1) 窗體啟動時,將商品庫存中的貨物名稱信息添加到下拉列表中,然后再將商品銷售的數(shù)據(jù)信息顯示在DataGrid1控件中。Private Sub Form_Load() Adodc2.ConnectionString = MyStrs Adodc2.RecordSource = select * from 商品的銷售信息 order by id Adodc2.Refresh AddTitle 使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表 Adodc1.ConnectionString = MyStrs Adodc1.RecordSource = select * from 貨物的出入庫信息 Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset.MoveFirst Combo1.Clear 在添加數(shù)據(jù)時,首先清空控件中的內(nèi)容 Do While Adodc1.Recordset.EOF = False 將貨物出入庫信息添加到下拉列表框控件當中 Combo1.AddItem (Adodc1.Recordset.Fields(tb_title) Adodc1.Recordset.MoveNext Loop End IfEnd SubPrivate Sub AddTitle() DataGrid1.Columns.Item(0).Caption = 編號 DataGrid1.Columns.Item(1).Caption = 名稱 DataGrid1.Columns.Item(2).Caption = 銷售數(shù)量 DataGrid1.Columns.Item(3).Caption = 銷售總價 DataGrid1.Columns.Item(4).Caption = 銷售日期End Sub(2) 選擇下拉列表中的商品之后,該商品的詳細信息將顯示在窗體中相對應的文本框中。商品詳細信息Private Sub Combo1_Click()Adodc1.RecordSource = select * from 貨物的出入庫信息 where tb_title = & Combo1.Text & Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then Text1.Text = Adodc1.Recordset.Fields(id) Text2.Text = Adodc1.Recordset.Fields(tb_style) Text3.Text = Adodc1.Recordset.Fields(tb_nums) Text4.Text = Adodc1.Recordset.Fields(tb_values) Text5.Text = Adodc1.Recordset.Fields(tb_mark) End If 清空文本框中的內(nèi)容 Text6.Text = Text7.Text = Text8.Text = Text9.Text = End Sub(3) 單擊“確認銷售”按鈕,將完成銷售商品的操作。(4) 當用戶輸入銷售數(shù)量后并將輸入焦點移開后,需要實時更新商品詳細信息中的數(shù)量信息,即在原有數(shù)量的基礎(chǔ)上減去用戶輸入的銷售數(shù)量。(3)和(4)的代碼:Private Sub Command1_Click() Adodc1.ConnectionString = MyStrs Adodc1.RecordSource = select * from 貨物的出入庫信息 where tb_title = & Combo1.Text & Adodc1.Refresh Dim a As Integer Dim b As Integer a = Val(Text7.Text) b = Val(Text4.Text * Text6.Text) If Text6.Text = Or Text7.Text = Then MsgBox 請補全信息!, 64, 提示信息 Else If a 0 Then Adodc1.Recordset.MoveFirst Combo1.Clear 在添加數(shù)據(jù)時,首先清空控件中的內(nèi)容 Do While Adodc1.Recordset.EOF = False 將商品銷售信息添加到下拉列表框控件當中 Combo1.AddItem (Adodc1.Recordset.Fields(tb_title) Adodc1.Recordset.MoveNext Loop End IfEnd SubPrivate Sub AddTitle() DataGrid1.Columns.Item(0).Caption = 編號 DataGrid1.Columns.Item(1).Caption = 名稱 DataGrid1.Columns.Item(2).Caption = 銷售數(shù)量 DataGrid1.Columns.Item(3).Caption = 銷售總價 DataGrid1.Columns.Item(4).Caption = 銷售日期End Sub窗體的運行結(jié)果如下: 3.8 修改密碼模塊的設(shè)計與實現(xiàn)3.8.1 窗體界面設(shè)計(1) 添加一個窗體,命名為Frm_Pas,將Caption屬性設(shè)置為“密碼修改”。(2)在窗體上加入一個ADO控件Adodc1。(3)設(shè)計窗體的界面如下圖。 3.8.2 程序代碼實現(xiàn)(1) 載入窗口時連接操作員信息數(shù)據(jù)表Private Sub Form_Load()使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表 Adodc1.ConnectionString = MyStrs Adodc1.RecordSource = select * from 系統(tǒng)用戶的信息 Adodc1.RefreshEnd Sub(2) 當點擊“確定”按鈕時,首先判斷用戶輸入的用戶名和原密碼信息是否正確,如果正確并且兩次輸入的新密碼一致,就將用戶密碼修改為新密碼。Private Sub Command1_Click()Adodc1.RecordSource = select * from 系統(tǒng)用戶的信息 where tb_name = & Text1.Text & Adodc1.Refresh If Text1.Text = Then MsgBox 請輸入用戶名!, 4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年脈沖濾塵器項目可行性研究報告
- 2025年直燃式溴化鋰冷暖水機組項目可行性研究報告
- 2025年帶式壓濾機濾布項目可行性研究報告
- 金融科技領(lǐng)域?qū)蛻舴?wù)的品牌戰(zhàn)略規(guī)劃
- 2025年列車鏈斗卸煤機噴霧壓塵裝置項目可行性研究報告
- 2025年HDPE大口徑中空壁纏繞管項目可行性研究報告
- 2025至2030年陶瓷保護罩項目投資價值分析報告
- 劇場設(shè)計與觀眾體驗-深度研究
- 教育生態(tài)下學生個性化的多元評價體系建設(shè)研究
- 現(xiàn)代家庭教育中的家長角色轉(zhuǎn)變研究
- 國有資產(chǎn)管理法律責任與風險防控
- 未婚生子的分手協(xié)議書
- 變更監(jiān)事章程修正案范例
- 北京小客車指標租賃協(xié)議五篇
- 輸液室運用PDCA降低靜脈輸液患者外滲的發(fā)生率品管圈(QCC)活動成果
- YY/T 0681.2-2010無菌醫(yī)療器械包裝試驗方法第2部分:軟性屏障材料的密封強度
- GB/T 20472-2006硫鋁酸鹽水泥
- 煙氣管道阻力計算
- 城鄉(xiāng)環(huán)衛(wèi)一體化保潔服務(wù)迎接重大節(jié)日、活動的保障措施
- 醫(yī)院-9S管理共88張課件
- 高考作文復習:議論文論證方法課件15張
評論
0/150
提交評論