酒店管理信息系统_第1页
酒店管理信息系统_第2页
酒店管理信息系统_第3页
酒店管理信息系统_第4页
酒店管理信息系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z酒店管理信息系统系统平台:Windows2000数据库效劳器:MicrosoftSQLServer2000开发工具:VisualBasic6.0系统开发人员:⒈编写目的酒店在正常的运营中需要对客房资源、顾客信息、结算信息进展管理,利用宾馆管理信息系统及时了解各个环节**息的变更,有利于提高管理效率。⒉系统功能分析

系统开发的总体任务是实现宾馆各种信息的系统化、规*化和自动化。主要完成功能:●有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、以及单独卫生间等。●客房标准信息的修改、查询等。●客房根本信息的输入,包括客房编号、客房类型、客房位置、客房单价、备注等。●客房根本信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。●剩余客房信息的查询等。●订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客**、顾客**、入住日期、折扣、备注信息等。●订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客**、顾客**、入住日期、折扣、备注信息等。●结算信息的输入,包括客房编号、客房种类、位置、客房单价、顾客**、顾客**、入住日期、折扣、结算日期、备注信息等。●结算信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客**、顾客**、入住日期、折扣、结日期、备注信息等。⒊系统功能模块设计

按构造化程序设计思想,分析得出如下系统功能模块图

宾馆管理信息系统结算信息管理订房信息管理客房信息管理

系统管理

结算信息查询

结算信息修改

结算信息添加

订房信息查询

订房信息修改

订房信息添加剩余客房信息查询

设置客房信息

设置客房标准

密码管理

用户管理客房信息查询客房信息修改客房信息添加客房标准修改客房标准添加

图Ⅰ系统功能模块图⒋数据库设计数据库设计步骤:●

数据库需求分析●

数据库概念构造设计●

数据库逻辑构造设计①数据库需求分析分析调查有关宾馆管理信息需求的根底上得本系统所处理的数据流程

客房标准设置根本信息输入客房登记根本信息录入客房信息管理顾客登记订房信息管理订房信息管理结算信息输入结算信息管理客房信息返回图Ⅱ宾馆管理信息系统数据流程图

针对一般宾馆管理信息系统的需求,通过对宾馆管理过程的内容和流程分析,设计如下面所示的数据项和数据构造:●

客房标准信息,包括的数据项有:标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、、单独卫生间等。●

客房信息,包括的数据项有:客房编号、客房种类、客房位置、客房单价、备注等。●

订房信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客**、顾客**、入住时间、折扣、备注等。●

结算信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客**、顾客**、入住时间、折扣、结算时间、备注等。②数据库概念构造设计

本系统根据以上的设计规划出的实体有:客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。各个实体具体的描述E-R图如下:客房标准信息实体标准编号标准名称床位数量客房单价

客房标准信息实体E-R图客房信息实体客房标准客房编号客房位置客房单价

客房信息实体E-R图订房信息实体客房信息顾客信息折

扣入住时间订房信息实体E-R图结算信息实体客房信息顾客信息结算时间结算金额结算信息实体E-R图客房标准信息客房登记客房信息管理订

房订房信息管理结算信息管理客房结算实体之间关系E-R图③数据库逻辑构造设计

首先将宾馆管理信息系统的数据库概念构造转化为SQL2000数据库系统所支持的实际数据模型,即:数据库的逻辑构造。其各个表格的设计结果如下列名数据类型可否为空说明TypeidVarcharNOTNULL标准编号TypenameVarcharNOTNULL标准名称AreaNumericNULL房间面积BednumNumericNULL床位数量HairconditionVarcharNULL是否有空调HtelephoneVarcharNULL是否有HtelevisionVarcharNULL是否有电视HtoiletVarcharNULL是否有单独卫生间PriceNumericNULL单价Roomtype客房标准信息表列名数据类型可否为空说明roomNOVarcharNOTNULL客房编号RoomtypeVarcharNOTNULL客房种类RoompositionVarcharNULL客房位置RoompriceNumericNULL单价PutupVarcharNOTNULL是否被预定RoommemoTe*tNULL备注Rooms客房信息表列名数据类型可否为空说明BooknoVarcharNOTNULL订房编号CustomnameVarcharNOTNULL顾客**CustomIDVarcharNOTNULL**RoomnoVarcharNOTNULL客房编号IndateDatetimeNULL入住日期DiscountNumericNULL折扣InmenoTe*tNULL备注CheckdateDatetimeNULL结算日期AmountNumericNULL金额Bookin订房信息表⒌数据库构造的实现利用SQL2000数据库系统中的查询分析实现数据库的逻辑构造,其表格如下:创立系统用户表格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]

创立客房标准信息表格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]创立客房信息表格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]创立订房信息表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]⒍宾馆管理信息系统具体程序实现⑴创立公用模块Module1.bas

添加公共数据操作函数,用以执行各种SQL语句。添加函数E*ecuteSQL,代码如下:PublicFunctionE*ecuteSQL(ByValSQLAsString,MsgStringAsString)_AsADODB.Recordset‘执行SQL语句,并返回记录集对象DimnAsADODB.ConnectionDimrstAsADODB.RecordsetDimsTokens()AsString‘异常处理OnErrorGoToE*ecuteSQL_Error’‘用Split函数产生一个包含各个子串的数组

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用来保存当前按键

‘转换成Tab键

SendKeys〞{TAB}〞

EndIfEndsub‘添加全局变量,用来记录各个窗口的读写状态,代码如下:PublicflagTeditAsBoolean‘标示是否进入修改的窗体PublicflagReditAsBooleanPublicflagBeditAsBooleanPublicflagCeditAsBooleanPublicgintCmodeAsIntegerPublicgintTmodeAsInteger’记录是添加还是修改状态,1为添加,2为修改PublicgintRmodeAsIntegerPublicgintBmodeAsIntegerPublicflagSeditAsBoolean⑵系统用户管理模块的创立

用户管理模块主要实现:

·用户登陆。

·添加用户。·修改用户

具体客房标准添加代码:PrivateSubForm_Load()‘载入窗体后,判断所处状态

DimintCountAsInteger

DimMsgTe*tAsString

DimiAsInteger

IfgintTmode=1Then‘判断是否属于添加状态

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

Fori=0To3

bo1(i).AddItem〞否〞

bo1(i).AddItem〞是〞

bo1(i).ListInde*=0

Ne*ti

ElseIfgintTmode=2Then‘判断是否处于修改状态

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()’用户输入内容完毕后,单击cmdSave按钮触发Click事件

DimintCountAsInteger

DimsMegAsString

DimMsgTe*tAsString

ForintCount=0To4‘判断是否输入内容

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

SelectCaseintCount

Case0

sMeg=〞标准编号〞

Case1

sMeg=〞标准名称〞

Case2

sMeg=〞房间面积〞

Case3

sMeg=〞床位数量〞

Case4

sMeg=〞床位单价〞

EndSelect

sMeg=sMeg&〞不能为空!〞

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

t*tItem(intCount).SetFocus

E*itSub

Endif

Ne*tintCount‘判断输入内容是否为数字

ForintCount=2To4

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

SelectCaseintCount

Case2

sMeg=〞房间面积〞

Case3

sMeg=〞床位数量〞

Case4

sMeg=〞床位单价〞

EndSelect

sMeg=sMeg&〞请输入数字!〞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*“已经存在此标准编号的记录!〞,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*〞已经存在一样客房标准的记录!〞,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‘更新数据库

mrc.Close

ifgintTmode=1Then‘判断是否属于添加状态

MsgBo*“添加纪录成功!〞,vbOKOnly+vbE*clamtion,“添加记录〞

ForintCount=0To4

t*tItem(intCount)=〞〞‘去除已经输入的内容

Ne*tintCount

ForintCount=0To3

bo1(intCount).ListInde*=0

Ne*tintCount

mblChange=False’判断是否翻开窗口

ifflagTeditThen

UnloadfrmRoomtype

frmRoomtype.t*tSQL=“select*fromroomtype〞

frmRoomtype.Show

EndIf

ElseIfgintTmode=2Then‘判断是否处于修改状态

UnloadMe

IfflagTeditThen

UnloadfrmRoomtype

EndIf

frmRoomtype.t*tSQL=〞select*fromroomtype〞

frmRoomtype.Show

EndIf

EndSubPrivateSubt*tItem_GotFocus(Inde*AsInteger)’文本框获得焦点时触发该事件,即自动选中输入的内容,便于修改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)‘输入完内容,单击回车键将自动进入下一个文本框,触发文本框的Keydown事件

EnterToTabKeyCodeEndSub⑶修改客房标准窗体的创立PrivateSubFrom_Load()ShowTitleShowDataflagTedit=TrueEndSubPrivateSubShowTitle()‘调用showTitle函数,显示表头DimiAsIntegerWithmsgList

.Cols=10

.Te*tMatri*(0,1)=〞标准编号〞

.Te*tMatri*(0,2)=〞标准名称〞

.Te*tMatri*(0,3)=〞房间面积〞

.Te*tMatri*(0,4)=〞床位数量〞

.Te*tMatri*(0,5)=〞是否有空调〞

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

.Te*tMatri*(0,7)=〞是否有电视〞

.Te*tMatri*(0,8)=〞是否有卫生间〞

.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()‘调用showData函数,显示记录列表

DimiAsInteger

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)‘根据需要设置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)‘选择记录,然后单击鼠标右键,触发MouseUp事件

IfButton=2AndShift=0Then

PopupMenufMainFrom.menuRoomtype

EndIfEndSubPrivateSubmenuModifyroomtype_Click()

DimintCountAsInteger

IfflagTeditThen

‘判断是否翻开记录窗体

IffrmRoomtype.msgList.Rows>1Then

fintTmode=2‘设置为修改状态

‘记下选择记录

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()‘窗体变化时,调整标签和表格位置,使标签处于窗体的最上方,而表格始终处于标签下方

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⑸客房信息管理模块的创立

客房信息管理模块主要实现如下功能:

·添加客房信息

·修改客房信息

·删除客房信息

·查询客房信息

具体实现代码如下:PrivateSubFrom_Load()‘载入窗体时,自动添加客房信息种类

DimsSqlAsString

DimintCountAsInteger

DimMsgTe*tAsString

DimmrccAsADODB.Recordset

IfgintRmode=1Then‘判断是否处于添加状态

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‘显示记录内容

Else

MsgBo*“请先进展客房标准设置!〞,vbOKOnly+vbE*clamation,“警告〞

cmdSave.Enabled=False

E*itSub

EndIf

mrc.Close

ElseIfgintRmode=2Then‘判断是否处于修改状态

Setmrcc=E*ecuteSQL(t*tSQL,MsgTe*t)‘设置SQL语句显示当前选择记录

Ifmrcc.EOF=FalseThen

Withmrcc

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

ForintCount=1To2

IfNotIsNull(.Fields(intCount+1))Then‘判断内容是否为空

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()‘单击保存按钮触发事件

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*“已经存在此客房编号的记录!〞,vbOKOnly+vbE*clamation,“警告〞

t*tItem(0).SetFocus

E*itSub

EndIf

mrc.Close

EndIf

IfgintRmode=2Then‘判断是否处于修改状态

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‘为数据库对象添加记录

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〞‘重新显示数据

frmRoom.Show

EndIf

ElseIfgintRmode=2Then

UnloadMe

IfflagReditThen

UnloadfrmRoom

EndIf

frmRoom.t*tSQL=〞select*fromrooms〞

frmRoom.Show

EndIfEndSub·修改客房信息PrivateSubmenuModifyroom_Click()‘选择修改房间信息,触menuModifyroom的Click事件,程序判断为修改状态后,首先删除原有记录,然后把新内容参加到数据库中

DimintCountAsInteger

IfflagReditThen‘判断记录窗体是否翻开

IffrmRoom.msgList.Rows>1Then‘判断客房信息列表内容是否为空

gintRmode=2‘设置为修改状态‘纪录当前记录位置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‘判断客房信息列表内容是否为空IfMsgBo*(“真的要删除这条文件记录么.〞,vbOKCancel+vbE*clamation,“警告〞)=vbOKThen

‘记载当前记录位置t*tSQL=〞deletefromroomswhereroomNO=‘〞&Trim(frmRoom.msgList.Te*tMatri*(intCount,1)&〞’〞

Setmrc=E*ecuteSQL(t*tSQL,MsgTe*t)‘执行删除操作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()‘设置完查询内容和方式后,单击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⑹订房信息管理模块的创立订房信息管理模块主要实现如下功能:·查询剩余客房信息·添加订房信息·修改订房信息·删除订房信息·查询订房库信息具体实现代码如下:PrivateSubFrom_Load()‘载入窗体时,程序将自动参加客房种类和客房单价

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()‘添加记录到数据库中

DimintCountAsInteger

DimsMegAsString

DimmrccAsADODB.Recordset

DimMsgTe*tAsString

ForintCount=0To3‘判断输入内容是否为空

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*“请输入数字〞,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⑺结算信息管理模块的创立结算信息管理模块主要实现如下功能:·添加结算信息·修改结算信息·查询结算信息具体实现代码如下:PrivateSubFrom_Load()‘窗体载入时,自动参加所有未结算客房信息

DimsSqlAsString

DimintCountAsInteger

DimMsgTe*tAsString

IfgintCmode=1Then‘判断是否处于添加状态

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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论