?? frmhouse.frm
字號:
End If
End If
'開始時設(shè)置各個text框不可寫
For i = 0 To 7
Text1(i).Enabled = False
Next i
'先設(shè)置ComboBox的默認值及不可改
Combo1.Enabled = False
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdDel_Click()
'當(dāng)單擊刪除記錄時,需要彈出一個提示框,警告用戶
Dim answer As String
answer = MsgBox("確定要刪除嗎?", vbYesNo, "")
'確實刪除
If answer = vbYes Then
rs_house.Delete '刪除當(dāng)前記錄
rs_house.Update '更新刪除
MsgBox "成功刪除!", vbOKOnly + vbExclamation, ""
Else
Exit Sub
End If
'刪除之后,顯示總信息條數(shù)需要減 1
Text2.Text = Val(Text2.Text) - 1
'刪除當(dāng)前記錄后,需要顯示下一條記錄,如果刪除的是最后一條記錄,則顯示上一條記錄
'先移動rs_house記錄到后一條
rs_house.MoveNext
If rs_house.EOF Then
rs_house.MovePrevious
'如果沒有到記錄首則顯示該記錄
If Not rs_house.BOF Then
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
'如果到記錄首,則表格已經(jīng)為空,置所有text框顯示為空
ElseIf rs_house.BOF Then
For i = 0 To 7
Text1(i).Text = ""
Next i
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
End If
'如果刪除的不是首尾記錄,則顯示當(dāng)前記錄即可
Else
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
End If
End Sub
Private Sub cmdEdit_Click()
'設(shè)置除保存和取消按鈕外的其他按鈕不可用
cmdAdd.Enabled = False
cmdEdit.Enabled = False
cmdDel.Enabled = False
cmdSave.Enabled = True
cmdCancel.Enabled = True
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdQuery.Enabled = False
'需要設(shè)置除主鍵之外的text框可寫
For i = 1 To 7
Text1(i).Enabled = True
Next i
Combo1.Enabled = True
add = 0
End Sub
Private Sub cmdFirst_Click()
'先移動rs_house記錄到第一條
rs_house.MoveFirst
'同時需要設(shè)置相應(yīng)按鈕為不可用和不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已經(jīng)是第一條記錄,則提示用戶
If rs_house.BOF = True Then
MsgBox "對不起,已經(jīng)是第一條記錄了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是,則個數(shù)據(jù)表的記錄位置移到第一條記錄,并且顯示之
Else
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
End If
End Sub
Private Sub cmdLast_Click()
'移動rs_house記錄到最后一條
rs_house.MoveLast
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False
'如果已經(jīng)是最后一條記錄,則提示用戶
If rs_house.EOF = True Then
MsgBox "對不起,已經(jīng)是最后一條記錄了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是最后一條,則個數(shù)據(jù)表的記錄位置移到后一條記錄,并且顯示之
Else
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
End If
End Sub
Private Sub cmdNext_Click()
'先移動rs_house記錄到后一條
rs_house.MoveNext
'設(shè)置前一條和第一條按鈕可用
cmdPrev.Enabled = True
cmdFirst.Enabled = True
'如果已經(jīng)是最后一條記錄,則提示用戶
If rs_house.EOF = True Then
MsgBox "對不起,已經(jīng)是最后一條記錄了!", vbOKOnly + vbInformation, "注意"
'并且設(shè)置“后一條”和最后一條按鈕不可用
cmdNext.Enabled = False
cmdLast.Enabled = False
Exit Sub
'如果不是,則個數(shù)據(jù)表的記錄位置移到后一條記錄,并且顯示之
Else
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
End If
End Sub
Private Sub cmdPrev_Click()
'先移動rs_house記錄到前一條
rs_house.MovePrevious
'設(shè)置后一條和最后一條按鈕可用
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已經(jīng)是第一條記錄,則提示用戶
If rs_house.BOF = True Then
MsgBox "對不起,已經(jīng)是第一條記錄了!", vbOKOnly + vbInformation, "注意"
'并且設(shè)置“前一條”和第一條按鈕不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
Exit Sub
'如果不是,則個數(shù)據(jù)表的記錄位置移到前一條記錄,并且顯示之
Else
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
End If
End Sub
Private Sub cmdQuery_Click()
frmQueryHouse.Show
End Sub
Private Sub cmdSave_Click()
'檢測數(shù)據(jù)是否完整
If Text1(0).Text = "" Then
MsgBox "房屋編號不可為空!", vbOKOnly + vbInformation, "注意"
Text1(0).SetFocus
Exit Sub
ElseIf Text1(1).Text = "" Then
MsgBox "物業(yè)地址不可為空!", vbOKOnly + vbInformation, "注意"
Text1(1).SetFocus
Exit Sub
ElseIf Text1(2).Text = "" Then
MsgBox "房型不可為空!", vbOKOnly + vbInformation, "注意"
Text1(2).SetFocus
Exit Sub
ElseIf Text1(3).Text = "" Then
MsgBox "建筑面積不可為空!", vbOKOnly + vbInformation, "注意"
Text1(3).SetFocus
Exit Sub
ElseIf Text1(4).Text = "" Then
MsgBox "使用面積不可為空!", vbOKOnly + vbInformation, "注意"
Text1(4).SetFocus
Exit Sub
ElseIf Val(Text1(3).Text) < Val(Text1(4).Text) Then
MsgBox "使用面積不可大于建筑面積!", vbOKOnly + vbInformation, "注意"
Text1(4).SetFocus
Exit Sub
ElseIf Text1(6).Text = "" Then
MsgBox "出租價位不可為空!", vbOKOnly + vbInformation, "注意"
Text1(6).SetFocus
Exit Sub
End If
'添加數(shù)據(jù)后保存
If add = 1 Then
'檢測房屋編號這個主鍵是否已經(jīng)在表中存在
Dim rs_check As New ADODB.Recordset
Dim sqlCheck As String
sqlCheck = "select * from House where 房屋編號= '" & (Text1(0).Text) & "'"
rs_check.Open sqlCheck, conn, adOpenStatic, adLockOptimistic
If Not rs_check.EOF And Not rs_check.BOF Then
MsgBox "該房屋編號已經(jīng)存在,請重填一個!", vbOKOnly + vbInformation, "注意"
rs_check.Close
Text1(0).SetFocus
Text1(0).Text = ""
Exit Sub
End If
rs_check.Close
'主鍵不重復(fù),可以加入表中
rs_house.AddNew
For i = 0 To 7
rs_house.Fields(i) = Text1(i).Text
Next i
rs_house.Fields(8) = Combo1.Text
rs_house.Update
'添加之后顯示總共條數(shù)信息加 1
Text2.Text = Val(Text2.Text) + 1
'修改數(shù)據(jù)后的保存
Else
rs_house.Update
End If
MsgBox "保存數(shù)據(jù)成功!", vbOKOnly + vbInformation, "祝賀"
'保存后需要設(shè)置其他按鈕可用,以及各個text框不可寫
cmdAdd.Enabled = True
cmdEdit.Enabled = True
cmdDel.Enabled = True
cmdSave.Enabled = False
cmdCancel.Enabled = False
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdQuery.Enabled = True
For i = 0 To 7
Text1(i).Enabled = False
Next i
Combo1.Enabled = False
End Sub
Private Sub Form_Activate()
Dim X0 As Long
Dim Y0 As Long
'讓窗體居中
X0 = Screen.Width
Y0 = Screen.Height
X0 = (X0 - Me.Width) / 2
Y0 = (Y0 - Me.Height) / 2
Me.Move X0, Y0
cmdSave.Enabled = False
cmdCancel.Enabled = False
Combo1.ListIndex = 0
'如果不是查詢顯示,則顯示第一條記錄
If queryhouse = False Then
'在from_laod()方法中打開住戶信息表
'如果rs_count rs_house 當(dāng)前狀態(tài)是打開的,則先關(guān)閉之
If rs_count.State = adStateOpen Then
rs_count.Close
End If
If rs_house.State = adStateOpen Then
rs_house.Close
End If
sqlhouse = "select * from House"
rs_house.CursorLocation = adUseClient
rs_house.Open sqlhouse, conn, adOpenStatic, adLockOptimistic
If rs_house.EOF Then
Text2.Text = 0
'沒有記錄,則提示用戶,退出本過程
MsgBox "當(dāng)前表中沒有記錄!", vbOKOnly + vbInformation, "注意"
'如果是0條記錄,需要設(shè)置前翻后翻的按鈕為不可用
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdDel.Enabled = False
cmdEdit.Enabled = False
cmdSave.Enabled = False
Exit Sub
Else
'如果有記錄,需要設(shè)置前翻后翻的按鈕為可用
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdDel.Enabled = True
cmdEdit.Enabled = True
cmdSave.Enabled = True
'計算總共數(shù)據(jù)條數(shù)
sqlcount = "select count(*) from House"
rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
'有記錄則,顯示第一條,并且顯示記錄條數(shù)
Text2.Text = rs_count.Fields(0)
If Not rs_house.EOF And Not rs_house.BOF Then
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
End If
End If
'如果是查詢顯示則相應(yīng)sql語句為查詢語句
ElseIf queryhouse = True Then
'因為開始顯示時必定打開了rs_house,rs_count,所以應(yīng)該先關(guān)閉它們
rs_house.Close
rs_count.Close
sqlhouse = "select * from House " & sqlqh
rs_house.CursorLocation = adUseClient
rs_house.Open sqlhouse, conn, adOpenStatic, adLockOptimistic
If rs_house.EOF Then
Text2.Text = 0
'如果沒有找到記錄,則提示用戶,置空所有text控件,并且退出本子過程
MsgBox "沒有找到符合條件的記錄", vbOKOnly + vbInformation, "注意"
For i = 0 To 7
Text1(i).Text = ""
Next i
'如果是0條記錄,需要設(shè)置前翻后翻的按鈕為不可用
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdDel.Enabled = False
cmdEdit.Enabled = False
cmdSave.Enabled = False
Exit Sub
'找到符合條件的記錄
Else
'如果有記錄,需要設(shè)置前翻后翻的按鈕為可用
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdDel.Enabled = True
cmdEdit.Enabled = True
cmdSave.Enabled = True
'計算找到的條數(shù)
sqlcount = "select count(*) from House " & sqlqh
rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
Text2.Text = rs_count.Fields(0)
'找到符合條件的記錄,顯示之
For i = 0 To 7
Text1(i).Text = rs_house.Fields(i)
Next i
If rs_house.Fields(8) = "已租" Then
Combo1.ListIndex = 0
ElseIf rs_house.Fields(8) = "未租" Then
Combo1.ListIndex = 1
ElseIf rs_house.Fields(8) = "意向" Then
Combo1.ListIndex = 2
End If
End If
End If
'設(shè)置各個text框不可寫
For i = 0 To 7
Text1(i).Enabled = False
Next i
'先設(shè)置ComboBox的默認值及不可改
Combo1.Enabled = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs_house.Close
If rs_count.State = adStateOpen Then
rs_count.Close
End If
'關(guān)閉時還需要設(shè)置queryhouse為false
queryhouse = False
End Sub
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -