航空公司管理信息系統(tǒng)_第1頁
航空公司管理信息系統(tǒng)_第2頁
航空公司管理信息系統(tǒng)_第3頁
航空公司管理信息系統(tǒng)_第4頁
航空公司管理信息系統(tǒng)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

航空公司管理信息系統(tǒng)一個正常營運的航空公司需要管理所擁有的飛機、航線的設置、客戶的信息等,更重要的還要提供票務管理。面對各種不同種類的信息,需要合理的數(shù)據(jù)庫結構來保存數(shù)據(jù)信息以及有效的程序結構支持各種數(shù)據(jù)操作的執(zhí)行。本設計講述如何建立一個航空公司管理信息系統(tǒng)。一般而言,航空公司的管理信息系統(tǒng)應該包括人事、工資管理模塊。1系統(tǒng)設計1.1系統(tǒng)功能分析系統(tǒng)開發(fā)的總體任務是實現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務的基礎上完成。本例子中的航空公司管理信息系統(tǒng)需要完成功能主要有:艙位信息的輸入和修改,包括艙位等級編號、艙位等級名稱、提供的各種服務類別,以及備注信息等??蜋C信息的輸入、修改和查詢,包括客機編號、客機型號、購買時間、服役時間、經(jīng)濟艙座位數(shù)量、公務艙座位數(shù)量、頭等艙座位數(shù)量以及備注信息等。航線信息的輸入、修改和查詢,包括航線編號、出發(fā)城市、到達城市、航班日期、出發(fā)時間、到達時間、客機編號、經(jīng)濟艙價格、公務艙價格、頭等艙價格和備注信息等??蛻舻燃壭畔⒌妮斎?、修改,包括客戶等級編號、客戶等級名稱、折扣比例和備注信息等??蛻粜畔⒌妮斎搿⑿薷暮筒樵?,包括客戶編號、客戶姓名、客戶性別、身份證號碼、聯(lián)系電話、客戶類型和備注信息等。訂票信息的輸入、查詢和修改,包括訂票編號、客戶編號、客戶姓名、客戶類型、折扣比例、航線編號、出發(fā)城市、到達城市、出發(fā)時間、艙位類型、票價、結算金額和備注信息等。1.2系統(tǒng)功能模塊設計對上述各項功能進行集中、分塊,按照結構化程序設計的要求,得到如圖9-1所示的系統(tǒng)功能模塊圖。

訂薦息管理..llrT..'...—:'r客戶信思管理航統(tǒng)信息管理J-.lr-7;L訂薦息管理..llrT..'...—:'r客戶信思管理航統(tǒng)信息管理J-.lr-7;L.;._:,.T:客粗信息霸加仔白管J52數(shù)據(jù)庫設計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結構設計的好壞將直接對應用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結構設計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。設計數(shù)據(jù)庫系統(tǒng)時應該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。數(shù)據(jù)庫設計一般包括如下幾個步驟:數(shù)據(jù)庫需要分析。數(shù)據(jù)庫概念結構設計。數(shù)據(jù)庫邏輯結構設計。2.1數(shù)據(jù)庫需求分析用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結構能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結構以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設計打下基礎。

仔細分析調查有關航空公司管理信息需求的基礎上,將得到如圖9-2所示的本系統(tǒng)所處理的數(shù)據(jù)流程。圖9-2航空公司管理信息系統(tǒng)數(shù)據(jù)流程圖針對一般航空公司管理信息系統(tǒng)的需求,通過對航空公司管理工作過程的內容和數(shù)據(jù)流程分析,設計如下面所示的數(shù)據(jù)項和數(shù)據(jù)結構:艙位等級信息,包括的數(shù)據(jù)項有:艙位等級編號、艙位等級名稱、是否有禮品、是否有報紙、是否有飲料、是否有午餐、是否有電影、是否可以改簽、是否可以退票、是否可以打折、備注信息等??蜋C信息,包括的數(shù)據(jù)項有:客機編號、客機型號、購買時間、服役時間、經(jīng)濟艙座位數(shù)量、公務艙座位數(shù)量、頭等艙座位數(shù)量、備注信息等。航線信息,包括的數(shù)據(jù)項有:航線編號、出發(fā)城市、到達城市、航班日期、出發(fā)時間、到達時間、客機編號、經(jīng)濟艙價格、公務艙價格、頭等艙價格、備注信息等。客戶類型信息,包括的數(shù)據(jù)項有:客戶類型編號、客戶類型名稱、折扣比例、備注信息等??蛻粜畔?,包括的數(shù)據(jù)項有:客戶編號、客戶姓名、客戶性別、身份證號碼、聯(lián)系電話、客戶類型、備注信息等。訂票信息,包括的數(shù)據(jù)項有:訂票編號、顧客編號、顧客姓名、顧客類型、折扣比例、航線編號、出發(fā)城市、到達城市、艙位類型、機票價格、結算金額、備注信息有了上面的數(shù)據(jù)結構、數(shù)據(jù)項和數(shù)據(jù)流程,我們就能進行下面的數(shù)據(jù)庫設計。2.2數(shù)據(jù)庫概念結構設計得到上面的數(shù)據(jù)項和數(shù)據(jù)結構以后,就可以設計出能夠滿足用戶需求的各種實體,以及它們之間的關系,為后面的邏輯結構設計打下基礎。這些實體包含各種具體信息,通過相互之間的作用形成數(shù)據(jù)的流動。本實例根據(jù)上面的設計規(guī)劃出的實體有:艙位等級信息實體、客機信息實體、航線信息實體、客戶類型信息實體、客戶信息實體、訂票信息實體。各個實體具體的描述E-R圖如下。艙位等級信息實體E-R圖如圖9-3所示。

圖9-6客戶類型信息實體E-R圖客戶信息實體E-R圖如圖9-7所示。圖9-7客戶信息實體E-R圖訂票信息實體E-R圖如圖9-8所示。

圖9-8訂票信息實體E-R圖實體之間關系的E-R圖如圖9-9所示。圖9-9實體之間關系的E-R圖2.3數(shù)據(jù)庫邏輯結構設計現(xiàn)在需要將上面的數(shù)據(jù)庫概念結構轉化為SQLServer2000數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結構。航空公司管理信息系統(tǒng)數(shù)據(jù)庫中各個表格的設計結果如下面表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表9-1為供應商信息表。

列名數(shù)據(jù)類型可否為空說明serviceNOcharNOTNULL艙位等級編號serviceNamenvarcharNULL艙位等級名稱noPresentcharNULL是否有禮物noNewsPapercharNULL是否有報紙noDrinkcharNULL是否有飲料noFoodcharNULL是否有午餐noMoviecharNULL是否有電影canChangecharNULL是否可以改簽canCancelcharNULL是否可以退票canDiscountcharNULL是否可以打折serviceMemotextNULL備注信息表9-2為顧客信息表格。表9-2planeinfo客機信息表格歹1]名數(shù)據(jù)類型可否為空說明planeNOcharNOTNULL客機編號planeTvpecharNULL客機型號buvDatedatetimeNULL購買日期serveDatedatetimeNULL服役日期isCommonnvarcharNULL經(jīng)濟艙犀位數(shù)量isCommercialnvarcharNULL公務艙座位數(shù)量isFirstnvarcharNULL頭等艙座位數(shù)量planeMemotextNULL備注信息表9-3為航線信息表。表9-3airlineinfo航線信息表列名數(shù)據(jù)類型可否為空說明airlineNOcharNOTNULL航線編號departCitvnvarcharNULL出發(fā)城市arrivalCitvnvarcharNULL到達城市departDatecharNULL航班日期departTimecharNULL出發(fā)時間arrivalTimecharNULL到達時間planeNOcharNULL客機編號commonPricenumericNULL經(jīng)濟艙價格commercialPricenumericNULL公務艙價格firstPricenumericNULL頭等艙價格airlineMemotextNULL備注信息表9-4為客戶類型信息表格。表9-4customerTvpe客戶類型信息表列名數(shù)據(jù)類型可否為空說明ctvpeNOcharNOTNULL客戶類型編號ctvpeNamecharNULL客戶類型名稱discountnumericNULL折扣比例表9-1serviceinfo艙位等級信息表

續(xù)表列名數(shù)據(jù)類型可否為空說明ctypeMemotextNULL備注表9-5為客戶信息表格。表9-5customerInfo客戶信息表列名數(shù)據(jù)類型可否為空說明customerNOcharNOTNULL客戶編號customerNamecharNULL客戶姓名customerSexcharNULL客戶性別customerIDcharNULL身份證號碼customerTelecharNULL客戶聯(lián)系電話customerTypecharNULL客戶類型customerMemotextNULL備注表9-6為訂票信息表格。表9-6ticketInfo訂票信息表列名數(shù)據(jù)類型可否為空說明ticketNOcharNOTNULL訂票編號customerNOcharNULL客戶編號customerNamecharNULL客戶姓名customerTvpecharNULL客戶類型discountnumericNULL折扣比例airlineNOcharNULL航線編號departCitvnvarcharNULL出發(fā)城市arrivalCitvnvarcharNULL到達城市ticketDatedatetimeNULL出發(fā)日期serviceTvpecharNULL艙位類型ticketPricenumericNULL機票價格ticketSumnumericNULL結算金額customerMemotextNULL備注3數(shù)據(jù)庫結構的實現(xiàn)經(jīng)過前面的需求分析和概念結構設計以后,得到數(shù)據(jù)庫的邏輯結構。現(xiàn)在就可以在SQLServer2000數(shù)據(jù)庫系統(tǒng)中實現(xiàn)該邏輯結構。這是利用SQLServer2000數(shù)據(jù)庫系統(tǒng)中的SQL查詢分析器實現(xiàn)的。下面給出創(chuàng)建這些表格的SQL語句。3.1創(chuàng)建系統(tǒng)用戶表CREATETABLE[dbo].[user_Info1]([user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]3.2創(chuàng)建艙位等級信息表CREATETABLE[dbo].[serviceInfo]([serviceNO][char](4)COLLATEChinese_PRC_CI_ASNOTNULL,[serviceName][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,[noPresent][char](2)COLLATEChinese_PRC_CI_ASNULL,[noNewsPaper][char](2)COLLATEChinese_PRC_CI_ASNULL,[noDrink][char](2)COLLATEChinese_PRC_CI_ASNULL,[noFood][char](2)COLLATEChinese_PRC_CI_ASNULL,[noMovie][char](2)COLLATEChinese_PRC_CI_ASNULL,[canChange][char](2)COLLATEChinese_PRC_CI_ASNULL,[canCancel][char](2)COLLATEChinese_PRC_CI_ASNULL,[canDiscount][char](2)COLLATEChinese_PRC_CI_ASNULL,[serviceMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]3.3創(chuàng)建客機信息表CREATETABLE[dbo].[planeInfo]([planeNO][char](18)COLLATEChinese_PRC_CI_ASNOTNULL,[planeType][char](20)COLLATEChinese_PRC_CI_ASNULL,[buyDate][datetime]NULL,[serveDate][datetime]NULL,[isCommon][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,[isCommercial][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,[isFirst][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,[planeMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]3.4創(chuàng)建航線信息表CREATETABLE[dbo].[airlineInfo]([airlineNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,[departCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,[arrivalCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,[departDate][char](10)COLLATEChinese_PRC_CI_ASNULL,[departTime][char](10)COLLATEChinese_PRC_CI_ASNULL,[arrivalTime][char](10)COLLATEChinese_PRC_CI_ASNULL,[planeNO][char](18)COLLATEChinese_PRC_CI_ASNULL,[commonPrice][numeric](18,2)NULL,[commercialPrice][numeric](18,2)NULL,[firstPrice][numeric](18,2)NULL,[airlineMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]3.5創(chuàng)建客戶類型信息表CREATETABLE[dbo].[customerType]([ctypeNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,[ctypeName][char](20)COLLATEChinese_PRC_CI_ASNULL,[discount][numeric](2,0)NULL,[ctypeMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]3.6創(chuàng)建客戶信息表CREATETABLE[dbo].[customerInfo]([customerNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,[customerName][char](50)COLLATEChinese_PRC_CI_ASNULL,[customerSex][char](2)COLLATEChinese_PRC_CI_ASNULL,[customerID][char](18)COLLATEChinese_PRC_CI_ASNULL,[customerTele][char](20)COLLATEChinese_PRC_CI_ASNULL,[customerType][char](14)COLLATEChinese_PRC_CI_ASNULL,[customerMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]3.7創(chuàng)建訂票信息表CREATETABLE[dbo].[ticketInfo]([ticketNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,[customerNO][char](14)COLLATEChinese_PRC_CI_ASNULL,[customerName][char](50)COLLATEChinese_PRC_CI_ASNULL,[customerType][char](14)COLLATEChinese_PRC_CI_ASNULL,[discount][numeric](18,0)NULL,[airlineNO][char](14)COLLATEChinese_PRC_CI_ASNULL,[departCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,[arrivalCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,[ticketDate][datetime]NULL,[serviceType][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,[ticketPrice][numeric](18,2)NULL,[ticketSum][numeric](18,2)NULL,[ticketMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]4航空公司管理信息系統(tǒng)主窗體的創(chuàng)建上面的SQL語句在SQLServer2000中查詢分析器的執(zhí)行,將自動產(chǎn)生需要的所有表格。433/56有關數(shù)據(jù)庫結構的所有后臺工作已經(jīng)完成?,F(xiàn)在將通過航空公司管理信息系統(tǒng)中各個功能模塊的實現(xiàn),講解如何使用VisualBasic來編寫數(shù)據(jù)庫系統(tǒng)的客戶端程序。4.1創(chuàng)建工程項目——MIS_Ticket啟動VisualBasic后,單擊Project菜單,在工程模板中選擇StandardEXE,VisualBasic將自動產(chǎn)生一個Form窗體,屬性都是缺省設置。這里我們刪除這個窗體,單擊Project菜單,將這個工程項目命名為MIS_Ticket。4.2創(chuàng)建航空公司管理信息系統(tǒng)的主窗體這個項目我們使用多文檔界面,單擊工具欄中的ADDMDIForm按鈕,產(chǎn)生一個窗體。在這個窗體上添加所需的控件,窗體和控件的屬性設置見表9-7。創(chuàng)建好的窗體如圖9-10所示。表9-7主窗體及其控件屬性設置控件屬性屬性取值frmMain(Form)NameFrmMainCaption大唐航空公司信息管理系統(tǒng)StartUpPositonCenterScreenWindowStateMaximizedSbStatusBar(StatusBar)NameSbStatusBarPanels(1)StyleSbrTextPanels(2)StyleSbrDatePanels(3)yStyleSbrTime圖9-10航空公司管理信息系統(tǒng)主窗體在主窗體中加入狀態(tài)欄控件,可以實時反映系統(tǒng)中的各個狀態(tài)的變化。狀態(tài)欄控件需要在通常的屬性窗口中設置一般屬性,還需要在其特有的彈出式菜單中進行設置。選中狀態(tài)欄控件,單擊鼠標右鍵,選中Property菜單,然后設置屬性。面板1用來顯示各種文本信息,面板2用來顯示當前日期,面板3用來顯示當前時間。4.3創(chuàng)建主窗體的菜單在如圖9-10所示的主窗體中,單擊鼠標右鍵,選擇彈出式菜單中的MenuEditor,創(chuàng)建如圖9-11所示的菜單結構:圖9-11主窗體中的菜單結構4.4創(chuàng)建公用模塊在VisualBasic中可以用公用模塊來存放整個工程項目公用的函數(shù)、過程和全局變量等。這樣可以極大地提高代碼的效率。在項目資源管理器中為項目添加一個Module,保存為Module1.bas。下面就可以開始添加需要的代碼了。由于系統(tǒng)中各個功能模塊都將頻繁使用數(shù)據(jù)庫中的各種數(shù)據(jù),因此需要一個公共的數(shù)據(jù)操作函數(shù),用以執(zhí)行各種SQL語句。添加函數(shù)ExecuteSQL,代碼如下:PublicFunctionExecuteSQL(ByValSQL_AsString,MsgStringAsString)_AsADODB.Recordset'執(zhí)行SQL語句,并返回記錄集對象‘聲明一個連接DimcnnAsADODB.Connection‘聲明一個數(shù)據(jù)集對象DimrstAsADODB.RecordsetDimsTokens()AsString'異常處理OnErrorGoToExecuteSQL_Error'用Split函數(shù)產(chǎn)生一個包含各個子串的數(shù)組sTokens=Split(SQL)‘創(chuàng)建一個連接Setcnn=NewADODB.Connection'打開連接cnn.OpenConnectStringIfInStr("INSERT,DELETE,UPDATE”,_UCase$(sTokens(0)))Then‘執(zhí)行查詢語句cnn.ExecuteSQLMsgString=sTokens(0)&_"querysuccessful"ElseSetrst=NewADODB.Recordsetrst.OpenTrim$(SQL),cnn,_adOpenKeyset,_adLockOptimistic'rst.MoveLast'getRecordCount'返回記錄集對象SetExecuteSQL=rstMsgString="查詢到"&rst.RecordCount&_”條記錄”EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:MsgString=”查詢錯誤:"&_Err.DescriptionResumeExecuteSQL_ExitEndFunction在ExecuteSQL函數(shù)中使用了ConnectString函數(shù),這個函數(shù)用來連接數(shù)據(jù)庫,代碼如下:PublicFunctionConnectString()_AsString'返回一個數(shù)據(jù)庫連接ConnectString="ticket.dsn;UID=sa;PWD="EndFunction在錄入有關信息時,需要回車來進入下一個文本框,這樣對軟件使用者非常方便。在所有的功能模塊都需要這個函數(shù),所以將它放在公用模塊中,代碼如下:PublicSubEnterToTab(KeyascAsInteger)'判斷是否為回車鍵IfKeyasc=13Then'轉換成Tab鍵SendKeys”{TAB}"EndIfEndSubKeyasc用來保存當前按鍵,SendKeys函數(shù)用來指定的按鍵。一旦按下回車鍵,將返回Tab鍵,下一個控件自動獲得輸入焦點。添加全局變量,用來記錄各個功能模塊的讀寫狀態(tài),代碼如下:PublicgintSmodeAsInteger'記載艙位等級功能模塊的讀寫狀態(tài)PublicgintPmodeAsInteger'記載客機信息模塊的讀寫狀態(tài)PublicgintAmodeAsInteger'記載航線信息模塊的讀寫狀態(tài)PublicgintTmodeAsInteger'記載客戶類型模塊的讀寫狀態(tài)PublicgintCmodeAsInteger'記載客戶信息模塊的讀寫狀態(tài)PublicgintKmodeAsInteger'記載訂票信息模塊的讀寫狀態(tài)這些全局變量用來記錄是添加狀態(tài)還是修改狀態(tài),賦值1為添加,賦值2為修改。由于航空公司管理信息管理系統(tǒng)啟動后,需要對用戶進行判斷。如果登錄者是授權用戶,將進入系統(tǒng),否則將停止程序的執(zhí)行。這個判斷需要在系統(tǒng)運行的最初進行,因此將代碼放在公用模塊中。5系統(tǒng)用戶管理模塊的創(chuàng)建用戶管理模塊主要實現(xiàn):用戶登錄。添加用戶。修改用戶密碼。6艙位信息管理模塊的創(chuàng)建艙位信息管理模塊主要實現(xiàn)如下功能:添加艙位信息。修改艙位信息。刪除艙位信息。6.1顯示艙位信息窗體的創(chuàng)建選擇“航線信息管理|艙位信息”菜單,將出現(xiàn)如圖9-12所示的窗體。圖9-12艙位等級信息窗體這個窗體用來顯示艙位等級信息,并且可以對各條記錄進行操作。在載入窗體時,程序將自動載入所有記錄,代碼如下:PrivateSubmenuCarbin_Click()frmService.txtSQL="select*fromserviceInfo"frmService.Show0EndSub窗體的Show方法后面加上0或者1,可以得到不同的窗體顯示方式。參數(shù)為0時,顯示的窗體為無模式形式,窗體切換時不需要進行其他操作;參數(shù)為1時,顯示的窗體為有模式形式,窗體切換時必須進行相關操作。載入窗體時將自動顯示各條記錄,代碼如下:PrivateSubForm_Load()ShowTitleShowDataEndSub函數(shù)ShowTitle用來顯示表頭,代碼如下:PrivateSubShowTitle()DimiAsIntegerWithmsgList,Cols=12.TextMatrix(0,1)="等級編號”,TextMatrix(0,2)="機艙等級”,TextMatrix(0,3)=”是否有禮品”,TextMatrix(0,4)=”是否有報紙”.TextMatrix(0,5)=”是否有飲料”.TextMatrix(0,6)=”是否有午餐”.TextMatrix(0,7)="是否提供電影”.TextMatrix(0,8)=”是否可以改簽”.TextMatrix(0,9)=”是否可以退票”.TextMatrix(0,10)=”是否可以打折”.TextMatrix(0,11)="備注信息”'固定表頭.FixedRows=1'設置各列的對齊方式Fori=0To11.ColAlignment(i)=0Nexti'表頭項居中.FillStyle=flexFillRepeat.Col=0.Row=0.RowSel=1.ColSel=.Cols-1.CellAlignment=4'設置單元大小.ColWidth(0)=1000.ColWidth(1)=1000.ColWidth(2)=2000.ColWidth(3)=1000.ColWidth(4)=1000.ColWidth(5)=1000.ColWidth(6)=1000.ColWidth(7)=1000.ColWidth(8)=1000.ColWidth(9)=1000.ColWidth(10)=1000.ColWidth(11)=1000.Row=1EndWithEndSub函數(shù)ShowData把各條記錄加到表格中,并顯示出來,代碼如下:PrivateSubShowData()DimjAsIntegerDimiAsIntegerDimMsgTextAsString‘獲得數(shù)據(jù)集Setmrc=ExecuteSQL(txtSQL,MsgText)WithmsgList.Rows=1‘判斷是否為空DoWhileNotmrc.EOF‘移動到下一行.Rows=.Rows+1‘循環(huán)Fori=1Tomrc.Fields.Count‘判斷是否為空IfNotIsNull(Trim(mrc.Fields(i-1)))Then‘根據(jù)數(shù)據(jù)類型顯示SelectCasemrc.Fields(i-1).TypeCaseadDBDate.TextMatrix(.Rows-1,i)=Format(mrc.Fields(i-1)&"","yyyy-mm-dd")CaseElse.TextMatrix(.Rows-1,i)=mrc.Fields(i-1)&""EndSelectEndIfNextI‘移動到下一條記錄mrc.MoveNextLoopEndWith‘關閉數(shù)據(jù)集對象mrc.CloseEndSub在窗體顯示時,可以控制窗體中各個控件按照要求的位置顯示。可以在窗體的Resize事件中加入代碼,代碼如下:PrivateSubForm_Resize()‘判斷當前窗體所處的狀態(tài),當前窗體不處于最小化狀態(tài)并且主窗體不處于最小化狀態(tài)時進行后面的操作IfMe.WindowState<>vbMinimizedAndfMainForm.WindowState<>vbMinimizedThen'邊界處理IfMe.ScaleHeight<10*lblTitle.HeightThenExitSubEndIfIfMe.ScaleWidth<IblTitle.Width+IblTitle.Width/2ThenExitSubEndIf'控制控件的位置lblTitle.Top=lblTitle.HeightlblTitle.Left=(Me.Width-lblTitle.Width)/2‘控制表格控件的位置msgList.Top=lblTitle.Top+lblTitle.Height+lblTitle.Height/2msgList.Width=Me.ScaleWidth-200msgList.Left=Me.ScaleLeft+100msgList.Height=Me.ScaleHeight-msgList.Top-1500‘控制按鈕位置Frame2.Top=msgList.Top+msgList.Height+50Frame2.Left=Me.ScaleWidth/2-3000EndIfEndSub6.2添加艙位信息窗體的創(chuàng)建在艙位信息顯示窗體中單擊“添加”按鈕,將出現(xiàn)如圖9-13所示的窗體。圖9-13添加艙位等級信息窗體載入窗體時,首先根據(jù)標志變量判斷狀態(tài),然后決定是添加還是修改,代碼如下:PrivateSubForm_Load()DimintCountAsIntegerDimMsgTextAsStringDimiAsInteger‘判斷是否為添加IfgintSmode=1ThenMe.Caption=Me.Caption&”添加Fori=0To7Combo1(i).AddItem”否”Combo1(i).AddItem”是”Combo1(i).ListIndex=0NextI‘載入當前選擇記錄內容ElseIfgintSmode=2ThenSetmrc=ExecuteSQL(txtSQL,MsgText)‘判斷記錄是否為空Ifmrc.EOF=FalseThenWithmrcForintCount=0To1txtItem(intCount)=.Fields(intCount)NextintCounttxtItem(2)=.Fields(10)Fori=0To7Combo1(i).AddItem”否”Combo1(i).AddItem”是”Combo1(i).ListIndex=0NextiEndWithtxtItem(0).Enabled=FalseEndIfMe.Caption=Me.Caption&"修改”EndIfmblChange=FalseEndSub輸入內容完畢,單擊“保存”按鈕,將首先判斷輸入內容是否滿足要求,然后添加到數(shù)據(jù)庫中。代碼如下:PrivateSubcmdSave_Click()DimintCountAsIntegerDimsMegAsStringDimMsgTextAsString‘判斷輸入內容是否為空ForintCount=0To1IfTrim(txtItem(intCount)&"")=""ThenSelectCaseintCountCase0sMeg="機艙等級編號”Case1sMeg="機艙等級名稱"EndSelectsMeg=sMeg&”不能為空!”MsgBoxsMeg,vbOKOnly+vbExclamation,”警告”txtItem(intCount).SetFocusExitSubEndIfNextintCount判斷輸入內容是否為數(shù)字IfNotIsNumeric(Trim(txtItem(0)))ThensMeg="機艙等級編號”sMeg=sMeg&”請輸入數(shù)字!”MsgBoxsMeg,vbOKOnly+vbExclamation,”警告”txtItem(0).SetFocusEndIf'添加判斷是否有相同的ID記錄IfgintSmode=1ThentxtSQL="select*fromserviceInfowhereserviceNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox”巳經(jīng)存在此編號的記錄!”,vbOKOnly+vbExclamation,”警告”txtItem(0).SetFocusExitSubEndIfmrc.CloseEndIf'判斷是否有相同內容的記錄txtSQL="select*fromserviceInfowhereserviceNO<>'"&Trim(txtItem(0))&"'andserviceName='&Trim(txtItem(1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox”巳經(jīng)存在相同機艙等級的記錄!”,vbOKOnly+vbExclamation,”警告”txtItem(1).SetFocusExitSubEndIf'先刪除巳有記錄txtSQL="deletefromserviceInfowhereserviceNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)'再加入新記錄txtSQL="select*fromserviceinfo"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.AddNewForintCount=0To1mrc.Fields(intCount)=Trim(txtitem(intCount))NextintCountForintCount=0To7mrc.Fields(intCount+2)=Trim(Combo1(intCount))NextintCountmrc.Fields(10)=Trim(txtitem(2))‘更新數(shù)據(jù)集內容mrc.Update‘關閉數(shù)據(jù)集內容mrc.CloseifgintSmode=1ThenMsgBox”添加記錄成功!”,vbOKOnly+vbExclamation,"添加記錄”ForintCount=0To1txtitem(intCount)=""NextintCountForintCount=0To3Combo1(intCount).Listindex=0NextintCounttxtitem(2)=""mblChange=FalseUnloadfrmServicefrmService.txtSQL="select*fromserviceinfo"frmService.ShowElseifgintSmode=2ThenUnloadMeUnloadfrmServicefrmService.txtSQL="select*fromserviceinfo"frmService.ShowEndifEndSub6.3修改艙位等級信息在艙位等級信息列表中選擇需要修改的記錄,然后單擊“修改”按鈕,將出現(xiàn)如圖9-13所示的窗體。選擇記錄的內容將顯示在窗體中,可以進行修改,最后保存修改后的記錄。代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger判斷列表中是否有記錄IffrmService.msgList.Rows>1Then‘改變狀態(tài)變量gintSmode=2‘記錄選擇記錄位置intCount=msgList.RowIfintCount>0ThenfrmServicel.txtSQL="select*fromserviceinfowhereserviceNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"frmService1.Show1ElseMsgBox”警告”,vbOKOnly+vbExclamation,”請首先選擇需要修改的記錄!”EndIfEndIfEndSub6.4刪除艙位等級信息在艙位等級信息列表中選擇需要刪除的記錄,然后單擊“刪除”按鈕,將刪除當前記錄,代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷信息列表中內容是否為空IfmsgList.Rows>1Then‘提示信息IfMsgBox("真的要刪除機艙等級為"&Trim(msgList.TextMatrix(msgList.Row,2))&"的記錄嗎?",vbOKCancel+vbExclamation,"警告”)=vbOKThen‘記錄選擇記錄位置intCount=msgList.Row‘刪除重復記錄txtSQL="deletefromserviceInfowhereserviceNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)‘卸載窗體UnloadfrmService‘重新載入記錄并顯示frmService.txtSQL="select*fromserviceinfo"frmService.ShowEndIfEndIfEndSub7客機信息管理模塊的創(chuàng)建客機信息管理模塊主要實現(xiàn)如下功能:添加客機信息。修改客機信息。刪除客機信息。查詢客機信息。7.1顯示客機信息窗體的創(chuàng)建選擇“航線信息管理I客機信息”菜單,將出現(xiàn)如圖9-14所示的窗體。所有客機信息都將顯示出來。窗體的Load事件調用ShowTitle、ShowData函數(shù),將所有記錄顯示出來。圖9-14顯示客機信息列表窗體7.2添加客機信息窗體的創(chuàng)建單擊客機信息列表中的“添加,,按鈕,將出現(xiàn)如圖9-15所示的窗體。圖9-15添加客機信息列表輸入內容完畢,單擊“保存”按鈕,將首先判斷輸入內容是否滿足要求,然后將記錄添加到數(shù)據(jù)庫中,代碼如下:PrivateSubcmdSave_Click()DimintCountAsIntegerDimsMegAsStringDimMsgTextAsString判斷輸入內容是否為空ForintCount=0To6IfTrim(txtItem(intCount)&"")=""ThenSelectCaseintCountCase0sMeg="客機編號”Case1sMeg="客機型號”Case2sMeg="購買時間”Case3sMeg="服役時間”Case4sMeg=”經(jīng)濟艙座位數(shù)量”Case5sMeg="公務艙座位數(shù)量”Case6sMeg="頭等艙座位數(shù)量”EndSelectsMeg=sMeg&”不能為空!”MsgBoxsMeg,vbOKOnly+vbExclamation,”警告”txtItem(intCount).SetFocusExitSubEndIfNextintCount‘判斷輸入內容為數(shù)字ForintCount=4To6IfNotIsNumeric(Trim(txtItem(intCount)))ThensMeg="座位數(shù)量”sMeg=sMeg&”請輸入數(shù)字!”MsgBoxsMeg,vbOKOnly+vbExclamation,”警告”txtItem(intCount).SetFocusEndIfNextintCount‘判斷輸入內容是否為日期ForintCount=2To3IfIsDate(txtItem(intCount))ThentxtItem(intCount)=Format(txtItem(intCount),"yyyy-mm-dd")ElseMsgBox”時間應輸入日期(yyyy-mm-dd)!",vbOKOnly+vbExclamation,”警告txtItem(intCount).SetFocusExitSubEndIfNextintCount'添加判斷是否有相同的ID記錄IfgintPmode=1ThentxtSQL="select*fromplaneInfowhereplaneNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox”巳經(jīng)存在此編號的記錄!”,vbOKOnly+vbExclamation,”警告”txtItem(0).SetFocusExitSubEndIfmrc.CloseEndIf'先刪除巳有記錄txtSQL="deletefromplaneInfowhereplaneNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)'再加入新記錄txtSQL="select*fromplaneInfo"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.AddNewForintCount=0To7mrc.Fields(intCount)=Trim(txtItem(intCount))NextintCount‘更新數(shù)據(jù)集mrc.Update‘關閉數(shù)據(jù)集對象mrc.CloseIfgintPmode=1ThenMsgBox”添加記錄成功!”,vbOKOnly+vbExclamation,"添加記錄”ForintCount=0To7txtItem(intCount)=""NextintCountmblChange=FalseUnloadfrmPlanefrmPlane.txtSQL="select*fromplaneInfo"frmPlane.ShowElseIfgintPmode=2ThenUnloadMeUnloadfrmPlanefrmPlane.txtSQL="select*fromplaneInfo"frmPlane.ShowEndIfEndSub7.3修改客機信息在客機信息列表中選擇記錄,然后單擊“修改”按鈕。當前記錄將顯示在如圖)-15所示的窗體中,可以進行修改。代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger‘判斷列表內容是否為空IffrmPlane.msgList.Rows>1ThengintPmode=2‘記載選擇記錄的位置intCount=msgList.RowIfintCount>0ThenfrmPlanel.txtSQL="select*fromplaneInfowhereplaneNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"frmPlane1.Show1ElseMsgBox”警告”,vbOKOnly+vbExclamation,”請首先選擇需要修改的記錄!”EndIfEndIfEndSub7.4刪除客機信息在客機信息列表中選擇記錄,然后單擊“刪除”按鈕,當前記錄將被刪除。代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷列表內容是否為空IfmsgList.Rows>1ThenIfMsgBox("真的要刪除客機編號為"&Trim(msgList.TextMatrix(msgList.Row,1))&”的型號為"&Trim(msgList.TextMatrix(msgList.Row,2))&”的客機記錄嗎?”,vbOKCancel+vbExclamation,"警告”)=vbOKThen‘記載選擇記錄的位置intCount=msgList.RowtxtSQL="deletefromplaneInfowhereplaneNO='"&Trim(msgList.TextMatrix(intCount,1))&”'”Setmrc=ExecuteSQL(txtSQL,MsgText)UnloadfrmPlane‘重新載入所有記錄,并顯示出來frmPlane.txtSQL="select*fromplaneInfo"frmPlane.ShowEndIfEndIfEndSub7.5查詢客機信息在客機信息列表中單擊“查詢”按鈕,將出現(xiàn)如圖9-16所示的窗體。圖9-16查詢客機信息的窗體載入窗體時,將自動加入所有客機編號和客機型號的信息,代碼如下:PrivateSubForm_Load()DimiAsIntegerDimsSqlAsStringDimtxtSQLAsStringDimMsgTextAsStringDimmrcAsADODB.Recordset‘清楚各個列表框中的內容Fori=0To1Combo1(i).ClearNexti‘選擇數(shù)據(jù)庫中所有客機編號的內容txtSQL="selectDISTINCTplaneNOfromplaneInfo"Setmrc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)庫是否為空IfNotmrc.EOFThenDoWhileNotmrc.EOFCombo1(0).AddItemTrim(mrc.Fields(0))mrc.MoveNextLoopElseMsgBox”請先進行客機信息設置!”,vbOKOnly+vbExclamation,”警告”ExitSubEndIfmrc.Close‘選擇所有數(shù)據(jù)庫中有關飛機型號的內容txtSQL="selectDISTINCTplaneTypefromplaneInfo"Setmrc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集對象是否為空IfNotmrc.EOFThenDoWhileNotmrc.EOFCombo1(1).AddItemTrim(mrc.Fields(0))mrc.MoveNextLoopElseMsgBox"請先進行客機信息設置!",vbOKOnly+vbExclamation,"警告"ExitSubEndIf‘關閉數(shù)據(jù)集對象mrc.CloseEndSub設置完查詢內容和方式后,單擊cmdOK按鈕將進行查詢。所有滿足條件的記錄將顯示在如圖9-14所示的窗體中,代碼如下:PrivateSubcmdOK_Click()DimsQSqlAsString‘判斷是否按照客機編號查詢IfchkItem(0).Value=vbCheckedThensQSql="planeNO='"&Trim(Combo1(0)&"")&"'”EndIf‘判斷是否按照客機型號查詢IfchkItem(1).Value=vbCheckedThenIfTrim(sQSql&"")=""ThensQSql="planeType='"&Trim(Combo1(1)&"")&"'”ElsesQSql=sQSql&"andplaneType='"&Trim(Combo1(1)&"")&"'”EndIfEndIf‘判斷查詢內容是否為空IfTrim(sQSql)=""ThenMsgBox”請設置查詢條件!”,vbOKOnly+vbExclamation,”警告”Me.HideExitSubElse‘顯示所有滿足查詢條件的內容frmPlane.txtSQL="select*fromplaneInfowhere"&sQSqlMe.HideUnloadfrmPlanefrmPlane.ShowEndIfEndSub8航線信息管理模塊的創(chuàng)建航線信息管理模塊主要實現(xiàn)如下功能:添加航線信息。修改航線信息。刪除航線信息。查詢航線信息。8.1顯示航線信息窗體的創(chuàng)建選擇“航線信息管理I航線信息”菜單,將出現(xiàn)如圖9-17所示的窗體。所有航線信息都將顯示出來。窗體的Load事件調用ShowTitle、ShowData函數(shù),將所有記錄顯示出來。

圖9-17顯示客機信息窗體8.2添加航線信息窗體的創(chuàng)建選擇“航線信息管理I航線信息”菜單,將出現(xiàn)如圖9-18所示的窗體,用來添加航線信息。圖9-18添加航線窗體輸入完航線信息后,單擊“保存”按鈕:程序首先檢查輸入內容是否符合要求,然后檢查是否有重復記錄,最后添加到數(shù)據(jù)庫中。8.3修改航線信息在航線信息列表中選擇記錄,然后單擊“修改”按鈕。當前記錄將顯示在如圖)-18所示的窗體中,可以進行修改。代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger‘判斷列表內容是否為空IffrmAirline.msgList.Rows>1ThengintAmode=2‘記載選擇記錄的位置intCount=msgList.RowIfintCount>0ThenfrmAirlinel.txtSQL="select*fromairlineinfowhereairlineNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"frmAirline1.Show1ElseMsgBox”警告”,vbOKOnly+vbExclamation,”請首先選擇需要修改的記錄!”EndIfEndIfEndSub8.4刪除航線信息在航線信息列表中選擇記錄,然后單擊“刪除”按鈕,當前記錄將被刪除。代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷列表內容是否為空IfmsgList.Rows>1ThenIfMsgBox("真的要刪除"&Trim(msgList.TextMatrix(msgList.Row,4))&"從"&Trim(msgList.TextMatrix(msgList.Row,2))&"出發(fā)到"&Trim(msgList.TextMatrix(msgList.Row,3))&"的航線記錄嗎?",vbOKCancel+vbExclamation,"警告”)=vbOKThen‘記載選擇記錄位置intCount=msgList.RowtxtSQL="deletefromairlineInfowhereairlineNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)‘重新載入記錄并顯示UnloadfrmAirlinefrmAirline.txtSQL="select*fromairlineInfo"frmAirline.ShowEndIfEndIfEndSub8.5查詢航線信息在航線信息列表中單擊“查詢”按鈕,將出現(xiàn)如圖9-19所示的窗體。圖9-19航線信息查詢窗體載入窗體時自動加入出發(fā)城市和到達城市的內容,代碼如下:PrivateSubForm_Load()DimiAsIntegerDimsSqlAsStringDimtxtSQLAsStringDimMsgTextAsStringDimmrcAsADODB.Recordset‘清除列表框中的內容Fori=0To1Combo1(i).ClearNexti‘選擇數(shù)據(jù)庫中與出發(fā)城市有關的內容txtSQL="selectDISTINCTdepartCityfromairlineInfo"Setmrc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集是否為空IfNotmrc.EOFThenDoWhileNotmrc.EOFCombo1(0).AddItemTrim(mrc.Fields(0))mrc.MoveNextLoopElseMsgBox”請先進行航線信息設置!”,vbOKOnly+vbExclamation,”警告”ExitSubEndIfmrc.ClosetxtSQL="selectDISTINCTarrivalCityfromairlineInfo"Setmrc=ExecuteSQL(txtSQL,MsgText)IfNotmrc.EOFThenDoWhileNotmrc.EOFCombo1(1).AddItemTrim(mrc.Fields(0))mrc.MoveNextLoopElseMsgBox”請先進行航線信息設置!”,vbOKOnly+vbExclamation,”警告”ExitSubEndIfmrc.CloseEndSub設置查詢內容后,單擊“確定”按鈕,所有滿足查詢條件的內容顯示在航線信息列表中。9客戶類型信息管理模塊的創(chuàng)建客戶類型信息管理模塊主要實現(xiàn)如下功能:添加客戶類型信息。修改客戶類型信息。刪除客戶類型信息。9.1顯示客戶類型信息窗體的創(chuàng)建選擇“客戶信息管理I客戶類型”菜單,將出現(xiàn)如圖9-20所示的窗體。所有客戶類型信息都將顯示出來。窗體的Load事件調用ShowTitle、ShowData函數(shù),將所有記錄顯示出來。圖9-20顯示客戶類型信息窗體9.2添加客戶類型信息窗體的創(chuàng)建在客戶類型信息列表中單擊“添加,,按鈕,將出現(xiàn)如圖9-21所示的窗體,用來添加客戶類型信息。X|?舂尸夷型培思圖9-21添加客戶類型信息窗體X|?舂尸夷型培思輸入內容完畢,單擊“保存”按鈕,程序將首先檢查內容是否符合要求,然后檢查是否有重復記錄,最后添加到數(shù)據(jù)庫中。9.3修改客戶類型信息在客戶類型信息列表中選擇需要修改的記錄,然后單擊“修改”按鈕,當前記錄將出現(xiàn)在如圖9-14所示的窗體中。修改完畢,單擊“保存”按鈕,修改后的記錄保存到數(shù)據(jù)庫中。代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger‘判斷列表內容是否為空IffrmcType.msgList.Rows>1ThengintTmode=2‘記載選擇記錄的位置intCount=msgList.Row‘判斷是否選擇記錄IfintCount>0Then‘顯示需要修改的記錄frmcTypel.txtSQL="select*fromcustomerTypewherectypeNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"frmcTypel.Show1ElseMsgBox”警告”,vbOKOnly+vbExclamation,”請首先選擇需要修改的記錄!”EndIfEndIfEndSub9.4刪除客戶類型信息選擇客戶類型信息列表中需要刪除的記錄,然后單擊“刪除”按鈕,可以刪除所選記錄。代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷列表內容是否為空IfmsgList.Rows>1Then‘提示信息IfMsgBox("真的要刪除客戶種類為"&Trim(msgList.TextMatrix(msgList.Row,2))&"的記錄嗎?”,vbOKCancel+vbExclamation,"警告”)=vbOKThen‘記載選擇記錄的位置intCount=msgList.Row‘刪除記錄txtSQL="deletefromcustomerTypewherectypeNO='"&Trim(msgList.TextMatrix(intCount,1))&”'”Setmrc=ExecuteSQL(txtSQL,MsgText)‘卸載窗體UnloadfrmcType‘選擇所有記錄frmcType.txtSQL="select*fromcustomerType"‘顯示窗體frmcType.ShowEndIfEndIfEndSub10客戶信息管理模塊的創(chuàng)建客戶信息管理模塊主要實現(xiàn)如下功能:添加客戶信息。修改客戶信息。刪除客戶信息。查詢客戶信息。10.1顯示客戶信息窗體的創(chuàng)建選擇“客戶信息管理I客戶信息”菜單,將首先出現(xiàn)如圖9-22所示的窗體。所有客戶類型信息都將顯示出來。窗體的Load事件調用ShowTitle、ShowData函數(shù),將所有記錄顯示出來。

圖9-22顯示客戶信息窗體10.2添加客戶信息窗體的創(chuàng)建在客戶信息列表中單擊“添加”按鈕,將出現(xiàn)如圖9-23所示的窗體,用來添加客戶信息。圖9-23添加客戶信息窗體輸入內容完畢,單擊“保存”按鈕,程序將首先檢查內容是否符合要求,然后檢查是否有重復記錄,最后添加到數(shù)據(jù)庫中。10.3修改客戶信息在客戶信息列表中選擇需要修改的記錄,然后單擊“修改”按鈕,當前記錄將出現(xiàn)在如圖9-23所示的窗體中。修改完畢,單擊“保存”按鈕,修改后的記錄保存到數(shù)據(jù)庫中。代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger‘判斷列表內容是否為空IffrmCustomer.msgList.Rows>1ThengintCmode=2‘記載選擇記錄的位置intCount=msgList.Row‘判斷是否選擇記錄IfintCount>0Then‘選擇點擊記錄frmCustomerl.txtSQL="select*fromcustomerinfowherecustomerNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"‘顯示frmCustomer1.Show1Else‘提示信息MsgBox”警告”,vbOKOnly+vbExclamation,”請首先選擇需要修改的記錄!”EndIfEndIfEndSub10.4刪除客戶信息選擇客戶信息列表中需要刪除的記錄,然后單擊“刪除”按鈕,可以刪除所選記錄。代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷列表內容是否為空IfmsgList.Rows>1ThenIfMsgBox("真的要刪除客戶姓名為"&Trim(msgList.TextMatrix(msgList.Row,2))&"的客戶記錄嗎?",vbOKCancel+vbExclamation,"警告”)=vbOKThen‘記載選擇記錄的位置intCount=msgList.Row‘刪除當前記錄txtSQL="deletefromcustomerInfowherecustomerNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"‘執(zhí)行查詢語句Setmrc=ExecuteSQL(txtSQL,MsgText)‘卸載客戶信息列表UnloadfrmCustomer‘選擇所有記錄frmCustomer.txtSQL="select*fromcustomerInfo"‘顯示frmCustomer.ShowEndIfEndIfEndSub10.5查詢客戶信息在如圖9-22所示的客戶信息列表中,單擊“查詢”按鈕,出現(xiàn)如圖9-24所示的對話框。圖9-24圖9-24客戶信息查詢窗體客戶信息查詢窗體在載入時所有客戶信息自動加入到查詢內容中。選擇合適的查詢方式,滿足查詢條件的記錄顯示在如圖9-22所示的客戶信息列表中。11訂票信息管理模塊的創(chuàng)建訂票信息管理模塊主要實現(xiàn)如下功能:?????

?修改訂票信息。刪除訂票信息。查詢剩余機票信息。11.1顯示訂票信息窗體的創(chuàng)建選擇“票務信息管理|訂票信息”菜單,將首先出現(xiàn)如圖9-25所示的窗體。所有訂票類型信息都將顯示出來。窗體的Load事件調用ShowTitle、ShowData函數(shù),將所有記錄顯示出來。

圖9-25顯示機票信息的窗體11.2添加訂票信息窗體的創(chuàng)建在機票信息列表中單擊“添加”按鈕,將出現(xiàn)如圖9-26所示的窗體,用來添加訂票信息。圖9-26添加訂票信息的窗體機票信息包括兩部分:航線信息和客戶信息。選擇出發(fā)城市和到達城市,將得到相應的航線信息;選擇客戶姓名得到相應的客戶信息。窗體載入時要求在列表框中加入所有有關航線和客戶的信息,代碼如下:PrivateSubForm_Load()DimMsgTextAsStringDimiAsIntegerDimmrccAsADODB.Recordset‘判斷所處狀態(tài),添加或者修改IfgintKmode=1ThenMe.Caption=Me.Caption&"添加”‘產(chǎn)生隨機的訂票編號txtticket=GetRkno()ElseIfgintKmode=2ThenSetmrc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集對象是否為空Ifmrc.EOF=FalseThenWithmrctxtticket=.Fields(0)txtItem(0)=.Fields(7)txtItem(1)=.Fields(12)EndWithEndIfMe.Caption=Me.Caption&"修改”EndIf‘清楚列表框中內容Fori=0To6Combo1(i).ClearNexti‘選擇數(shù)據(jù)庫中所有與出發(fā)城市有關的信息txtSQL="selectdistinctdepartCityfromairlineInfoSetmrcc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集對象是否為空IfNotmrcc.EOFThenDoWhileNotmrcc.EOFCombo1(0).AddItemmrcc.Fields(0)mrcc.MoveNextLoopEndIf‘關閉數(shù)據(jù)集對象mrcc.Close‘選擇數(shù)據(jù)庫中所有與到達城市有關的信息txtSQL="selectdistinctarrivalCityfromairlineInfoSetmrcc=ExecuteSQL(txtSQL,MsgText)463/56‘判斷數(shù)據(jù)集對象是否為空IfNotmrcc.EOFThenDoWhileNotmrcc.EOFCombo1(1).AddItemmrcc.Fields(0)mrcc.MoveNextLoopEndIf‘關閉數(shù)據(jù)集對象mrcc.Close‘選擇數(shù)據(jù)庫中所有與艙位等級有關的信息txtSQL="selectdistinctserviceNamefromserviceInfo"Setmrcc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集對象是否為空IfNotmrcc.EOFThenDoWhileNotmrcc.EOFCombo1(2).AddItemmrcc.Fields(0)mrcc.MoveNextLoopEndIf‘關閉數(shù)據(jù)集對象mrcc.Close‘選擇數(shù)據(jù)庫中所有與客戶姓名有關的信息txtSQL="selectdistinctcustomerNamefromcustomerInfo"Setmrcc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集對象是否為空IfNotmrcc.EOFThenDoWhileNotmrcc.EOFCombo1(4).AddItemmrcc.Fields(0)mrcc.MoveNextLoopEndIf‘關閉數(shù)據(jù)集對象mrcc.ClosemblChange=FalseEndSub選擇出發(fā)城市和到達城市,然后選擇艙位類型,將自動顯示票價,并用不可見文本框(txtairline、txtairline等)記載航線編號、客戶編號等信息。實現(xiàn)代碼加在列表框的Click事件中,如下:DimmrccAsADODB.RecordsetDimmrcdAsADODB.RecordsetDimMsgTextAsString‘判斷列表框編號IfIndex=2Then‘判斷出發(fā)城市和到達城市是否選擇IfNot(Trim(Combo1(0))=""OrTrim(Combo1(1))="")ThentxtSQL="select*fromairlineInfowheredepartCity='"&Trim(Combo1(0))&"'andarrivalCity='"&Trim(Combo1(1))&"'"Setmrcc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集對象是否為空IfNotmrcc.EOFThentxtairline=mrcc.Fields(0)ticketCsum=mrcc!planeNOIfTrim(Combo1(2))="經(jīng)濟艙”ThenCombo1(3).ClearCombo1(3).AddItemmrcc.Fields(7)Combo1(3).ListIndex=0ElseIfTrim(Combo1(2))="公務艙”ThenCombo1(3).ClearCombo1(3).AddItemmrcc.Fields(8)Combo1(3).ListIndex=0ElseCombo1(3).ClearCombo1(3).AddItemmrcc.Fields(9)Combo1(3).ListIndex=0EndIfEndIf‘關閉數(shù)據(jù)集對象mrcc.Close‘選擇制定客機編號的有關信息txtSQL="select*fromplaneInfowhereplaneNO='"&Trim(ticketCsum)&"'"Setmrcc=ExecuteSQL(txtSQL,MsgText)‘判斷數(shù)據(jù)集對象是否為空IfNotmrcc.EOFThenticketCsum=mrcc.Fields(4)ticketMsum=mrcc.Fields(5)ticketFsum=mrcc.Fields(6)EndIf‘關閉數(shù)據(jù)集對象mrcc.CloseEndIfElselfIndex=4T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論