版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、航空公司管理信息系統(tǒng)一個正常營運的航空公司需要管理所擁有的飛機、航線的設(shè)置、客戶的信息等,更重要的還要提供票務(wù)管理。面對各種不同種類的信息,需要合理的數(shù)據(jù)庫結(jié)構(gòu)來保存數(shù)據(jù)信息以及有效的程序結(jié)構(gòu)支持各種數(shù)據(jù)操作的執(zhí)行。本設(shè)計講述如何建立一個航空公司管理信息系統(tǒng)。一般而言,航空公司的管理信息系統(tǒng)應(yīng)該包括人事、工資管理模塊 。1 系統(tǒng)設(shè)計1.1 系統(tǒng)功能分析系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成。本例子中的航空公司管理信息系統(tǒng)需要完成功能主要有:l 艙位信息的輸入和修改,包括艙位等級編號、艙位等級名稱、提供的各種服務(wù)類別,以及備注信息
2、等。l 客機信息的輸入、修改和查詢,包括客機編號、客機型號、購買時間、服役時間、經(jīng)濟艙座位數(shù)量、公務(wù)艙座位數(shù)量、頭等艙座位數(shù)量以及備注信息等。l 航線信息的輸入、修改和查詢,包括航線編號、出發(fā)城市、到達城市、航班日期、出發(fā)時間、到達時間、客機編號、經(jīng)濟艙價格、公務(wù)艙價格、頭等艙價格和備注信息等。l 客戶等級信息的輸入、修改,包括客戶等級編號、客戶等級名稱、折扣比例和備注信息等。l 客戶信息的輸入、修改和查詢,包括客戶編號、客戶姓名、客戶性別、身份證號碼、聯(lián)系電話、客戶類型和備注信息等。l 訂票信息的輸入、查詢和修改,包括訂票編號、客戶編號、客戶姓名、客戶類型、折扣比例、航線編號、出發(fā)城市、到達
3、城市、出發(fā)時間、艙位類型、票價、結(jié)算金額和備注信息等。1.2 系統(tǒng)功能模塊設(shè)計對上述各項功能進行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計的要求,得到如圖9-1所示的系統(tǒng)功能模塊圖。圖9-1 系統(tǒng)功能模塊圖2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞將直接對應(yīng)用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。設(shè)計數(shù)據(jù)庫系統(tǒng)時應(yīng)該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。數(shù)據(jù)庫設(shè)計一般包括如下幾個步驟:l 數(shù)據(jù)庫需要分析。l 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計。l 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計。2.1 數(shù)據(jù)庫需求分析用戶的
4、需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。仔細分析調(diào)查有關(guān)航空公司管理信息需求的基礎(chǔ)上,將得到如圖9-2所示的本系統(tǒng)所處理的數(shù)據(jù)流程。圖9-2 航空公司管理信息系統(tǒng)數(shù)據(jù)流程圖針對一般航空公司管理信息系統(tǒng)的需求,通過對航空公司管理工作過程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計如下面所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):l 艙位等級信息,包括的數(shù)據(jù)項有:艙位等級編號、艙位等級名稱、是否有禮品、是否有報紙、是否有飲料、是否有午餐、是否有電影、是否可以改簽、是否可以退票、是否可以打
5、折、備注信息等。l 客機信息,包括的數(shù)據(jù)項有:客機編號、客機型號、購買時間、服役時間、經(jīng)濟艙座位數(shù)量、公務(wù)艙座位數(shù)量、頭等艙座位數(shù)量、備注信息等。l 航線信息,包括的數(shù)據(jù)項有:航線編號、出發(fā)城市、到達城市、航班日期、出發(fā)時間、到達時間、客機編號、經(jīng)濟艙價格、公務(wù)艙價格、頭等艙價格、備注信息等。l 客戶類型信息,包括的數(shù)據(jù)項有:客戶類型編號、客戶類型名稱、折扣比例、備注信息等。l 客戶信息,包括的數(shù)據(jù)項有:客戶編號、客戶姓名、客戶性別、身份證號碼、聯(lián)系電話、客戶類型、備注信息等。l 訂票信息,包括的數(shù)據(jù)項有:訂票編號、顧客編號、顧客姓名、顧客類型、折扣比例、航線編號、出發(fā)城市、到達城市、艙位類型
6、、機票價格、結(jié)算金額、備注信息等。有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項和數(shù)據(jù)流程,我們就能進行下面的數(shù)據(jù)庫設(shè)計。2.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計得到上面的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。這些實體包含各種具體信息,通過相互之間的作用形成數(shù)據(jù)的流動。本實例根據(jù)上面的設(shè)計規(guī)劃出的實體有:艙位等級信息實體、客機信息實體、航線信息實體、客戶類型信息實體、客戶信息實體、訂票信息實體。各個實體具體的描述e-r圖如下。艙位等級信息實體e-r圖如圖9-3所示。圖9-3 艙位等級信息實體e-r圖客機信息實體e-r圖如圖9-4所示。圖9-4 客機信息實
7、體e-r圖航線信息實體e-r圖如圖9-5所示。圖9-5 航線信息實體e-r圖客戶類型信息實體e-r圖如圖9-6所示。圖9-6 客戶類型信息實體e-r圖客戶信息實體e-r圖如圖9-7所示。圖9-7 客戶信息實體e-r圖訂票信息實體e-r圖如圖9-8所示。圖9-8 訂票信息實體e-r圖實體之間關(guān)系的e-r圖如圖9-9所示。圖9-9 實體之間關(guān)系的e-r圖2.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計現(xiàn)在需要將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為sql server 2000數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。航空公司管理信息系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如下面表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表9-
8、1為供應(yīng)商信息表。表9-1 serviceinfo 艙位等級信息表列 名數(shù)據(jù)類型可否為空說 明servicenocharnot null艙位等級編號servicenamenvarcharnull艙位等級名稱nopresentcharnull是否有禮物nonewspapercharnull是否有報紙nodrinkcharnull是否有飲料nofoodcharnull是否有午餐nomoviecharnull是否有電影canchangecharnull是否可以改簽cancancelcharnull是否可以退票candiscountcharnull是否可以打折servicememotextnull備注
9、信息表9-2為顧客信息表格。表9-2 planeinfo客機信息表格列 名數(shù)據(jù)類型可否為空說 明planenocharnot null客機編號planetypecharnull客機型號buydatedatetimenull購買日期servedatedatetimenull服役日期iscommonnvarcharnull經(jīng)濟艙座位數(shù)量iscommercialnvarcharnull公務(wù)艙座位數(shù)量isfirstnvarcharnull頭等艙座位數(shù)量planememotextnull備注信息表9-3為航線信息表。表9-3 airlineinfo航線信息表列 名數(shù)據(jù)類型可否為空說 明airlineno
10、charnot null航線編號departcitynvarcharnull出發(fā)城市arrivalcitynvarcharnull到達城市departdatecharnull航班日期departtimecharnull出發(fā)時間arrivaltimecharnull到達時間planenocharnull客機編號commonpricenumericnull經(jīng)濟艙價格commercialpricenumericnull公務(wù)艙價格firstpricenumericnull頭等艙價格airlinememotextnull備注信息表9-4為客戶類型信息表格。表9-4 customertype 客戶類型信息
11、表列 名數(shù)據(jù)類型可否為空說 明ctypenocharnot null客戶類型編號ctypenamecharnull客戶類型名稱discountnumericnull折扣比例續(xù)表列 名數(shù)據(jù)類型可否為空說 明ctypememotextnull備注表9-5為客戶信息表格。表9-5 customerinfo 客戶信息表列 名數(shù)據(jù)類型可否為空說 明customernocharnot null客戶編號customernamecharnull客戶姓名customersexcharnull客戶性別customeridcharnull身份證號碼customertelecharnull客戶聯(lián)系電話customer
12、typecharnull客戶類型customermemotextnull備注表9-6為訂票信息表格。表9-6 ticketinfo 訂票信息表列 名數(shù)據(jù)類型可否為空說 明ticketnocharnot null訂票編號customernocharnull客戶編號customernamecharnull客戶姓名customertypecharnull客戶類型discountnumericnull折扣比例airlinenocharnull航線編號departcitynvarcharnull出發(fā)城市arrivalcitynvarcharnull到達城市ticketdatedatetimenull出發(fā)
13、日期servicetypecharnull艙位類型ticketpricenumericnull機票價格ticketsumnumericnull結(jié)算金額customermemotextnull備注3 數(shù)據(jù)庫結(jié)構(gòu)的實現(xiàn)經(jīng)過前面的需求分析和概念結(jié)構(gòu)設(shè)計以后,得到數(shù)據(jù)庫的邏輯結(jié)構(gòu)。現(xiàn)在就可以在sql server 2000數(shù)據(jù)庫系統(tǒng)中實現(xiàn)該邏輯結(jié)構(gòu)。這是利用sql server 2000數(shù)據(jù)庫系統(tǒng)中的sql 查詢分析器實現(xiàn)的。下面給出創(chuàng)建這些表格的sql語句。3.1 創(chuàng)建系統(tǒng)用戶表create table dbo.user_info1 (user_id char (10) collate chines
14、e_prc_ci_as not null ,user_pwd char (10) collate chinese_prc_ci_as null ,user_des char (10) collate chinese_prc_ci_as null ) on primary3.2 創(chuàng)建艙位等級信息表create table dbo.serviceinfo (serviceno char (4) collate chinese_prc_ci_as not null ,servicename nvarchar (20) collate chinese_prc_ci_as null ,nopresent
15、 char (2) collate chinese_prc_ci_as null ,nonewspaper char (2) collate chinese_prc_ci_as null ,nodrink char (2) collate chinese_prc_ci_as null ,nofood char (2) collate chinese_prc_ci_as null ,nomovie char (2) collate chinese_prc_ci_as null ,canchange char (2) collate chinese_prc_ci_as null ,cancance
16、l char (2) collate chinese_prc_ci_as null ,candiscount char (2) collate chinese_prc_ci_as null ,servicememo text collate chinese_prc_ci_as null ) on primary textimage_on primary3.3 創(chuàng)建客機信息表create table dbo.planeinfo (planeno char (18) collate chinese_prc_ci_as not null ,planetype char (20) collate ch
17、inese_prc_ci_as null ,buydate datetime null ,servedate datetime null ,iscommon nvarchar (20) collate chinese_prc_ci_as null ,iscommercial nvarchar (20) collate chinese_prc_ci_as null ,isfirst nvarchar (20) collate chinese_prc_ci_as null ,planememo text collate chinese_prc_ci_as null ) on primary tex
18、timage_on primary3.4 創(chuàng)建航線信息表create table dbo.airlineinfo (airlineno char (14) collate chinese_prc_ci_as not null ,departcity nvarchar (50) collate chinese_prc_ci_as null ,arrivalcity nvarchar (50) collate chinese_prc_ci_as null ,departdate char (10) collate chinese_prc_ci_as null ,departtime char (1
19、0) collate chinese_prc_ci_as null ,arrivaltime char (10) collate chinese_prc_ci_as null ,planeno char (18) collate chinese_prc_ci_as null ,commonprice numeric(18, 2) null ,commercialprice numeric(18, 2) null ,firstprice numeric(18, 2) null ,airlinememo text collate chinese_prc_ci_as null ) on primar
20、y textimage_on primary3.5 創(chuàng)建客戶類型信息表create table dbo.customertype (ctypeno char (14) collate chinese_prc_ci_as not null ,ctypename char (20) collate chinese_prc_ci_as null ,discount numeric(2, 0) null ,ctypememo text collate chinese_prc_ci_as null ) on primary textimage_on primary3.6 創(chuàng)建客戶信息表create ta
21、ble dbo.customerinfo (customerno char (14) collate chinese_prc_ci_as not null ,customername char (50) collate chinese_prc_ci_as null ,customersex char (2) collate chinese_prc_ci_as null ,customerid char (18) collate chinese_prc_ci_as null ,customertele char (20) collate chinese_prc_ci_as null ,custo
22、mertype char (14) collate chinese_prc_ci_as null ,customermemo text collate chinese_prc_ci_as null ) on primary textimage_on primary3.7 創(chuàng)建訂票信息表create table dbo.ticketinfo (ticketno char (14) collate chinese_prc_ci_as not null ,customerno char (14) collate chinese_prc_ci_as null ,customername char (5
23、0) collate chinese_prc_ci_as null ,customertype char (14) collate chinese_prc_ci_as null ,discount numeric(18, 0) null ,airlineno char (14) collate chinese_prc_ci_as null ,departcity nvarchar (50) collate chinese_prc_ci_as null ,arrivalcity nvarchar (50) collate chinese_prc_ci_as null ,ticketdate da
24、tetime null ,servicetype nvarchar (20) collate chinese_prc_ci_as null ,ticketprice numeric(18, 2) null ,ticketsum numeric(18, 2) null ,ticketmemo text collate chinese_prc_ci_as null ) on primary textimage_on primary4 航空公司管理信息系統(tǒng)主窗體的創(chuàng)建上面的sql語句在sql server 2000中查詢分析器的執(zhí)行,將自動產(chǎn)生需要的所有表格。有關(guān)數(shù)據(jù)庫結(jié)構(gòu)的所有后臺工作已經(jīng)完成?,F(xiàn)
25、在將通過航空公司管理信息系統(tǒng)中各個功能模塊的實現(xiàn),講解如何使用visual basic來編寫數(shù)據(jù)庫系統(tǒng)的客戶端程序。4.1 創(chuàng)建工程項目mis_ticket啟動visual basic后,單擊file|new project菜單,在工程模板中選擇standard exe,visual basic將自動產(chǎn)生一個form窗體,屬性都是缺省設(shè)置。這里我們刪除這個窗體,單擊file|save project菜單,將這個工程項目命名為mis_ticket。4.2 創(chuàng)建航空公司管理信息系統(tǒng)的主窗體這個項目我們使用多文檔界面,單擊工具欄中的add mdi form按鈕,產(chǎn)生一個窗體。在這個窗體上添加所需的控
26、件,窗體和控件的屬性設(shè)置見表9-7。創(chuàng)建好的窗體如圖9-10所示。表9-7 主窗體及其控件屬性設(shè)置控 件屬 性屬性取值frmmain(form)namefrmmaincaption大唐航空公司信息管理系統(tǒng)startuppositoncenterscreenwindowstatemaximizedsbstatusbar(statusbar)namesbstatusbarpanels(1)stylesbrtextpanels(2)stylesbrdatepanels(3)stylesbrtime圖9-10 航空公司管理信息系統(tǒng)主窗體在主窗體中加入狀態(tài)欄控件,可以實時反映系統(tǒng)中的各個狀態(tài)的變化。狀態(tài)
27、欄控件需要在通常的屬性窗口中設(shè)置一般屬性,還需要在其特有的彈出式菜單中進行設(shè)置。選中狀態(tài)欄控件,單擊鼠標(biāo)右鍵,選中property菜單,然后設(shè)置屬性。面板1用來顯示各種文本信息,面板2用來顯示當(dāng)前日期,面板3用來顯示當(dāng)前時間。4.3 創(chuàng)建主窗體的菜單在如圖9-10所示的主窗體中,單擊鼠標(biāo)右鍵,選擇彈出式菜單中的menu editor,創(chuàng)建如圖9-11所示的菜單結(jié)構(gòu):圖9-11 主窗體中的菜單結(jié)構(gòu)4.4 創(chuàng)建公用模塊在visual basic中可以用公用模塊來存放整個工程項目公用的函數(shù)、過程和全局變量等。這樣可以極大地提高代碼的效率。在項目資源管理器中為項目添加一個module,保存為modul
28、e1.bas。下面就可以開始添加需要的代碼了。由于系統(tǒng)中各個功能模塊都將頻繁使用數(shù)據(jù)庫中的各種數(shù)據(jù),因此需要一個公共的數(shù)據(jù)操作函數(shù),用以執(zhí)行各種sql語句。添加函數(shù)executesql,代碼如下:public function executesql(byval sql _ as string, msgstring as string) _ as adodb.recordset執(zhí)行sql語句,并返回記錄集對象 聲明一個連接 dim cnn as adodb.connection 聲明一個數(shù)據(jù)集對象 dim rst as adodb.recordset dim stokens() as strin
29、g異常處理 on error goto executesql_error用split函數(shù)產(chǎn)生一個包含各個子串的數(shù)組 stokens = split(sql) 創(chuàng)建一個連接 set cnn = new adodb.connection打開連接 cnn.open connectstring if instr(insert,delete,update, _ ucase$(stokens(0) then 執(zhí)行查詢語句 cnn.execute sql msgstring = stokens(0) & _ query successful else set rst = new adodb.recordse
30、t rst.open trim$(sql), cnn, _ adopenkeyset, _ adlockoptimistic rst.movelast get recordcount返回記錄集對象 set executesql = rst msgstring = 查詢到 & rst.recordcount & _ 條記錄 end ifexecutesql_exit: set rst = nothing set cnn = nothing exit function executesql_error: msgstring = 查詢錯誤: & _ err.description resume ex
31、ecutesql_exitend function 在executesql函數(shù)中使用了connect string函數(shù),這個函數(shù)用來連接數(shù)據(jù)庫,代碼如下:public function connectstring() _ as string返回一個數(shù)據(jù)庫連接 connectstring = filedsn=ticket.dsn;uid=sa;pwd=end function在錄入有關(guān)信息時,需要回車來進入下一個文本框,這樣對軟件使用者非常方便。在所有的功能模塊都需要這個函數(shù),所以將它放在公用模塊中,代碼如下:public sub entertotab(keyasc as integer) 判斷
32、是否為回車鍵 if keyasc = 13 then 轉(zhuǎn)換成tab鍵 sendkeys tab end ifend subkeyasc用來保存當(dāng)前按鍵,sendkeys函數(shù)用來指定的按鍵。一旦按下回車鍵,將返回tab鍵,下一個控件自動獲得輸入焦點。添加全局變量,用來記錄各個功能模塊的讀寫狀態(tài),代碼如下:public gintsmode as integer 記載艙位等級功能模塊的讀寫狀態(tài)public gintpmode as integer 記載客機信息模塊的讀寫狀態(tài)public gintamode as integer 記載航線信息模塊的讀寫狀態(tài)public ginttmode as int
33、eger 記載客戶類型模塊的讀寫狀態(tài)public gintcmode as integer 記載客戶信息模塊的讀寫狀態(tài)public gintkmode as integer 記載訂票信息模塊的讀寫狀態(tài)這些全局變量用來記錄是添加狀態(tài)還是修改狀態(tài),賦值1為添加,賦值2為修改。由于航空公司管理信息管理系統(tǒng)啟動后,需要對用戶進行判斷。如果登錄者是授權(quán)用戶,將進入系統(tǒng),否則將停止程序的執(zhí)行。這個判斷需要在系統(tǒng)運行的最初進行,因此將代碼放在公用模塊中。5 系統(tǒng)用戶管理模塊的創(chuàng)建用戶管理模塊主要實現(xiàn):l 用戶登錄。l 添加用戶。l 修改用戶密碼。 6 艙位信息管理模塊的創(chuàng)建艙位信息管理模塊主要實現(xiàn)如下功能:
34、l 添加艙位信息。l 修改艙位信息。l 刪除艙位信息。6.1 顯示艙位信息窗體的創(chuàng)建選擇“航線信息管理|艙位信息”菜單,將出現(xiàn)如圖9-12所示的窗體。圖9-12 艙位等級信息窗體這個窗體用來顯示艙位等級信息,并且可以對各條記錄進行操作。在載入窗體時,程序?qū)⒆詣虞d入所有記錄,代碼如下:private sub menucarbin_click() frmservice.txtsql = select * from serviceinfo frmservice.show 0end sub窗體的show方法后面加上0或者1,可以得到不同的窗體顯示方式。參數(shù)為0時,顯示的窗體為無模式形式,窗體切換時不需
35、要進行其他操作;參數(shù)為1時,顯示的窗體為有模式形式,窗體切換時必須進行相關(guān)操作。載入窗體時將自動顯示各條記錄,代碼如下:private sub form_load() showtitle showdataend sub函數(shù)showtitle用來顯示表頭,代碼如下:private sub showtitle() dim i as integer with msglist .cols = 12 .textmatrix(0, 1) = 等級編號 .textmatrix(0, 2) = 機艙等級 .textmatrix(0, 3) = 是否有禮品 .textmatrix(0, 4) = 是否有報紙 .
36、textmatrix(0, 5) = 是否有飲料 .textmatrix(0, 6) = 是否有午餐 .textmatrix(0, 7) = 是否提供電影 .textmatrix(0, 8) = 是否可以改簽 .textmatrix(0, 9) = 是否可以退票 .textmatrix(0, 10) = 是否可以打折 .textmatrix(0, 11) = 備注信息 固定表頭 .fixedrows = 1 設(shè)置各列的對齊方式 for i = 0 to 11 .colalignment(i) = 0 next i 表頭項居中 .fillstyle = flexfillrepeat .col =
37、 0 .row = 0 .rowsel = 1 .colsel = .cols - 1 .cellalignment = 4 設(shè)置單元大小 .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
38、(11) = 1000 .row = 1 end withend sub函數(shù)showdata把各條記錄加到表格中,并顯示出來,代碼如下:private sub showdata() dim j as integer dim i as integer dim msgtext as string獲得數(shù)據(jù)集 set mrc = executesql(txtsql, msgtext) with msglist .rows = 1 判斷是否為空 do while not mrc.eof 移動到下一行 .rows = .rows + 1 循環(huán) for i = 1 to mrc.fields.count 判
39、斷是否為空 if not isnull(trim(mrc.fields(i - 1) then 根據(jù)數(shù)據(jù)類型顯示 select case mrc.fields(i - 1).type case addbdate .textmatrix(.rows - 1, i) = format(mrc.fields(i - 1) & , yyyy-mm-dd) case else .textmatrix(.rows - 1, i) = mrc.fields(i - 1) & end select end if next i 移動到下一條記錄 mrc.movenext loop end with 關(guān)閉數(shù)據(jù)集對
40、象 mrc.closeend sub在窗體顯示時,可以控制窗體中各個控件按照要求的位置顯示??梢栽诖绑w的resize事件中加入代碼,代碼如下:private sub form_resize() 判斷當(dāng)前窗體所處的狀態(tài),當(dāng)前窗體不處于最小化狀態(tài)并且主窗體不處于最小化狀態(tài)時進行后面的操作 if me.windowstate vbminimized and fmainform.windowstate vbminimized then 邊界處理 if me.scaleheight 10 * lbltitle.height then exit sub end if if me.scalewidth lb
41、ltitle.width + lbltitle.width / 2 then exit sub end if 控制控件的位置 lbltitle.top = lbltitle.height lbltitle.left = (me.width - lbltitle.width) / 2 控制表格控件的位置 msglist.top = lbltitle.top + lbltitle.height + lbltitle.height / 2 msglist.width = me.scalewidth - 200 msglist.left = me.scaleleft + 100 msglist.hei
42、ght = me.scaleheight - msglist.top - 1500 控制按鈕位置 frame2.top = msglist.top + msglist.height + 50 frame2.left = me.scalewidth / 2 - 3000 end ifend sub6.2 添加艙位信息窗體的創(chuàng)建在艙位信息顯示窗體中單擊“添加”按鈕,將出現(xiàn)如圖9-13所示的窗體。圖9-13 添加艙位等級信息窗體載入窗體時,首先根據(jù)標(biāo)志變量判斷狀態(tài),然后決定是添加還是修改,代碼如下:private sub form_load() dim intcount as integer dim
43、 msgtext as string dim i as integer 判斷是否為添加 if gintsmode = 1 then me.caption = me.caption & 添加 for i = 0 to 7 combo1(i).additem 否 combo1(i).additem 是 combo1(i).listindex = 0 next i 載入當(dāng)前選擇記錄內(nèi)容 elseif gintsmode = 2 then set mrc = executesql(txtsql, msgtext) 判斷記錄是否為空 if mrc.eof = false then with mrc fo
44、r intcount = 0 to 1 txtitem(intcount) = .fields(intcount) next intcount txtitem(2) = .fields(10) for i = 0 to 7 combo1(i).additem 否 combo1(i).additem 是 combo1(i).listindex = 0 next i end with txtitem(0).enabled = false end if me.caption = me.caption & 修改 end if mblchange = falseend sub輸入內(nèi)容完畢,單擊“保存”按
45、鈕,將首先判斷輸入內(nèi)容是否滿足要求,然后添加到數(shù)據(jù)庫中。代碼如下:private sub cmdsave_click() dim intcount as integer dim smeg as string dim msgtext as string 判斷輸入內(nèi)容是否為空 for intcount = 0 to 1 if trim(txtitem(intcount) & ) = then select case intcount case 0 smeg = 機艙等級編號 case 1 smeg = 機艙等級名稱 end select smeg = smeg & 不能為空! msgbox sme
46、g, vbokonly + vbexclamation, 警告 txtitem(intcount).setfocus exit sub end if next intcount 判斷輸入內(nèi)容是否為數(shù)字 if not isnumeric(trim(txtitem(0) then smeg = 機艙等級編號 smeg = smeg & 請輸入數(shù)字! msgbox smeg, vbokonly + vbexclamation, 警告 txtitem(0).setfocus end if 添加判斷是否有相同的id記錄 if gintsmode = 1 then txtsql = select * fr
47、om serviceinfo where serviceno= & trim(txtitem(0) & set mrc = executesql(txtsql, msgtext) if mrc.eof = false then msgbox 已經(jīng)存在此編號的記錄!, vbokonly + vbexclamation, 警告 txtitem(0).setfocus exit sub end if mrc.close end if 判斷是否有相同內(nèi)容的記錄 txtsql = select * from serviceinfo where serviceno & trim(txtitem(0) & and servicename= & trim(txtitem(1) & set mrc = executesql(txtsql, msgtext) if mrc.eof = false then msgbox 已經(jīng)存在相同機艙等級的記錄!, vbokonly + vbexclamation, 警告 txtitem(1).s
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB-T 31297-2014 TC4 ELI鈦合金板材》專題研究報告
- 《GBT 33534-2017 失業(yè)登記管理服務(wù)規(guī)范》專題研究報告
- 宜賓編制考試題庫及答案
- 會計面試題集及答案解析
- 廣州建筑暖通工程師面試題集
- 2025年綠色金融產(chǎn)品創(chuàng)新與發(fā)展可行性研究報告
- 2025年農(nóng)業(yè)機械化推廣項目可行性研究報告
- 2025年社交媒體營銷效果評估平臺項目可行性研究報告
- 2025年數(shù)字媒體藝術(shù)創(chuàng)作項目可行性研究報告
- 2025年電子政務(wù)服務(wù)平臺建設(shè)項目可行性研究報告
- 2025-2026學(xué)年蘇教版三年級上冊數(shù)學(xué)第七單元(數(shù)量關(guān)系的分析一)測試卷及答案
- 廣東深圳市2026屆化學(xué)高三第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 電力公司考試大題題庫及答案
- 國企金融招聘筆試題及答案
- 重慶市金太陽好教育聯(lián)盟2026屆高三10月聯(lián)考(26-65C)英語(含答案)
- 成都市龍泉驛區(qū)衛(wèi)生健康局下屬15家醫(yī)療衛(wèi)生事業(yè)單位2025年下半年公開考試招聘工作人員(18人)備考考試題庫附答案解析
- 2025-2030中國光纖分布式測溫系統(tǒng)市場需求預(yù)測報告
- 因甲方原因造成停工的聯(lián)系函示例
- 急救藥品物品使用規(guī)范與操作流程
- 煤矸石填溝造地綜合利用項目規(guī)劃設(shè)計方案
- 財稅SaaS助力小微企業(yè)降本增效2025年實操指南
評論
0/150
提交評論