III. GIAO DIỆN VÀ MỘT SỐ ĐOẠN MÃ CHƯƠNG TRÌNH DEMO 1 Form đăng nhập:
4. Chức năng Đăng ký
Bao gồm các form: Đăng ký khách Chuyển phòng
Xem tình trạng phòng Xem thông tin phòng Xem thông tin khách Tìm kiếm
- Khai báo
Dim SuaFlag As Boolean Dim ThemMoiFlag As Boolean Dim BOOK As Byte
Dim clicked As Boolean
- Hộp chọn giới tính
Private Sub CboGT_Click() Dim rs1 As ADODB.Recordset If (CboGT.ListCount > 0) Then If (CboGT.ListIndex = 0) Then CboGT.Tag = "M"
ElseIf (CboGT.ListIndex = 1) Then CboGT.Tag = "W"
End If End If End Sub
- Hộp chọn tên quốc gia
Private Sub CboNation_Click() Dim rs1 As ADODB.Recordset If (CboNation.ListCount > 0) Then
sql = "select * from QG WHERE TENNUOC='" & CboNation.List(CboNation.ListIndex) & "'"
CboNation.Tag = ""
Set rs1 = pConnection.Execute(sql) If (Not rs1.EOF) Then
CboNation.Tag = rs1!MANUOC End If
rs1.Close
Set rs1 = Nothing End If
End Sub
- Hộp chọn phương thức thanh toán
Private Sub CboPayment_Click() Dim rs1 As ADODB.Recordset If (CboPayment.ListCount > 0) Then
sql = "select * from Payment WHERE Detail='" & CboPayment.List(CboPayment.ListIndex) & "'"
CboPayment.Tag = ""
Set rs1 = pConnection.Execute(sql) If (rs1.EOF = False) Then
CboPayment.Tag = rs1!PaymentID rs1.Close Set rs1 = Nothing End If End If End Sub
- Xoá thông tin của khách đăng ký
Private Sub CmdXoa_Click()
If (VSDS.Row > 0 And VSDS.Row < VSDS.Rows) Then sql = "DELETE FROM CUR_CUST WHERE CUSTOMERID=" & Trim(VSDS.TextMatrix(VSDS.Row, 0)) & ""
pConnection.Execute (sql) Call LoadCustomer SetButton False ThemMoiFlag = False SuaFlag = False End If End Sub - Các hàm được gọi
If (VIETANH = True) Then Call EnglishVietNam(Me.Name) Else Call VietNamEnglish(Me.Name) End If Call LoadCusID Call LoadGioiTinh Call LoadNation Call LoadPayMent Call init Call ClearItem LoadCustomer clicked = False ThemMoiFlag = False SuaFlag = False End Sub
Private Sub LoadGioiTinh() CboGT.AddItem "Man" CboGT.AddItem "Woman" End Sub
Private Sub LoadNation()
Dim rs1 As ADODB.Recordset sql = "select * from QG"
Set rs1 = pConnection.Execute(sql) CboNation.Clear
While Not rs1.EOF
CboNation.AddItem rs1!Tennuoc rs1.MoveNext
Wend rs1.Close
Set rs1 = Nothing
If (CboNation.ListCount > 0) Then CboNation.ListIndex = 0 sql = "select * from QG WHERE TENNUOC='" & CboNation.List(CboNation.ListIndex) & "'"
CboNation.Tag = ""
Set rs1 = pConnection.Execute(sql) If (Not rs1.EOF) Then
CboNation.Tag = rs1!MANUOC End If
rs1.Close
Set rs1 = Nothing End Sub
+ Thông tin giá phòng
Private Sub LoadRate(RoomNumber As String) Dim rs1 As ADODB.Recordset
Dim STT As Integer
sql = "Select * From ROOMRATE WHERE ROOMNUM='" & Trim(RoomNumber) & "'"
Set rs1 = pConnection.Execute(sql) TxtRate.Text = ""
If Not rs1.EOF Then
TxtRate.Text = Str(rs1!Rate) Else
MsgBox "Invalid Room number !" TxtRoomNumber.Text = "" TxtRoomNumber.SetFocus End If rs1.Close Set rs1 = Nothing End Sub
+ Đánh chỉ số ID cho khách
Private Sub LoadCusID()
sql = "Select Max(CUSTOMERID) as SL From CUSTOMER"
Dim rs1 As ADODB.Recordset Set rs1 = pConnection.Execute(sql) If Not rs1.EOF Then
If (IsNull(rs1!SL)) Then TxtCusID.Text = "1" Else TxtCusID.Text = rs1!SL + 1 End If Else TxtCusID.Text = "1" End If rs1.Close Set rs1 = Nothing End Sub - Cập nhật thông tin khách mới
Private Sub CmdNew_Click() Call ClearItem ThemMoiFlag = True SuaFlag = False SetButton True End Sub - Sửa thông tin khách
Private Sub CmdSua_Click()
If (VSDS.Rows > 1 And VSDS.Row > 0 And VSDS.Row < VSDS.Rows) Then
ThemMoiFlag = False SetButton True
Exit Sub Else
MsgBox "Please Select a customer to modify !" (Thông báo khi chưa chọn đối tượng để sửa thông tin)
Exit Sub End If End Sub
- Huỷ thông tin khách vừa nhập
Private Sub CmdHuy_Click() SetButton False
ThemMoiFlag = False SuaFlag = False Call VSDS_Click End Sub
- Thoát khỏi form nhập thông tin khách đăng ký thuê phòng
Private Sub CmdThoat_Click() SuaFlag = False
ThemMoiFlag = True Unload Me
End Sub
- Hộp text nhập số phòng đăng ký của khách
Private Sub TxtRoomNumber_LostFocus()
If ThemMoiFlag = False And SuaFlag = False Then clicked = False
Exit Sub End If
If clicked = True Then clicked = False
Exit Sub End If
If CheckRoom(TxtRoomNumber.Text) = False Then MsgBox "Room number invalid !"
TxtRoomNumber.SetFocus Exit Sub
End If
If RoomBusy(TxtRoomNumber.Text) = True Then
MsgBox "The Room is not avaiable !" & " Please Choice another room !" TxtRoomNumber.SetFocus Exit Sub End If LoadRate (TxtRoomNumber.Text) End Sub
- Hộp chọn phương thức thanh toán
Private Sub LoadPayMent() Dim rs1 As ADODB.Recordset Dim STT As Integer
sql = "Select * From PayMent" Set rs1 = pConnection.Execute(sql) CboPayment.Clear
While Not rs1.EOF
CboPayment.AddItem rs1!Detail rs1.MoveNext
Wend rs1.Close
Set rs1 = Nothing
sql = "select * from Payment WHERE Detail='" & CboPayment.List(CboPayment.ListIndex) & "'"
CboPayment.Tag = ""
Set rs1 = pConnection.Execute(sql) If (rs1.EOF = False) Then
CboPayment.Tag = rs1!PaymentID rs1.Close
Set rs1 = Nothing End If
End Sub
Private Sub SetButton(B As Boolean) CmdGhi.Visible = B CmdHuy.Visible = B CmdNew.Visible = Not B CmdXoa.Visible = Not B CmdSua.Visible = Not B CmdThoat.Visible = Not B End Sub
- Kiểm tra và lưu thông tin vừa nhập
Private Sub CmdGhi_Click() Dim rs1 As ADODB.Recordset Dim Maloaihh As String
If Trim(TxtRoomNumber.Text) = "" Or CheckRoom(TxtRoomNumber.Text) = False Then
MsgBox "Invalid Room number" TxtRoomNumber.SetFocus Exit Sub
End If
MsgBox "First Name Invalid" TxtFirstName.SetFocus Exit Sub
End If
If Trim(TxtLastName.Text) = "" Then MsgBox "Last Name Invalid" TxtLastName.SetFocus Exit Sub
End If
If Trim(CboNation.Tag) = "" Then MsgBox "National Invalid" CboNation.SetFocus
Exit Sub End If
If Trim(CboPayment.Tag) = "" Then MsgBox "Payment Invalid"
CboPayment.SetFocus Exit Sub
End If
If Trim(CboGT.Tag) = "" Then MsgBox "Invalid Sexual" CboGT.SetFocus
Exit Sub End If
If (ThemMoiFlag = True) Then
sql = "INSERT INTO CUSTOMER (CUSTOMERID,LASTNAME,FIRSTNAME,BIRTHDAY,NATION,SEXSU AL,DATE_IN,DATE_OUT,PAYMENT,VISA_NUM,PASSPORT,TIME_IN ,TIME_OUT,ROOMNUM,COMPANY,RATE,BOOK) VALUES(" & Trim(TxtCusID.Text) & ",'" & Trim(TxtLastName.Text) & "','" &
Trim(TxtFirstName.Text) & "','" & TxtBirthDay.Value & "','" & Trim(CboNation.Tag) & "','" & CboGT.Tag & "','" & TxtDateIn.Value & "','" & TxtDateOUT.Value & "','" & Trim(CboPayment.Tag) & "','" & Trim(TxtVisaNum.Text) & "','" & TxtPassNum.Text & "','" & txtTimeIn.Value & "','" & TxtTimeOut.Value & "','" & Trim(TxtRoomNumber.Text) & "','" & Trim(TxtCompany.Text) & "'," & Trim(TxtRate.Text) & "," & BOOK & ")"
pConnection.Execute (sql)
sql = "INSERT INTO CUR_CUST (CUSTOMERID,LASTNAME,FIRSTNAME,BIRTHDAY,NATION,SEXSU
AL,DATE_IN,DATE_OUT,PAYMENT,VISA_NUM,PASSPORT,TIME_IN ,TIME_OUT,ROOMNUM,COMPANY,RATE,BOOK) VALUES(" & Trim(TxtCusID.Text) & ",'" & Trim(TxtLastName.Text) & "','" & Trim(TxtFirstName.Text) & "','" & TxtBirthDay.Value & "','" & Trim(CboNation.Tag) & "','" & CboGT.Tag & "','" & TxtDateIn.Value & "','" & TxtDateOUT.Value & "','" & Trim(CboPayment.Tag) & "','" & Trim(TxtVisaNum.Text) & "','" & TxtPassNum.Text & "','" & txtTimeIn.Value & "','" & TxtTimeOut.Value & "','" & Trim(TxtRoomNumber.Text) & "','" & Trim(TxtCompany.Text) & "'," & Trim(TxtRate.Text) & "," & BOOK & ")"
pConnection.Execute (sql) Call LoadCustomer
SetButton False
ThemMoiFlag = False SuaFlag = False ElseIf SuaFlag = True Then
sql = "DELETE FROM CUR_CUST WHERE CUSTOMERID=" & Trim(VSDS.TextMatrix(VSDS.Row, 0)) & ""
sql = "DELETE FROM CUSTOMER WHERE CUSTOMERID=" & Trim(VSDS.TextMatrix(VSDS.Row, 0)) & ""
pConnection.Execute (sql)
sql = "INSERT INTO CUSTOMER
(CUSTOMERID,LASTNAME,FIRSTNAME,BIRTHDAY,NATION,SEXSU AL,DATE_IN,DATE_OUT,PAYMENT,VISA_NUM,PASSPORT,TIME_IN ,TIME_OUT,ROOMNUM,COMPANY,RATE,BOOK) VALUES(" & Trim(TxtCusID.Text) & ",'" & Trim(TxtLastName.Text) & "','" & Trim(TxtFirstName.Text) & "','" & TxtBirthDay.Value & "','" & Trim(CboNation.Tag) & "','" & CboGT.Tag & "','" & TxtDateIn.Value & "','" & TxtDateOUT.Value & "','" & Trim(CboPayment.Tag) & "','" & Trim(TxtVisaNum.Text) & "','" & TxtPassNum.Text & "','" & txtTimeIn.Value & "','" & TxtTimeOut.Value & "','" & Trim(TxtRoomNumber.Text) & "','" & Trim(TxtCompany.Text) & "'," & Trim(TxtRate.Text) & "," & BOOK & ")"
pConnection.Execute (sql)
sql = "INSERT INTO CUR_CUST
(CUSTOMERID,LASTNAME,FIRSTNAME,BIRTHDAY,NATION,SEXSU AL,DATE_IN,DATE_OUT,PAYMENT,VISA_NUM,PASSPORT,TIME_IN ,TIME_OUT,ROOMNUM,COMPANY,RATE,BOOK) VALUES(" & Trim(TxtCusID.Text) & ",'" & Trim(TxtLastName.Text) & "','" & Trim(TxtFirstName.Text) & "','" & TxtBirthDay.Value & "','" & Trim(CboNation.Tag) & "','" & CboGT.Tag & "','" & TxtDateIn.Value & "','" & TxtDateOUT.Value & "','" & Trim(CboPayment.Tag) & "','" & Trim(TxtVisaNum.Text) & "','" & TxtPassNum.Text & "','" & txtTimeIn.Value & "','" & TxtTimeOut.Value & "','" & Trim(TxtRoomNumber.Text) & "','" & Trim(TxtCompany.Text) & "'," & Trim(TxtRate.Text) & "," & BOOK & ")"
pConnection.Execute (sql) Call LoadCustomer
SetButton False
ThemMoiFlag = False SuaFlag = False End If
End Sub
Private Sub init() Dim i As Integer VSDS.Cols = 16 VSDS.Rows = 1 For i = 1 To 5
VSDS.ColWidth(i) = (VSDS.Width - VSDS.ColWidth(0)) / 5 - 20 Next
VSDS.TextMatrix(0, 0) = "Cust. ID" VSDS.TextMatrix(0, 1) = "RoomNum" VSDS.TextMatrix(0, 2) = "Last Name" VSDS.TextMatrix(0, 3) = "First Name" VSDS.TextMatrix(0, 4) = "Birthday" VSDS.TextMatrix(0, 5) = "National" VSDS.TextMatrix(0, 6) = "Sexual" VSDS.TextMatrix(0, 7) = "Day In" VSDS.TextMatrix(0, 8) = "Day out" VSDS.TextMatrix(0, 9) = "Payment" VSDS.TextMatrix(0, 10) = "No. Visa" VSDS.TextMatrix(0, 11) = "Rate" VSDS.TextMatrix(0, 12) = "Time In" VSDS.TextMatrix(0, 13) = "Time out" VSDS.TextMatrix(0, 14) = "No. Pass" VSDS.TextMatrix(0, 15) = "Company" For i = 6 To 15
Next For i = 0 To VSDS.Cols - 1 VSDS.Cell(flexcpAlignment, 0, 0, 0, 5) = flexAlignCenterCenter VSDS.Cell(flexcpFontBold, 0, 0, 0, 5) = True Next BOOK = 1 End Sub - Hàm kiểm tra phòng
Private Function CheckRoom(RN As String) As Boolean CheckRoom = False
If (Trim(RN) = "201" Or Trim(RN) = "202" Or Trim(RN) = "203" Or Trim(RN) = "204" Or _
Trim(RN) = "301" Or Trim(RN) = "302" Or Trim(RN) = "303" Or Trim(RN) = "304" Or _
Trim(RN) = "401" Or Trim(RN) = "402" Or Trim(RN) = "403" Or Trim(RN) = "404" Or _
Trim(RN) = "501" Or Trim(RN) = "502" Or Trim(RN) = "503" Or Trim(RN) = "504" Or _
Trim(RN) = "601" Or Trim(RN) = "602" Or Trim(RN) = "603" Or Trim(RN) = "604" Or _
Trim(RN) = "701" Or Trim(RN) = "702" Or Trim(RN) = "703" Or Trim(RN) = "704" Or _
Trim(RN) = "801" Or Trim(RN) = "802" Or Trim(RN) = "803" Or Trim(RN) = "804") Then
CheckRoom = True End If
End Function
Private Sub LoadCustomer() Dim rs1 As ADODB.Recordset Dim STT As Integer
sql = "Select * FROM CUR_CUST where book=" & BOOK Set rs1 = pConnection.Execute(sql)
VSDS.Clear 1 VSDS.Rows = 1 STT = 0
While Not rs1.EOF STT = STT + 1
VSDS.AddItem rs1!CUSTOMERID & vbTab & Trim(rs1!ROOMNUM) & vbTab & rs1!LASTNAME & vbTab & rs1!FIRSTNAME & vbTab & rs1!BIRTHDAY & vbTab & rs1!nation & vbTab & Trim(rs1!SEXSUAL) & vbTab & Trim(rs1!DATE_IN) & vbTab & Trim(rs1!DATE_OUT) & vbTab & Trim(rs1!PAYMENT) & vbTab & Trim(rs1!VISA_NUM) & vbTab & Trim(rs1!Rate) & vbTab & Trim(rs1!TIME_IN) & vbTab & Trim(rs1!TIME_OUT) & vbTab & Trim(rs1!PASSPORT) & vbTab & Trim(rs1!COMPANY) rs1.MoveNext Wend If (VSDS.Rows > 1) Then VSDS.Row = 1 CmdSua.Enabled = True Call VSDS_Click Else CmdSua.Enabled = False End If rs1.Close Set rs1 = Nothing End Sub - Bảng hiển thị danh sách khách đăng ký
Private Sub VSDS_Click() Dim rs1 As ADODB.Recordset
Dim MaChungTu As String Dim MaLoaiHangHoa As String Dim MaHangHoa As String clicked = True
If (VSDS.Row > 0 And VSDS.Row < VSDS.Rows) Then TxtCusID.Text = VSDS.TextMatrix(VSDS.Row, 0) TxtRoomNumber.Text = VSDS.TextMatrix(VSDS.Row, 1) TxtLastName.Text = VSDS.TextMatrix(VSDS.Row, 2) TxtFirstName.Text = VSDS.TextMatrix(VSDS.Row, 3) TxtBirthDay.Value = VSDS.TextMatrix(VSDS.Row, 4) CboNation.ListIndex = GetIndex(VSDS.TextMatrix(VSDS.Row, 5)) If (Trim(VSDS.TextMatrix(VSDS.Row, 6)) = "M") Then CboGT.ListIndex = 0 Else CboGT.ListIndex = 1 End If TxtDateIn.Value = VSDS.TextMatrix(VSDS.Row, 7) TxtDateOUT.Value = VSDS.TextMatrix(VSDS.Row, 8) CboPayment.ListIndex= GetIndexPayMent(VSDS.TextMatrix(VSDS.Row, 9)) TxtVisaNum.Text = VSDS.TextMatrix(VSDS.Row, 10) TxtRate.Text = VSDS.TextMatrix(VSDS.Row, 11) txtTimeIn.Value = VSDS.TextMatrix(VSDS.Row, 12) TxtTimeOut.Value = VSDS.TextMatrix(VSDS.Row, 13) TxtPassNum.Text = VSDS.TextMatrix(VSDS.Row, 14) TxtCompany.Text = VSDS.TextMatrix(VSDS.Row, 15) End If End Sub
Private Function GetIndex(Ma As String) As Integer Dim NationName As String
Dim i As Integer
Dim rs1 As ADODB.Recordset
sql = "Select * from QG where Manuoc='" & Trim(Ma) & "'" Set rs1 = pConnection.Execute(sql)
GetIndex = -1
If (Not rs1.EOF) Then
NationName = rs1!Tennuoc End If rs1.Close Set rs1 = Nothing If (CboNation.ListCount >= 0) Then For i = 0 To CboNation.ListCount - 1
If (Trim(CboNation.List(i)) = Trim(NationName)) Then GetIndex = i Exit Function End If Next End If End Function
Private Function GetIndexPayMent(Ma As String) As Integer Dim PayMentName As String
Dim i As Integer
Dim rs1 As ADODB.Recordset
sql = "Select * from PAYMENT where PAYMENTID='" & Trim(Ma) & "'"
Set rs1 = pConnection.Execute(sql) GetIndexPayMent = -1
PayMentName = rs1!Detail End If rs1.Close Set rs1 = Nothing If (CboPayment.ListCount >= 0) Then For i = 0 To CboPayment.ListCount - 1
If (Trim(CboPayment.List(i)) = Trim(PayMentName)) Then GetIndexPayMent = i Exit Function End If Next End If End Function
- Xóa thông tin đang nhập
Private Sub ClearItem() Call LoadCusID TxtRoomNumber.Text = "" TxtLastName.Text = "" TxtFirstName.Text = "" TxtBirthDay.Value = Null CboNation.ListIndex = -1 CboGT.ListIndex = -1 CboPayment.ListIndex = -1 TxtVisaNum.Text = "" TxtPassNum.Text = "" TxtRate.Text = "" TxtCompany.Text = "" TxtDateIn.Value = Date TxtDateOUT.Value = Date txtTimeIn.Value = Time()
TxtTimeOut.Value = Time() End Sub
Private Function RoomBusy(ROOMNUM As String) As Boolean
Dim rs1 As ADODB.Recordset
sql = "Select ROOMNUM From CUR_CUST WHERE ROOMNUM='" & Trim(ROOMNUM) & "' and book=1"
Set rs1 = pConnection.Execute(sql) RoomBusy = False
If (Not rs1.EOF) Then RoomBusy = True End If rs1.Close Set rs1 = Nothing End Function 5. Chức năng Trả phòng ( Quản lý khách ra) Bao gồm các Form: Nhập hoá đơn
Nhập hoá đơn điện thoại Nhập hoá đơn Fax
Sửa hoá đơn Trả phòng.