⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmcustpayoff.frm

📁 酒店课房管理系统。完成酒店的客房入住
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         Top             =   360
         Width           =   765
      End
   End
   Begin VB.Frame Frame2 
      Caption         =   "顾客住房信息"
      Height          =   1815
      Left            =   600
      TabIndex        =   2
      Top             =   1200
      Width           =   3135
      Begin VB.Label labBreakfastInfo 
         AutoSize        =   -1  'True
         ForeColor       =   &H00C000C0&
         Height          =   195
         Left            =   1320
         TabIndex        =   17
         Top             =   1440
         Width           =   45
      End
      Begin VB.Label Label4 
         AutoSize        =   -1  'True
         Caption         =   "使用早餐情况:"
         Height          =   195
         Left            =   120
         TabIndex        =   16
         Top             =   1440
         Width           =   1125
      End
      Begin VB.Label labUseDays 
         AutoSize        =   -1  'True
         ForeColor       =   &H00C000C0&
         Height          =   195
         Left            =   960
         TabIndex        =   9
         Top             =   1080
         Width           =   45
      End
      Begin VB.Label labBeginToUseDate 
         AutoSize        =   -1  'True
         ForeColor       =   &H00C000C0&
         Height          =   195
         Left            =   1320
         TabIndex        =   8
         Top             =   720
         Width           =   45
      End
      Begin VB.Label labCustName 
         AutoSize        =   -1  'True
         ForeColor       =   &H00C000C0&
         Height          =   195
         Left            =   600
         TabIndex        =   7
         Top             =   360
         Width           =   45
      End
      Begin VB.Label Label3 
         AutoSize        =   -1  'True
         Caption         =   "住房天数:"
         Height          =   195
         Left            =   120
         TabIndex        =   6
         Top             =   1080
         Width           =   765
      End
      Begin VB.Label Label2 
         AutoSize        =   -1  'True
         Caption         =   "入住房间日期:"
         Height          =   195
         Left            =   120
         TabIndex        =   5
         Top             =   720
         Width           =   1125
      End
      Begin VB.Label Label1 
         AutoSize        =   -1  'True
         Caption         =   "姓名:"
         Height          =   195
         Left            =   120
         TabIndex        =   4
         Top             =   360
         Width           =   405
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "请选择要顾客要结帐的房间号"
      Height          =   735
      Left            =   600
      TabIndex        =   0
      Top             =   360
      Width           =   3135
      Begin VB.ComboBox cboRoomNo 
         Height          =   315
         Left            =   120
         Style           =   2  'Dropdown List
         TabIndex        =   1
         Top             =   240
         Width           =   2415
      End
   End
End
Attribute VB_Name = "frmCustPayOff"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private cnnHotel As New ADODB.Connection
Private rsPayOff As New ADODB.Recordset
Private rsRooms As New ADODB.Recordset
Private Sub cboRoomNo_Click()
    Frame2.Caption = cboRoomNo.Text & "顾客的信息"
    Frame3.Caption = cboRoomNo.Text & "顾客应付费用"
    rsPayOff.Open "SELECT * FROM CustPayOff WHERE 顾客预定房间号='" & cboRoomNo.Text & "' AND 顾客状态='已经入住'", cnnHotel, adOpenKeyset, adLockOptimistic '打开记录集
    Set labCustName.DataSource = rsPayOff
    labCustName.DataField = "顾客姓名"
    Set labBeginToUseDate.DataSource = rsPayOff
    labBeginToUseDate.DataField = "顾客入住房间日期"
    Set labBreakfastInfo.DataSource = rsPayOff
    labBreakfastInfo.DataField = "顾客使用早餐情况"
    rsPayOff.Close   '关闭记录集
    
    labUseDays.Caption = CountUseDays & "  天"
    labBfCharge.Caption = ChargeBreakfast & "  元"
    labRoomCharge.Caption = UseRoomCharge & "  元"
    labTotalCharge.Caption = TotalCharge & " 元"
    
    labRoomNo.Caption = cboRoomNo.Text & "每晚价格:"
    labRoomNo.Visible = True
    Select Case Left(cboRoomNo.Text, 1)
        Case 1 To 10            '如果是1号房间到10号房间之间的房间
            labChargeRoom.Caption = "10元"
        Case 11 To 15           '如果是11号房间到15号房间之间的房间
            labChargeRoom.Caption = "15元"
        Case 16 To 20           '如果是16号房间到20号房间之间的房间
            labChargeRoom.Caption = "20元"
    End Select
    
End Sub

Private Sub cmdCancel_Click()
    Dim msg
    msg = MsgBox("确定要退出吗?", vbQuestion + vbOKCancel, "退出")
    If msg = vbOK Then
        Unload frmCustPayOff
    End If
End Sub

Private Sub cmdOk_Click()
    If cboRoomNo.Text = "" Then '如果没有选择房间
        MsgBox "请选择一个房间号!", vbInformation, "提示"
        cboRoomNo.SetFocus
        Exit Sub
    ElseIf Val(txtRealCharge.Text) < 0 Then  '如果实付金额小于0
        MsgBox "实付金额不能小于0!", vbInformation, "提示"
        txtRealCharge.SetFocus
        Exit Sub
    ElseIf Not IsNumeric(txtRealCharge.Text) Then  '如果实付金额不是数值类型
        MsgBox "实付金额不能为空且不能为非数值类型!", vbInformation, "错误"
        txtRealCharge.SetFocus
        Exit Sub
    End If
    
    rsPayOff.Open "SELECT * FROM CustPayOff WHERE 顾客预定房间号='" & cboRoomNo.Text & "' AND 顾客状态='已经入住'", cnnHotel, adOpenKeyset, adLockOptimistic '打开记录集
    rsRooms.Open "SELECT * FROM Rooms WHERE 房间号='" & cboRoomNo.Text & "'", cnnHotel, adOpenKeyset, adLockOptimistic '打开记录集
    
    cnnHotel.BeginTrans
        rsPayOff.Update "顾客退房日期", Year(Date) & "年" & Month(Date) & "月" & Day(Date) & "日"
        rsPayOff.Update "顾客住房天数", Val(labUseDays.Caption)
        rsPayOff.Update "顾客应付总金额", Val(labTotalCharge.Caption)
        rsPayOff.Update "顾客实付总金额", Val(txtRealCharge.Text)
        rsPayOff.Update "顾客状态", "已经退房"
        
        rsRooms.Update "房间预定日期", ""
        rsRooms.Update "房间状态", "空闲"    '修改房间状态
        rsRooms.Update "顾客姓名", ""
        rsRooms.Update "房间入住日期", ""
    cnnHotel.CommitTrans
    MsgBox cboRoomNo.Text & "顾客退房完成!", vbInformation, "提示"
    Unload frmCustPayOff
End Sub

Private Sub Form_Load()
    cnnHotel.Provider = "Microsoft.Jet.OLEDB.3.51"
    cnnHotel.Open "User ID=admin;Data Source=" & GetDBPath() '建立与数据库的连接
    rsRooms.Open "SELECT 房间号,房间状态 FROM Rooms WHERE 房间状态='已经入住'", cnnHotel, adOpenKeyset, adLockOptimistic   '打开新记录集
    Do While Not rsRooms.BOF And Not rsRooms.EOF
        cboRoomNo.AddItem rsRooms.Fields("房间号")  '在cboRoomNo 的下拉列表选项中加如当前的已经被预定的房间号
        rsRooms.MoveNext   '移到下一条记录
    Loop
    rsRooms.Close  '关闭记录集
End Sub

Private Sub Form_Unload(Cancel As Integer)
    cnnHotel.Close
End Sub

Private Function ChargeBreakfast()   '计算顾客使用早餐应该付的费用
    Dim i As Integer
    Dim charge As Single
    charge = 0
    For i = 1 To Len(labBreakfastInfo.Caption)
        Select Case Mid(labBreakfastInfo.Caption, i, 1)
            Case "A"                        '如果是A类早餐
                charge = charge + 1
            Case "B"                        '如果是B类早餐
                charge = charge + 1.2
            Case "C"                        '如果是C类早餐
                charge = charge + 1.6
            Case "D"                        '如果是D类早餐
                charge = charge + 2
            Case "E"                        '如果是E类早餐
                charge = charge + 2.5
       End Select
    Next i
    ChargeBreakfast = charge
End Function

Private Function CountUseDays()    '计算顾客使用房间的天数
    CountUseDays = Date - CDate(labBeginToUseDate.Caption)
End Function

Private Function UseRoomCharge()   '计算顾客使用房间应该付的费用
    Select Case Left(cboRoomNo.Text, 1)
        Case 1 To 10   '如果是1号房间到10号房间之间的房间
            UseRoomCharge = CountUseDays * 10
            Exit Function
        Case 11 To 15   '如果是11号房间到15号房间之间的房间
            UseRoomCharge = CountUseDays * 15
            Exit Function
        Case 16 To 20   '如果是16号房间到20号房间之间的房间
            UseRoomCharge = CountUseDays * 20
            Exit Function
    End Select
End Function

Private Function TotalCharge()   '计算总费用
    TotalCharge = UseRoomCharge + ChargeBreakfast '总费用是住房费用和早餐费用之和
End Function


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -