【正文】
實(shí)現(xiàn)調(diào)出相應(yīng)窗體或執(zhí)行相應(yīng)操作。 劉芳 小型酒店管理系統(tǒng) 16 使用 Button 對象的 Key 屬性標(biāo)識被單擊的按鈕。例如,在主窗體模塊中單擊工具欄中的按鈕,發(fā)生 ButtonClick 事件,并用 Key 屬性標(biāo)識被單擊的按鈕。代碼如下: Private Sub Toolbar1_ButtonClick(ByVal Button As ) Select Case Case DJ zsdj_Click 39。調(diào)入住宿登記 Case TF tf_Click 39。調(diào)入退宿結(jié)賬 Case CX zscx_Click 39。調(diào)入住宿查詢 Case TX sftx_Click 39。調(diào) 入提醒 Case CXDL 39。重新登錄 Load main_Login Case exit If MsgBox(確定退出該系統(tǒng)? , 4, 系統(tǒng)提示 ) = vbYes Then End End If End Select End Sub 單擊主窗體中的菜單項(xiàng),通過菜單命令實(shí)現(xiàn)調(diào)出各個(gè)窗體或執(zhí)行相應(yīng)操作,在各子菜單的 Click 事件下實(shí)現(xiàn)相應(yīng) 操作。部分代碼如下: Private Sub sjbf_Click() 39。調(diào)入數(shù)據(jù)備份 = False End Sub Private Sub sjhf_Click() 39。數(shù)據(jù)恢復(fù) 玉林師范學(xué)院本科生畢業(yè)生論文(設(shè)計(jì)) 17 End Sub ?? Private Sub ma_Click() 39。調(diào)入密碼設(shè)置 = False End Sub 住宿登記模塊設(shè) 計(jì)與實(shí)現(xiàn) 程序啟動后,選擇菜單欄中“住宿管理” /“住宿登記”命令,或直接單擊工具欄中的“登記”按鈕,將打開住宿登記模塊。在住宿登記模塊中能夠自動生成住宿登記憑證號碼,提供空閑房間供用戶選擇,實(shí)現(xiàn)客人住宿登記,收取客人預(yù)交宿費(fèi),實(shí)際宿費(fèi)、宿費(fèi)提醒時(shí)間、退宿時(shí)間、打印住宿登記單據(jù)。住宿登記模塊界面如下圖 所示: 圖 住宿登記窗體界面 Fig. Acmodation Registration form interface 住宿登記模塊主要用于錄入客人入住信息,此窗體包含了大量的文 本框和時(shí)間控件等,但這些控件功能都比較簡單,沒有復(fù)雜的屬性設(shè)置。 打開住宿登記模塊,單擊“登記”按鈕,開始進(jìn)行住宿登記?!暗怯洝卑粹o的 Click 事件主要實(shí)現(xiàn)設(shè)置控件有效和無效、自動生成登記憑證號碼等功能。自動生成登記憑證號碼的主要代碼發(fā)下: 劉芳 小型酒店管理系統(tǒng) 18 = Provider=。Data Source= amp。 amp。 \。Persist Security Info=False = select * from tb_djb order by 憑證號碼 39。按憑證號碼排序數(shù)據(jù) If Not Then 39。移動記錄集到最后一條記錄 If = Then = Fdate amp。 d amp。 Format(1, 000) 39。當(dāng) lsph值為空為憑證號碼文本框賦值 If Then 39。當(dāng) lsph 值不空時(shí) = Month(Fdate) 39。把當(dāng)前月份賦給 y1 = Month(Left(, 10)) 39。把 lsph 中的月份賦給 y2 If = Then 39。如果 y1 文本框中內(nèi)容與 y2 相同 = Fdate amp。 d amp。 Format(Val(Right(, 3)) + 1, 000) 39。為憑證號碼文本框賦值 = Val(Right(, 3)) + 1 39。text1 中存儲 lsph 文本框中后三位數(shù) End If If Then 39。如果 y1 文本框中內(nèi)容與 y2 不同 = Fdate amp。 d amp。 Format(1, 000) 39。為憑證號碼文本框賦值 End If End If 當(dāng)住宿信息登記完成后,“打印”按鈕處于可用狀態(tài),可以單擊“打印”按鈕打印住宿證。主要代碼如下: Private Sub print_Click() On Error GoTo 1 39。出錯(cuò)轉(zhuǎn)向標(biāo)簽“ 1” Dim X As Printer 39。打印住宿登記單據(jù) 玉林師范學(xué)院本科生畢業(yè)生論文(設(shè)計(jì)) 19 = 8000: = 8000 39。設(shè)置高度和寬度 = 1100: = 300 39。設(shè)置打印位置 = 12 39。設(shè)置字體大小 桂湖酒店客房 (住宿證 ) 39。打印文字 Dim A, B, C, d As Integer 39。定義變量 A = 100: B = 500: C = 4800: d = 400 39。為變量賦值 = 10 39。設(shè)置字體大小 = 100 + A 39。設(shè)置打印橫坐標(biāo) = B + 200 39。設(shè)置打印縱坐標(biāo) d amp。 amp。 t amp。 NO. amp。 39。打印日期、時(shí)間和憑證號碼 B = B + d 39。為變量 B 賦值 ?? (A, B + 100)(C, B + 100) 39。打印一條直線 = 100 + A = B + 200 操作員 : amp。 amp。 歡迎光臨 39。輸出給打印機(jī) Exit Sub If = 482 Then MsgBox 請連接打印機(jī)! , , 系統(tǒng)提示 End If End Sub 調(diào)房登記 模塊設(shè)計(jì)與實(shí)現(xiàn) 在主窗體中,選擇住宿管理菜單下的調(diào)房登記項(xiàng),將進(jìn)入調(diào)房登記模塊。在調(diào)房登記模塊中選擇客人入住的房間號和空閑房間號,實(shí)現(xiàn)調(diào)房登記,系統(tǒng)只允許調(diào)換等價(jià)客房。調(diào)房登記界面如圖 所示: 劉芳 小型酒店管理系統(tǒng) 20 圖 調(diào)房登記窗體界面 Fig. Housing Register Transfer form interface 調(diào)房登記模塊主要實(shí)現(xiàn)對客人房間進(jìn)行調(diào)換的過程,源房間號列表是查詢登記表中當(dāng)前所有住宿客人的房間號碼,在選擇源房間號后,實(shí)現(xiàn)生成目標(biāo)房間號。 主要代碼如下 Private Sub Combo3_Click() 39。清空 Combo2 中的內(nèi)容 If Then 39。如果 Combo3 不為空 ?? End If 39。賦值給 等 With 39。with 快 If .Fields(憑證號碼 ) Then = .Fields(憑證號碼 ) 39。為 “憑證號碼 ”字段賦值 ?? End With 39。結(jié)束 with 快 End If End If = True 39。Combo2 可用 玉林師范學(xué)院本科生畢業(yè)生論文(設(shè)計(jì)) 21 = True 39。Texbz 可用 End If End Sub 追加押金模塊設(shè)計(jì) 在主窗體中,選擇住宿管理菜單下的追加押金項(xiàng),將進(jìn)入追加押金模塊。在“憑證號碼”下拉列表框中選擇客人入住 的憑證號碼,在“追加押金”文本框中輸入客人續(xù)交的押金后,在相應(yīng)的文本框中將顯示客人的入住信息,并自動計(jì)算宿費(fèi)提醒日期和時(shí)間,還可打印追加押金票據(jù)。追加押金界面如圖 所示: 圖 追加押金窗體界面 Fig. Additional Deposit form interface 在窗體的 A 事件中,主要實(shí)現(xiàn)查詢數(shù)據(jù)表中住宿客人信息,對“憑證號碼”列表框賦值。主要代碼如下: Private Sub Form_Activate() Dim i As Integer = (4).Text 39。賦值給 ,顯示當(dāng)前操作員 39。查詢住宿登記信息 = select 憑證號碼 from tb_djb where 標(biāo)志 = 39。139。order by 憑證號碼 劉芳 小型酒店管理系統(tǒng) 22 39。刷新記錄 If 0 Then 39。如果記錄數(shù)大于 0 For i = 1 To 39。循環(huán)從 1 到記錄數(shù)值 (憑證號碼 ).Value 39。從 Combo1 中添加項(xiàng)目 39。記錄下移 Next i End If End Sub 在追加押金模塊中單擊“確定”按扭,將把追加押金信息保存在數(shù)據(jù)表中,自動計(jì)算新的提醒日期,并設(shè)定其他控件的有效和無效。部分代碼如下: Private Sub Command1_Click() 39。保存追加押金信息 If And Then 39。查詢住宿登記信息 ?? (預(yù)收金額 ) = Val() + Val() 39。把已收押金和追加押金的和賦給預(yù)收金額字段 ?? 39。刷新數(shù)據(jù) 39。編 輯住宿登記預(yù)收信息 ?? MsgBox 請?zhí)顚懲暾臄?shù)據(jù) ,再保存 !, , 系統(tǒng)提示 39。如果憑證號碼為空或追加押金為空,提示消息 End If End Sub 系統(tǒng)維護(hù)模塊的具體實(shí)現(xiàn) 系統(tǒng)維護(hù)模塊包括子模塊數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)和初始化。 數(shù)據(jù)備份模塊,可以將系統(tǒng)的所有數(shù)據(jù)庫內(nèi)容都備份到指定的備份文件夾玉林師范學(xué)院本科生畢業(yè)生論文(設(shè)計(jì)) 23 中。窗體如下圖 所示: 圖 數(shù)據(jù)備份界面 Fig. surface of Data backup 部分代 碼如下: Private Sub Command1_Click() A = MsgBox(確定備份數(shù)據(jù)? , 4, 系統(tǒng)提示 ) If A = vbYes Then = False = True = UBound(workarea) = For Counter = LBound(workarea) To UBound(workarea) workarea(Counter) = initial value amp。 Counter = Counter Open str1 For Binary As 1 Open str2 For Binary As 2 Do While Not EOF(1) Get 1, , char Put 2, , char Loop Close Next Counter = MsgBox 數(shù)據(jù)庫備份成功! , , 系統(tǒng)提示 劉芳 小型酒店管理系統(tǒng) 24 = True End If End Sub 數(shù)據(jù)恢復(fù)模塊,可以將備份文件夾中的數(shù)據(jù)庫內(nèi)容恢復(fù)到原來的數(shù)據(jù)庫中。如下圖 所示: 圖 數(shù)據(jù)恢復(fù)界面 Fig. The surface of Data recovery 主要代碼如下: Private Sub Command1_Click() A = MsgBox(確認(rèn)恢復(fù)數(shù)據(jù)庫? , 4, 系統(tǒng)提示 ) If A = vbYes Then = False = True 39。ProgressBar 控件通過從左到右用一些方塊填充矩形來表示一個(gè)較長操作的進(jìn)度。 = UBound(worka