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

下載本文檔

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

文檔簡介

-.z酒店管理信息系統(tǒng)系統(tǒng)平臺:Windows2000數(shù)據(jù)庫效勞器:MicrosoftSQLServer2000開發(fā)工具:VisualBasic6.0系統(tǒng)開發(fā)人員:⒈編寫目的酒店在正常的運營中需要對客房資源、顧客信息、結算信息進展管理,利用賓館管理信息系統(tǒng)及時了解各個環(huán)節(jié)**息的變更,有利于提高管理效率。⒉系統(tǒng)功能分析

系統(tǒng)開發(fā)的總體任務是實現(xiàn)賓館各種信息的系統(tǒng)化、規(guī)*化和自動化。主要完成功能:●有關客房標準的制定、標準信息的輸入,包括標準編號、標準名稱、房間面積、床位數(shù)量、住房單價、是否有空調(diào)、電視機、以及單獨衛(wèi)生間等。●客房標準信息的修改、查詢等?!窨头扛拘畔⒌妮斎?,包括客房編號、客房類型、客房位置、客房單價、備注等?!窨头扛拘畔⒌牟樵儭⑿薷模头烤幪?、客房類型、客房位置、客房單價、備注等?!袷S嗫头啃畔⒌牟樵兊取!裼喎啃畔⒌妮斎?,包括客房編號、客房種類、客房位置、客房單價、顧客**、顧客**、入住日期、折扣、備注信息等?!裼喎啃畔⒌男薷暮筒樵?,包括客房編號、客房種類、客房位置、客房單價、顧客**、顧客**、入住日期、折扣、備注信息等?!窠Y算信息的輸入,包括客房編號、客房種類、位置、客房單價、顧客**、顧客**、入住日期、折扣、結算日期、備注信息等。●結算信息的修改和查詢,包括客房編號、客房種類、客房位置、客房單價、顧客**、顧客**、入住日期、折扣、結日期、備注信息等。⒊系統(tǒng)功能模塊設計

按構造化程序設計思想,分析得出如下系統(tǒng)功能模塊圖

賓館管理信息系統(tǒng)結算信息管理訂房信息管理客房信息管理

系統(tǒng)管理

結算信息查詢

結算信息修改

結算信息添加

訂房信息查詢

訂房信息修改

訂房信息添加剩余客房信息查詢

設置客房信息

設置客房標準

密碼管理

用戶管理客房信息查詢客房信息修改客房信息添加客房標準修改客房標準添加

圖Ⅰ系統(tǒng)功能模塊圖⒋數(shù)據(jù)庫設計數(shù)據(jù)庫設計步驟:●

數(shù)據(jù)庫需求分析●

數(shù)據(jù)庫概念構造設計●

數(shù)據(jù)庫邏輯構造設計①數(shù)據(jù)庫需求分析分析調(diào)查有關賓館管理信息需求的根底上得本系統(tǒng)所處理的數(shù)據(jù)流程

客房標準設置根本信息輸入客房登記根本信息錄入客房信息管理顧客登記訂房信息管理訂房信息管理結算信息輸入結算信息管理客房信息返回圖Ⅱ賓館管理信息系統(tǒng)數(shù)據(jù)流程圖

針對一般賓館管理信息系統(tǒng)的需求,通過對賓館管理過程的內(nèi)容和流程分析,設計如下面所示的數(shù)據(jù)項和數(shù)據(jù)構造:●

客房標準信息,包括的數(shù)據(jù)項有:標準編號、標準名稱、房間面積、床位數(shù)量、住房單價、是否有空調(diào)、電視、、單獨衛(wèi)生間等?!?/p>

客房信息,包括的數(shù)據(jù)項有:客房編號、客房種類、客房位置、客房單價、備注等?!?/p>

訂房信息,包括的數(shù)據(jù)項有:訂房編號、客房編號、客房種類、客房位置、客房備注信息、顧客**、顧客**、入住時間、折扣、備注等?!?/p>

結算信息,包括的數(shù)據(jù)項有:訂房編號、客房編號、客房種類、客房位置、客房備注信息、顧客**、顧客**、入住時間、折扣、結算時間、備注等。②數(shù)據(jù)庫概念構造設計

本系統(tǒng)根據(jù)以上的設計規(guī)劃出的實體有:客房標準信息實體、客房信息實體、訂房信息實體、結算信息實體。各個實體具體的描述E-R圖如下:客房標準信息實體標準編號標準名稱床位數(shù)量客房單價

客房標準信息實體E-R圖客房信息實體客房標準客房編號客房位置客房單價

客房信息實體E-R圖訂房信息實體客房信息顧客信息折

扣入住時間訂房信息實體E-R圖結算信息實體客房信息顧客信息結算時間結算金額結算信息實體E-R圖客房標準信息客房登記客房信息管理訂

房訂房信息管理結算信息管理客房結算實體之間關系E-R圖③數(shù)據(jù)庫邏輯構造設計

