版權說明:本文檔由用戶提供并上傳,收益歸屬內(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育機構聘用兼職講師合同書3篇
- 2025年度農(nóng)村個人房屋買賣協(xié)議書(含農(nóng)業(yè)物聯(lián)網(wǎng)技術應用)3篇
- 二零二五年度農(nóng)產(chǎn)品收購加工一體化合同范本3篇
- 二零二五年度戶外廣告牌使用權租賃協(xié)議2篇
- 二零二五年度公司員工股權激勵合伙協(xié)議3篇
- 2025年度新能源公司股權轉(zhuǎn)讓及技術合作合同3篇
- 二零二五年度石油化工機械維修保障協(xié)議2篇
- 二零二五年度全屋衣柜定制與售后保障服務合同3篇
- 2025年度生豬養(yǎng)殖與農(nóng)業(yè)保險產(chǎn)品開發(fā)合作協(xié)議2篇
- 2025年度離婚后雙方情感修復及溝通協(xié)議3篇
- 草地調(diào)查規(guī)劃學知到智慧樹章節(jié)測試課后答案2024年秋東北農(nóng)業(yè)大學
- 2024年礦產(chǎn)資源開發(fā)咨詢服務合同
- 上海市2024-2025學年高一語文下學期期末試題含解析
- 建筑物拆除的拆除工廠考核試卷
- 廣東省深圳市2023-2024學年高二上學期期末測試英語試卷(含答案)
- 乘風化麟 蛇我其誰 2025XX集團年終總結暨頒獎盛典
- 人教版一年級數(shù)學2024版上冊期末測評(提優(yōu)卷一)(含答案)
- 醫(yī)療護理員理論知識考核試題題庫及答案
- 湖北省荊州市八縣市區(qū)2023-2024學年高二上學期1月期末聯(lián)考數(shù)學試題 附答案
- 2024年人教版八年級歷史下冊期末考試卷(附答案)
- Python語言基礎與應用學習通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論