首先將賓館管理信息系統(tǒng)的數(shù)據(jù)庫概念構造轉(zhuǎn)化為SQL2000數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,即:數(shù)據(jù)庫的邏輯構造。其各個表格的設計結果如下列名數(shù)據(jù)類型可否為空說明TypeidVarcharNOTNULL標準編號TypenameVarcharNOTNULL標準名稱AreaNumericNULL房間面積BednumNumericNULL床位數(shù)量HairconditionVarcharNULL是否有空調(diào)HtelephoneVarcharNULL是否有HtelevisionVarcharNULL是否有電視HtoiletVarcharNULL是否有單獨衛(wèi)生間PriceNumericNULL單價Roomtype客房標準信息表列名數(shù)據(jù)類型可否為空說明roomNOVarcharNOTNULL客房編號RoomtypeVarcharNOTNULL客房種類RoompositionVarcharNULL客房位置RoompriceNumericNULL單價PutupVarcharNOTNULL是否被預定RoommemoTe*tNULL備注Rooms客房信息表列名數(shù)據(jù)類型可否為空說明BooknoVarcharNOTNULL訂房編號CustomnameVarcharNOTNULL顧客**CustomIDVarcharNOTNULL**RoomnoVarcharNOTNULL客房編號IndateDatetimeNULL入住日期DiscountNumericNULL折扣InmenoTe*tNULL備注CheckdateDatetimeNULL結算日期AmountNumericNULL金額Bookin訂房信息表⒌數(shù)據(jù)庫構造的實現(xiàn)利用SQL2000數(shù)據(jù)庫系統(tǒng)中的查詢分析實現(xiàn)數(shù)據(jù)庫的邏輯構造,其表格如下:創(chuàng)立系統(tǒng)用戶表格user_Info

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]

創(chuàng)立客房標準信息表格roomtype

CREATETABLE[dbo].[roomtype](

[typeid][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[typename][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[area][numeric](5,0)NULL,

[bednum][numeric](2,0)NULL,

[haircondition][char](2)COLLATEChinese_PRC_CI_ASNULL,

[htelephone][char](2)COLLATEChinese_PRC_CI_ASNULL,

[htelevision][char](2)COLLATEChinese_PRC_CI_ASNULL,

[htoilet][char](2)COLLATEChinese_PRC_CI_ASNULL,

[price][numeric](10,2)NULL

)ON[PRIMARY]創(chuàng)立客房信息表格roomsCREATETABLE[dbo].[rooms](

[roomNO][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[roomtype][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[roomposition][char](20)COLLATEChinese_PRC_CI_ASNULL,

[roomprice][numeric](10,2)NULL,

[putup][char](2)COLLATEChinese_PRC_CI_ASNOTNULL,

[roommemo][te*t]COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]TE*TIMAGE_ON[PRIMARY]創(chuàng)立訂房信息表bookinCREATETABLE[dbo].[bookin](

[bookno][char](14)COLLATEChinese_PRC_CI_ASNOTNULL,

[customname][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[customID][char](18)COLLATEChinese_PRC_CI_ASNOTNULL,

[roomno][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,

[indate][datetime]NULL,

[discount][numeric](2,0)NULL,

[inmemo][te*t]COLLATEChinese_PRC_CI_ASNULL,

[checkdate][datetime]NULL,

[ammount][numeric](10,2)NULL)ON[PRIMARY]TE*TIMAGE_ON[PRIMARY]⒍賓館管理信息系統(tǒng)具體程序?qū)崿F(xiàn)⑴創(chuàng)立公用模塊Module1.bas

添加公共數(shù)據(jù)操作函數(shù),用以執(zhí)行各種SQL語句。添加函數(shù)E*ecuteSQL,代碼如下:PublicFunctionE*ecuteSQL(ByValSQLAsString,MsgStringAsString)_AsADODB.Recordset‘執(zhí)行SQL語句,并返回記錄集對象DimnAsADODB.ConnectionDimrstAsADODB.RecordsetDimsTokens()AsString‘異常處理OnErrorGoToE*ecuteSQL_Error’‘用Split函數(shù)產(chǎn)生一個包含各個子串的數(shù)組

sTokens=Split(SQL)

Setn=NEWADODB.Connection‘翻開連接

n.OpenConnectString

IfInStr(“INSERT,DELETE,UPDATE〞,UCase$(sTokens(0)))Then

n.E*ecuteSQL

MsgString=sTokens(0)&〞querysuccessful〞

Else

Setrst=NEWADODO.Recordset

rst.OpenTrim$(SQL),n,adOpenKeyset,adLockOptimistic

rst.MoveLast

getRecordCount

‘返回記錄集對象

SetE*ecuteSQL=rst

MsgString=〞查詢到〞&rst.RecordCount&〞條記錄〞

EndIfE*ecuteSQL_E*it:

Setrst=Nothing

Setn=Nothing

E*itFunctionE*ecuteSQL_Error:

MsgString=〞查詢錯誤:〞&Err.Description

ResumeE*ecuteSQL_E*itEndFunctionPublicSubEnterToTab(KeyascAsInteger)‘判斷是否為回車鍵

IfKeyasc=13Then‘Keyasc用來保存當前按鍵

‘轉(zhuǎn)換成Tab鍵

SendKeys〞{TAB}〞

EndIfEndsub‘添加全局變量,用來記錄各個窗口的讀寫狀態(tài),代碼如下:PublicflagTeditAsBoolean‘標示是否進入修改的窗體PublicflagReditAsBooleanPublicflagBeditAsBooleanPublicflagCeditAsBooleanPublicgintCmodeAsIntegerPublicgintTmodeAsInteger’記錄是添加還是修改狀態(tài),1為添加,2為修改PublicgintRmodeAsIntegerPublicgintBmodeAsIntegerPublicflagSeditAsBoolean⑵系統(tǒng)用戶管理模塊的創(chuàng)立

用戶管理模塊主要實現(xiàn):

·用戶登陸。

·添加用戶?!ば薷挠脩?/p>

具體客房標準添加代碼:PrivateSubForm_Load()‘載入窗體后,判斷所處狀態(tài)

DimintCountAsInteger

DimMsgTe*tAsString

DimiAsInteger

IfgintTmode=1Then‘判斷是否屬于添加狀態(tài)

Me.Caption=Me.Caption&〞添加〞

Fori=0To3

bo1(i).AddItem〞否〞

bo1(i).AddItem〞是〞

bo1(i).ListInde*=0

Ne*ti

ElseIfgintTmode=2Then‘判斷是否處于修改狀態(tài)

Setmrc=E*ecuteSql(t*tSQL,MsgTe*t)

Ifmrc.EOF=falseThen

Withmrc

ForintCount=0To3

t*tItem(intCount)=.Fields(intCount)

Ne*tintCount

t*tItem(4)=.Fileds(8)

Fori=0To3

bo1(i).Additem〞否〞

bo1(i).Additem〞是〞

bo1(i).ListInde*=0

Ne*ti

EndWith

t*tItem(0).Enabled=False

EndIf

Me.Caption=Me.caption&〞修改〞EndIfmblChang=False

EndSubPrivateSubcmd_Click()’用戶輸入內(nèi)容完畢后,單擊cmdSave按鈕觸發(fā)Click事件

DimintCountAsInteger

DimsMegAsString

DimMsgTe*tAsString

ForintCount=0To4‘判斷是否輸入內(nèi)容

IfTrim(t*tItem(intCount)&〞〞)=〞〞Then

SelectCaseintCount

Case0

sMeg=〞標準編號〞

Case1

sMeg=〞標準名稱〞

Case2

sMeg=〞房間面積〞

Case3

sMeg=〞床位數(shù)量〞

Case4

sMeg=〞床位單價〞

EndSelect

sMeg=sMeg&〞不能為空!〞

MsgBo*sMeg,vbOkOnly+vbE*clamation,〞警告〞

t*tItem(intCount).SetFocus

E*itSub

Endif

Ne*tintCount‘判斷輸入內(nèi)容是否為數(shù)字

ForintCount=2To4

IfNotIsNumeric(Trim(t*tItem(intCount)))Then

SelectCaseintCount

Case2

sMeg=〞房間面積〞

Case3

sMeg=〞床位數(shù)量〞

Case4

sMeg=〞床位單價〞

EndSelect

sMeg=sMeg&〞請輸入數(shù)字!〞MsgBo*sMeg,vbOKOnly+vbE*clamation,〞警告〞t*tItem(intCount).SeFocusE*itSub

EndIf

Ne*tintCount

IfgintTmode=1Then‘判斷是否有一樣ID記錄

t*tSQL=〞select*fromroomtypewheretypeid_=’〞&Trim(t*tItem(0))&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

Ifmrc.EOF=FalseThen

MsgBo*“已經(jīng)存在此標準編號的記錄!〞,vbOKOnly+vbE*clamation,〞警告〞

t*tItem(0).SetFocus

E*itSub

EndIf

Mrc.Close

EndIf

t*tSQL=〞select*fromroomtypewheretypeid<>’〞&Trim(t*tItem(0))&〞’andtypename=’〞&Trim(t*tItem(1))&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

Ifmrc.EOF=FalseThen

MsgBo*〞已經(jīng)存在一樣客房標準的記錄!〞,vbOKOnly+vbE*clamation,“警告〞

t*tItem(1).Setfocus

E*itSub

EndIf

t*tSQL=〞deletefromroomtypewheretypeid=’〞&Trim(t*tItem(0))&〞’〞‘刪除已有記錄

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

t*tSQL=〞select*fromroottype〞‘添加新記錄

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

mrc.AddNew

ForintCount=0To3

mrc.Fields(intCount)=Trim(t*tItem(intCount))

Ne*tintCount

ForintCount=0To3

mrc.Fields(intCount+4)=Trim(bo1(intCount))

Ne*tintCount

mrc.Fields(8)=Trim(t*tItem(4))

mrc.Update‘更新數(shù)據(jù)庫

mrc.Close

ifgintTmode=1Then‘判斷是否屬于添加狀態(tài)

MsgBo*“添加紀錄成功!〞,vbOKOnly+vbE*clamtion,“添加記錄〞

ForintCount=0To4

t*tItem(intCount)=〞〞‘去除已經(jīng)輸入的內(nèi)容

Ne*tintCount

ForintCount=0To3

bo1(intCount).ListInde*=0

Ne*tintCount

mblChange=False’判斷是否翻開窗口

ifflagTeditThen

UnloadfrmRoomtype

frmRoomtype.t*tSQL=“select*fromroomtype〞

frmRoomtype.Show

EndIf

ElseIfgintTmode=2Then‘判斷是否處于修改狀態(tài)

UnloadMe

IfflagTeditThen

UnloadfrmRoomtype

EndIf

frmRoomtype.t*tSQL=〞select*fromroomtype〞

frmRoomtype.Show

EndIf

EndSubPrivateSubt*tItem_GotFocus(Inde*AsInteger)’文本框獲得焦點時觸發(fā)該事件,即自動選中輸入的內(nèi)容,便于修改t*tItem(Inde*).SelStart=0t*tItem(Inde*).SelLength=Len(t*tItem(Inde*))EndSubPrivateSubcmdE*it_Click()’單擊按鈕cmdE*it取消添加信息IfmblChangeAndcmdSave.EnabledThen

IfMsgBo*(“保存當前記錄的變化嗎.〞,vbOKCancel+vbE*clamation,〞警告〞)=vbOKThen‘保存

CallcmdSave_Click

EndIfEndIfUnloadMeEndSubPrivateSubt*tItem_KeyDown(Inde*AsInteger,KeyCodeAsInteger,Shift_AsInteger)‘輸入完內(nèi)容,單擊回車鍵將自動進入下一個文本框,觸發(fā)文本框的Keydown事件

EnterToTabKeyCodeEndSub⑶修改客房標準窗體的創(chuàng)立PrivateSubFrom_Load()ShowTitleShowDataflagTedit=TrueEndSubPrivateSubShowTitle()‘調(diào)用showTitle函數(shù),顯示表頭DimiAsIntegerWithmsgList

.Cols=10

.Te*tMatri*(0,1)=〞標準編號〞

.Te*tMatri*(0,2)=〞標準名稱〞

.Te*tMatri*(0,3)=〞房間面積〞

.Te*tMatri*(0,4)=〞床位數(shù)量〞

.Te*tMatri*(0,5)=〞是否有空調(diào)〞

.Te*tMatri*(0,6)=〞是否有〞

.Te*tMatri*(0,7)=〞是否有電視〞

.Te*tMatri*(0,8)=〞是否有衛(wèi)生間〞

.Te*tMatri*(0,9)=〞房間單價〞

.Fi*edRows=1‘固定表頭

Fori=0To9‘設置各列的對齊方式

.ColAlignment(i)=0

Ne*ti

.FillStyle=fle*FillRepeat‘表頭項居中

.Col=0

.Row=0

.RowSel=1

.ColSel=.Cols-1

.CellAlignment=4

.ColWidth(0)=300‘設置單元大小

.ColWidth(1)=1000

.ColWidth(2)=2000

.ColWidth(3)=2000

.ColWidth(4)=1000

.ColWidth(5)=1000

.ColWidth(6)=1000

.ColWidth(7)=1000

.ColWidth(8)=1000

.ColWidth(9)=1000

.Row=1EndWithEndSubPrivateSubShowData()‘調(diào)用showData函數(shù),顯示記錄列表

DimiAsInteger

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)‘根據(jù)需要設置SQL語句,顯示需要的記錄

WithmsgList

.Rows=1

DoWhileNotmrc.EOF

.Rows=Rows+1

SelectCasemrc.Fields(i-1).Type

CaseadDBDate

.Te*tMatri*(.Rows-1,i)=Format(mrc.Fields(i-1)&〞〞,〞yyyy-mm-dd〞)

CaseElse

.Te*tMatri*(.Rows-1,i)=mrc.Fields(i-1)&〞〞

EndSelect

Ne*ti

Mrc.MoveNe*t

Loop

EndWith

mrc.CloseEndSubPrivateSubmsgList_MouseUp(ButtonAsInteger,ShiftAsInteger,*AsSingle,yAsSingle)‘選擇記錄,然后單擊鼠標右鍵,觸發(fā)MouseUp事件

IfButton=2AndShift=0Then

PopupMenufMainFrom.menuRoomtype

EndIfEndSubPrivateSubmenuModifyroomtype_Click()

DimintCountAsInteger

IfflagTeditThen

‘判斷是否翻開記錄窗體

IffrmRoomtype.msgList.Rows>1Then

fintTmode=2‘設置為修改狀態(tài)

‘記下選擇記錄

frmRoomtype1.t*tSQL=〞select*fromroomtypewheretypeid’〞&Trim(frmRoomtype.msgList.Te*tMatri*(intCount,1))&〞’〞

frmRoomtype1.Show

Else

CallmenuAddroomtype_Click

EndIf

Else

frmRoomtype.t*tSQL=〞select*fromroomtype〞

frmRoomtype.Show

EndIfEndSubPrivateSubFrom_Resize()‘窗體變化時,調(diào)整標簽和表格位置,使標簽處于窗體的最上方,而表格始終處于標簽下方

IfMe.WindowState<>vbMinimizedAndfMainFrom.WindowState<>vbMinimizedThen‘邊界處理

IfMe.Scaleheight<10*lblTitle.HeightThen

E*itSub

EndIf

IfMe.ScaleWidth<lblTitle.Width+lblTitle.Width/2Then

E*itSub

EndIf

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

EndIfEndSub⑷刪除客房標準PrivateSubmenuDeleteroomtype_Click()

Dimt*tSQLAsString

DimintCountAsInteger

DimmrcAsADODB.Recordset

DimMsgTe*tAsString

IfflagTeditThen‘判斷是否翻開記錄窗體

IffrmRoomtype.msgList.Rows>1Then

IfMsgBo*(“真的要刪除這條文件記錄么.〞,vbOKCancel+vbE*clamation,〞警告〞)=vbOKThen

intCount=frmRo

t*tSQL=〞deletefromroomtypewheretypeid’〞&Trim(frmRoomtype.msgList.Te*tMatri*(intCount,1))&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

UnloadfrmRoomtype‘關閉記錄窗體

frmRoomtype.t*tSQL=〞select*fromroomtype〞‘重新選擇所有記錄

frmRoomtype.Show

EndIf

EndIf

EndIfEndSub⑸客房信息管理模塊的創(chuàng)立

客房信息管理模塊主要實現(xiàn)如下功能:

·添加客房信息

·修改客房信息

·刪除客房信息

·查詢客房信息

具體實現(xiàn)代碼如下:PrivateSubFrom_Load()‘載入窗體時,自動添加客房信息種類

DimsSqlAsString

DimintCountAsInteger

DimMsgTe*tAsString

DimmrccAsADODB.Recordset

IfgintRmode=1Then‘判斷是否處于添加狀態(tài)

Me.Caption=me.Caption&“添加〞

t*tSQL=〞selectDISTINCTtypenamefromroomtype〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

DoWhileNotmrc.EOF

cboItem(0).AddItemTrim(mrc.Fields(0))

mrc.MoveNe*t

Loop

cboItem(0).ListInde*=0‘顯示記錄內(nèi)容

Else

MsgBo*“請先進展客房標準設置!〞,vbOKOnly+vbE*clamation,“警告〞

cmdSave.Enabled=False

E*itSub

EndIf

mrc.Close

ElseIfgintRmode=2Then‘判斷是否處于修改狀態(tài)

Setmrcc=E*ecuteSQL(t*tSQL,MsgTe*t)‘設置SQL語句顯示當前選擇記錄

Ifmrcc.EOF=FalseThen

Withmrcc

t*tItem(0)=.Fields(0)

ForintCount=1To2

IfNotIsNull(.Fields(intCount+1))Then‘判斷內(nèi)容是否為空

t*tItem(intCount)=.Fields(intCount+1)

EndIf

Ne*tintCount

t*tItem(3)=.Fields(5)

t*tSQL=〞selectDISTINCTtypenamefromroomtype〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

DoWhileNotmrc.EOF

cboItem(0).AddItemTrim(mrc.Fields(0))

mrc.MoveNe*t

Loop

cboItem(0).ListInde*=0

Else

MsgBo*“請先進展客房標準設置!〞,vbOKOnly+vbE*clamation,“警告〞

cmdSave.Enabled=False

E*itSub

EndIf

mrc.Close

EndWith

EndIf

mrcc.Close

Me.Caption=Me.Caption&“修改〞

EndIf

mblChange=FalseEndSubPrivateSubcmdSave_Click()‘單擊保存按鈕觸發(fā)事件

DimintCountAsInteger

DimsMegAsString

DimmrccAsADODB.Recordset

DimMsgte*tAsString

ForintCount=0To3

IfTrim(T*tItem(intCount)&〞〞)=〞〞Then

SelectCaseintCount

Case0

sMeg=“客房編號〞

Case1

sMeg=“客房位置〞

EndSelect

sMeg=sMeg&“不能為空!〞

MsgBo*sMeg,vbOKOnly+vbE*clamation,“警告〞

t*tItem(intCount).SetFocus

E*itSub

EndIf

Ne*tintCount

IfgintRmode=1Then‘判斷是否有重復記錄

t*tSQL=〞select*fromroomswhereroomNO=‘〞&Trim(t*tItem(0))&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,msgTe*t)

Ifmrc.EOF=FalseThen

MsgBo*“已經(jīng)存在此客房編號的記錄!〞,vbOKOnly+vbE*clamation,“警告〞

t*tItem(0).SetFocus

E*itSub

EndIf

mrc.Close

EndIf

IfgintRmode=2Then‘判斷是否處于修改狀態(tài)

t*tSQL=〞deletefromroomswhereroomNO=‘〞&Trim(t*tItem(0))&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

EndIf

t*tSQL=〞select*fromrooms〞‘再參加新記錄

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

mrc.AddNew‘為數(shù)據(jù)庫對象添加記錄

mrc.Fields(0)=Trim(t*tItem(0))

mrc.Fields(1)=Trim(t*tItem(0))

ForintCount=1To2

IfTrim(t*tItem(intCount)&〞〞)=〞〞Then

mrc.Fields(intCount+1)=Null

Else

mrc.Fields(intCount+1)=Trim(t*tItem(intCount))

EndIf

Ne*tintCount

mrc.Fields(4)=〞〞

mrc.Fields(5)=Trim(t*tItem(3))

mrc.Update

mrc.Close

IfgintRmode=1Then

ForintCount=0To3

t*tItem(intCount)=〞〞

Ne*tintCount

mblChange=False

IfflagReditThen

UnloadfrmRoom

frmRoom.t*tSQL=〞select*fromrooms〞‘重新顯示數(shù)據(jù)

frmRoom.Show

EndIf

ElseIfgintRmode=2Then

UnloadMe

IfflagReditThen

UnloadfrmRoom

EndIf

frmRoom.t*tSQL=〞select*fromrooms〞

frmRoom.Show

EndIfEndSub·修改客房信息PrivateSubmenuModifyroom_Click()‘選擇修改房間信息,觸menuModifyroom的Click事件,程序判斷為修改狀態(tài)后,首先刪除原有記錄,然后把新內(nèi)容參加到數(shù)據(jù)庫中

DimintCountAsInteger

IfflagReditThen‘判斷記錄窗體是否翻開

IffrmRoom.msgList.Rows>1Then‘判斷客房信息列表內(nèi)容是否為空

gintRmode=2‘設置為修改狀態(tài)‘紀錄當前記錄位置frmRoom1.t*tSQL=〞select*fromroomswhereroomNO=’〞&Trim(frmRoom.msgList.Te*tMatri*(intCount,1))&〞’〞frmRoom1.Show

Else

CallmenuAddroom_Click‘添加記錄EndIfElse

frmRoom.t*tSQL=〞select*fromrooms〞

frmRoom.ShowEndIfEndSub·刪除客房信息PrivateSubmenuDeleteroom_Click()

Dimt*tSQLAsString

DimintCountAsInteger

DimmrcAsADODB.Recordset

DimMsgTe*tAsString

IfflagTeditThen

IffrmRoom.msgList.Rows>1Then‘判斷客房信息列表內(nèi)容是否為空IfMsgBo*(“真的要刪除這條文件記錄么.〞,vbOKCancel+vbE*clamation,“警告〞)=vbOKThen

‘記載當前記錄位置t*tSQL=〞deletefromroomswhereroomNO=‘〞&Trim(frmRoom.msgList.Te*tMatri*(intCount,1)&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)‘執(zhí)行刪除操作UnloadfrmRoom

frmRoom.t*tSQL=〞select*fromrooms〞

frmRoom.Show

EndIf

EndIf

EndIfEndSub·查詢客房信息PrivateSubFrom_Load()‘載入窗體時,將自動參加所有記錄的入庫時間

DimiAsInteger

DimjAsInteger

DimsSqlAsString

Dimt*tSQLAsString

DimMsgTe*tAsString

DimmrcAsADODB.Recordset

t*tSQL=〞selectDISTINCTtypenamefromroomtype〞‘初始化客房種類

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

DoWhileNotmrc.EOF

bo1.AddItemTrim(mrc.Fields(0))

Mrc.MoveNe*t

Loop

bo1.ListInde*=0

Else

MsgBo*“請先進展客房標準設置!〞,vbOKOnly+vbE*clamation,〞警告〞

E*itSub

EndIf

mrc.CloseEndSubPrivateSubcmdOK_Click()‘設置完查詢內(nèi)容和方式后,單擊cmdOk按鈕查詢

DimsQSqlAsString

IfchkItem(0).Value=vbCheckedThen

sQSql=〞roomNO=’〞&Trim(t*tItem(0)&〞〞)&〞’〞

EndIf

IfchkItem(1).Value=vbCheckedThen

IfTrim(sQSql&〞〞)=〞〞Then

sQSql=〞roomtype=’〞&Trim(bo1&〞〞)&〞’〞

Else

sQSql=sQSql&〞androomtype=’〞&Trim(bo1&〞〞)&〞’〞

EndIf

EndIf

IfTrim(sQSql)=〞〞Then

MsgBo*“請設置查詢條件!〞,vbOKOnly+vbE*clamation,“警告〞

E*itSub

Else

IfflagReditThen

UnloadfrmRoom

EndIf

frmRoom.t*tSQL=〞select*fromroomswhere〞&sQSql

frmRoom.Show

EndIf

Me.HideEndSub⑹訂房信息管理模塊的創(chuàng)立訂房信息管理模塊主要實現(xiàn)如下功能:·查詢剩余客房信息·添加訂房信息·修改訂房信息·刪除訂房信息·查詢訂房庫信息具體實現(xiàn)代碼如下:PrivateSubFrom_Load()‘載入窗體時,程序?qū)⒆詣訁⒓涌头糠N類和客房單價

Dimt*tSQLAsString

DimMsgTe*tAsString

DimmrcAsADODB.Recordset

t*tSQL=〞selectdistincttypenamefromroomtype〞‘選擇所有客房種類

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

DoWhileNotmrc.EOF

bo1(0).AddItemmrc.Fields(0)

mrc.MoveNe*t

Loop

EndIf

mrc.Close

t*tSQL=〞selectdistinctpricefromroomtype〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

DoWhileNotmrc.EOF

bo1(1).AddItemmrc.Fields(0)

bo1(2).AddItemmrc.Fields(0)

mrc.MoveNe*t

Loop

EndIf

mrc.CloseEndSubPrivateSubcmdOK_Click()

DimsQSqlAsString

IfchkItem(0).Value=vbCheckedThen

sQSql=〞roomtype=’〞&Trim(bo1(0)&〞〞)&〞’〞

Endif

IfchkItem(1).Value=vbCheckedThen

IfTrim(sQSql&〞〞)=〞〞Then

IfTrim(bo1(1)&〞〞)<>〞〞AndTrim(bo1(2)&〞〞)<>〞〞Then

sQSql=〞roomprice<=’〞&Trim(bo1(1)&〞〞)&Androomprice>=’〞&Trim(bo1(2)&〞〞)〞’〞

ElseIfTrim(bo1(1)&〞〞)=〞〞AndTrim(bo1(2)&〞〞)<>〞〞Then

sQSql=〞roomprice>=’〞&Trim(bo1(2)&〞〞)&〞’〞

ElseIfTrim(bo1(1)&〞〞)<>〞〞AndTrim(bo1(2)&〞〞=〞〞Then

sQSql=〞roomprice<=’〞&Trim(bo1(1)&〞〞)&〞’〞

EndIf

Else

IfTrim(bo1(1)&〞〞)<>〞〞AndTrim(bo1(2)&〞〞)<>〞〞Then

sQSql=sQSql&〞androomprice>=’〞&Trim(bo1(1)&〞〞)&〞’androomprice>=’〞&Trim(bo1(2)&〞〞)&〞’〞

ElseIfTrim(bo1(1)&〞〞)=〞〞AndTrim(bo1(2)&〞〞)<>〞〞Then

sQSql=sQSql&〞androomprice>=’〞&Trim(bo1(2)&〞〞)&〞’〞

ElseIfTrim(bo1(1)&〞〞)<>〞〞AndTrim(bo1(2)&〞〞)=〞〞Then

sQSql=sQSql&〞androomprice<=’〞&Trim(bo1(1)&〞〞)&〞’〞

EndIf

EndIf

IfTrim(sQSql)=〞〞Then

MsgBo*“請設置查詢條件!〞,vbOKOnly+vbE*clamation,“警告〞

E*itSub

Else

IfflagReditThen

UnloadfrmRoom

EndIf

frmRoom.t*tSQL=〞select*fromroomswhere〞&sQSql&〞andputup〞<>’y’〞

frmRoom.Show

flagSedit=True

EndIf

Me.HideEndSubPrivateSubFrom_Load()‘添加訂房信息,載入窗體時把所有未預定的客房信息參加其中

DimsSqlAsString

DimintCountAsInteger

DimMsgTe*tAsString

IfflagSeditThen‘判斷翻開方式

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

ForintCount=0To3

cboItem(intCount).AddItemmrc.Fields(intCount)

cboItem(intCount).ListInde*=0

Ne*tintCount

t*tItem(5)=mrc.Fields(5)

EndIf

mrc.Close

t*tNo=GetRkno()

gintBmode=1

Else

IfgintBmode=1Then

Me.Caption=Me.Caption&“添加〞

t*tSQL=〞selectDISTINCTroomNOfromroomswhereputup<>’y’〞

Setmrc=E*ecuteSQL(t*tSQL.MsgTe*t)

IfNotmrc.EOFThen

DoWhileNotmrc.EOF

cboItem(0).AddItemTrim(mrc.Fields(0))

mrc.MoveNe*t

Loop

Else

MsgBo*“請先進展客房登記!〞,vbOKOnly+vbE*clamation,“警告〞

cmdSave.Enabled=False

E*itSub

EndIf

mrc.Close

t*tNo=GetRkno

ElseIfgintBmode=2Then

Setmrc.E*ecuteSQL(t*tSQL,MsgTe*t)

Ifmrc.EOFThen

Withmrc

t*tNO=!bookno

ForintCount=0To1

IfNotIsNull(.Fields(intCount+1))Then

t*tItem(intCount)=.Fields(intCount+1)

EndIf

Ne*tintCount

cboItem(0).AddItem!roomno

cboItem(0).ListInde*=0

ForintCount=2To4

IfNotIsNull(.Fields(intCount+2))Then

t*tItem(intCount)=.Fields(intCount+2)

EndIf

Ne*tintCount

EndWith

EndIf

mrc.Close

Me.Caption=Me.Caption&“修改〞

t*tSQL=〞select*fromroomswhereroomNO=’〞&Trim(cboItem(0))&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

ForintCount=1To3

cboItem(intCount).AddItemmrc.Fields(intCount)

cboItem(intCount).ListInde*=0

Ne*tintCount

t*tItem(5)=mrc.Fields(5)

EndIf

mrc.Close

EndIf

EndIf

mblChange=FalseEndSubPrivateSubcmdSave_Click()‘添加記錄到數(shù)據(jù)庫中

DimintCountAsInteger

DimsMegAsString

DimmrccAsADODB.Recordset

DimMsgTe*tAsString

ForintCount=0To3‘判斷輸入內(nèi)容是否為空

IfTrim(t*tItem(intCount)&〞〞)=〞〞Then

SelectCaseintCount

Case0

sMeg=“顧客**〞

Case1

sMeg=“**〞

Case2

sMeg=“折扣〞

Case3

sMeg=“入住時間〞

EndSelect

sMeg=sMeg&“不能為空!〞

MsgBo*sMeg,vbOKOnly+vbE*clamation,“警告〞

t*tItem(intCount).SetFocus

E*itSub

EndIf

Ne*tintCount

ForintCount=0To3

IfTrim(vboItem(intCount)&〞〞)=〞〞Then

SelectCaseintCount

Case0

sMeg=“客房編號〞

Case1

sMeg=“客房種類〞

Case2

sMeg=“客房位置〞

Case3

sMeg=“客房單價〞

EndSelect

sMeg=sMeg&“不能為空!〞

MsgBo*sMeg,vbOKOnly+vbE*clamation,“警告〞

cboItem(intCount).SetFocus

E*itSub

EndIf

Ne*tintCount

IfIsDate(t*tItem(2))Then

t*tItem(2)=Format(t*tItem(2),〞yyyy-mm-dd〞)

Else

MsgBo*“入庫時間應輸入日期(yyyy-mm-dd)!〞,vbOKOnly+vbE*clamation,〞警告〞

t*tItem(2).SetFocus

E*itSub

EndIf

ForintCount=1To3Step2

IfNotIsNumeric(t*tItem(intCount))Then

MsgBo*“請輸入數(shù)字〞,vbOKOnly+vbE*clamation,“警告〞

t*tItem(intCount).SetFocus

E*itSub

EndIf

Ne*tintCount

IfgintBmode=2Then

t*tSQL=〞deletefrombookingwherebookno=’〞&Trim(t*tNo)&〞’〞

Setmrcc=E*ecuteSQL(t*tSQL,MsgTe*t)

EndIf

t*tSQL=〞select*frombooking〞

Setmrcc=E*ecuteSQL(t*tSQL,MsgTe*t)

mrcc.AddNew

mrcc.Fields(0)=t*tNO

ForintCount=0To1

mrcc.Fields(intCount+1)=t*tItem(intTe*t)

Ne*tintCount

mrcc.Fields(3)=cboItem(0)

ForintCount=2To4

mrcc.Fields(intCount+2)=t*tItem(intCount)

Ne*tintCount

mrcc.Fields(8)=0

mrcc.Update

mrcc.Close

t*tSQL=〞select*fromroomswhereroomNO=’〞&Trim(vboItem(0))&〞’〞

Setmrcc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrcc.EOfThen

mrcc!putup=〞y〞

EndIf

mrcc.Update

mrcc.Close

IfgintBmode=1Then

MsgBo*“添加訂房信息成功!〞,vbOKOnly+vbE*clamation,“添加訂房消息〞

UnloadMe

IfflagBeditThen

UnloadfrmBookin

EndIf

frmBookin.t*tSQL=〞selectbookno,customname,customID,roomno,indate,discount,inmemofrombookingwhereamount=’0’

frmBookin.Show

Else

MsgBo*“修改訂房信息成功!〞,vbOKOnly+vbE*clamation,“修改訂房信息〞

UnloadMe

IfflagBeditThen

UnloadfrmBookin

EndIf

frmBookin.t*tSQL=〞selectbookno,customname,customID,roomno,indate,discount,inmemofrombookingwhereamount=’0’

frmBookin.Show

EndIfEndSub⑺結算信息管理模塊的創(chuàng)立結算信息管理模塊主要實現(xiàn)如下功能:·添加結算信息·修改結算信息·查詢結算信息具體實現(xiàn)代碼如下:PrivateSubFrom_Load()‘窗體載入時,自動參加所有未結算客房信息

DimsSqlAsString

DimintCountAsInteger

DimMsgTe*tAsString

IfgintCmode=1Then‘判斷是否處于添加狀態(tài)

Me.Caption=Me.Caption&“添加〞

t*tSQL=〞selectDISTINCTroomnofrombookingwhereamount=’0’〞‘

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)

IfNotmrc.EOFThen

DoWhileNotmrc.EOF

cboItem(0).AddItemTrim(mrc!roomno)

mrc.MoveNe*t

Loop

Else

溫馨提示

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

最新文檔

評論

0/150

提交評論