?? frmadmincontract.frm
字號(hào):
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdDelay_Click()
'需要變換按鈕的caption屬性,達(dá)到一按鈕多用
If cmdDelay.Caption = "合同延期" Then
cmdDelay.Caption = "確 定"
'合同延期時(shí),只可以改動(dòng)止租日期
Text1(4).Enabled = True
'需要設(shè)置除自身和關(guān)閉外,其他按鈕不可用
cmdDelay.Enabled = True
cmdEnd.Enabled = False
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
ElseIf cmdDelay.Caption = "確 定" Then
cmdDelay.Caption = "合同延期"
'同時(shí)還需要自動(dòng)修改租期和總租金
'租期等于起租日期和止租日期之差,結(jié)尾不足一月,按一月計(jì)。
'使用datediff 函數(shù)計(jì)算日期之差
Text1(5).Text = Int(DateDiff("d", DateValue(Text1(3).Text), DateValue(Text1(4).Text)) / 31) + 1
'總租金等于月租金乘以租期
Text1(7).Text = Val(Text1(5).Text) * Val(Text1(6).Text)
'更新止租日期
rs_con.Fields(4) = DateValue(Text1(4).Text)
rs_con.Update
MsgBox "合同延期成功!", vbOKOnly + vbInformation, "注意"
'打開所有按鈕為可用
cmdDelay.Enabled = True
cmdEnd.Enabled = True
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
End Sub
Private Sub cmdEnd_Click()
'當(dāng)單擊合同終止時(shí),需要彈出一個(gè)提示框,警告用戶
Dim answer As String
answer = MsgBox("確定要終止該合同嗎?", vbYesNo, "")
'確實(shí)刪除
If answer = vbYes Then
'需要修改止租日期為當(dāng)前日期,以及修改其他相應(yīng)數(shù)據(jù),并把該記錄加入歷史合同記錄
Text1(4).Text = Date
'修改租期
Text1(5).Text = Int(DateDiff("d", DateValue(Text1(3).Text), DateValue(Text1(4).Text)) / 31) + 1
'總租金等于月租金乘以租期
Text1(7).Text = Val(Text1(5).Text) * Val(Text1(6).Text)
If rs_old.State = adStateOpen Then
rs_old.Close
End If
'加入歷史合同表
sqlold = "select * from OldContract"
rs_old.Open sqlold, conn, adOpenStatic, adLockOptimistic
rs_old.AddNew
For i = 0 To 11
rs_old.Fields(i) = Text1(i).Text
Next i
rs_old.Update
'還需要修改House表中該房屋的狀態(tài)為未租
If rs_house.State = adStateOpen Then
rs_house.Close
End If
sqlhouse = "select * from House where 房屋編號(hào) = '" & Text1(2).Text & "'"
rs_house.Open sqlhouse, conn, adOpenStatic, adLockOptimistic
rs_house(8) = "未租"
rs_house.Update
'從租戶表中刪除該客戶
Dim sqlclient As String
Dim rs_client As New ADODB.Recordset
If rs_client.State = adStateOpen Then
rs_client.Close
End If
sqlclient = "select * from Client where 租戶姓名= '" & Text1(1).Text & "'"
rs_client.Open sqlclient, conn, adOpenStatic, adLockOptimistic
'如果不為空,加入歷史客戶表,并在客戶表中刪除
If Not rs_client.EOF Then
'把該租戶信息加入歷史租戶表
Dim sqloldclient As String
Dim rs_oldclient As New ADODB.Recordset
If rs_oldclient.State = adStateOpen Then
rs_oldclient.Close
End If
sqloldclient = "select * from OldClient "
rs_oldclient.Open sqloldclient, conn, adOpenStatic, adLockOptimistic
rs_oldclient.AddNew
For i = 0 To 7
rs_oldclient.Fields(i) = rs_client.Fields(i)
Next i
rs_oldclient.Update
rs_oldclient.Close
'從客戶表中刪除該客戶資料
rs_client.Delete
rs_client.Update
End If
rs_client.Close
'刪除合同表中當(dāng)前記錄
rs_con.Delete
rs_con.Update
MsgBox "終止合同成功!", vbOKOnly + vbExclamation, ""
Else
Exit Sub
End If
'刪除之后,顯示總信息條數(shù)需要減 1
Text2.Text = Val(Text2.Text) - 1
'刪除當(dāng)前記錄后,需要顯示下一條記錄,如果刪除的是最后一條記錄,則顯示最后一條記錄
'先移動(dòng)rs_con記錄到后一條
rs_con.MoveNext
If rs_con.EOF Then
rs_con.MoveLast
'如果沒有到記錄首則顯示改記錄
If Not rs_con.BOF Then
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
'如果到記錄首,則表格已經(jīng)為空,置所有text框顯示為空
ElseIf rs_con.BOF Then
For i = 0 To 11
Text1(i).Text = ""
Next i
End If
'如果刪除的不是首尾記錄,則顯示當(dāng)前記錄即可
Else
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
End If
End Sub
Private Sub cmdFirst_Click()
'先移動(dòng)rs_con記錄到第一條
rs_con.MoveFirst
'同時(shí)需要設(shè)置相應(yīng)按鈕為不可用和不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已經(jīng)是第一條記錄,則提示用戶
If rs_con.BOF = True Then
MsgBox "對(duì)不起,已經(jīng)是第一條記錄了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是,則個(gè)數(shù)據(jù)表的記錄位置移到第一條記錄,并且顯示之
Else
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
End If
End Sub
Private Sub cmdLast_Click()
'移動(dòng)rs_con記錄到最后一條
rs_con.MoveLast
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False
'如果已經(jīng)是最后一條記錄,則提示用戶
If rs_con.EOF = True Then
MsgBox "對(duì)不起,已經(jīng)是最后一條記錄了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是最后一條,則個(gè)數(shù)據(jù)表的記錄位置移到后一條記錄,并且顯示之
Else
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
End If
End Sub
Private Sub cmdNext_Click()
'先移動(dòng)rs_con記錄到后一條
rs_con.MoveNext
'設(shè)置前一條和第一條按鈕可用
cmdPrev.Enabled = True
cmdFirst.Enabled = True
'如果已經(jīng)是最后一條記錄,則提示用戶
If rs_con.EOF = True Then
MsgBox "對(duì)不起,已經(jīng)是最后一條記錄了!", vbOKOnly + vbInformation, "注意"
'并且設(shè)置“后一條”和最后一條按鈕不可用
cmdNext.Enabled = False
cmdLast.Enabled = False
Exit Sub
'如果不是,則個(gè)數(shù)據(jù)表的記錄位置移到后一條記錄,并且顯示之
Else
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
End If
End Sub
Private Sub cmdPrev_Click()
'先移動(dòng)rs_con記錄到前一條
rs_con.MovePrevious
'設(shè)置后一條和最后一條按鈕可用
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已經(jīng)是第一條記錄,則提示用戶
If rs_con.BOF = True Then
MsgBox "對(duì)不起,已經(jīng)是第一條記錄了!", vbOKOnly + vbInformation, "注意"
'并且設(shè)置“前一條”和第一條按鈕不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
Exit Sub
'如果不是,則個(gè)數(shù)據(jù)表的記錄位置移到前一條記錄,并且顯示之
Else
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
End If
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
'設(shè)置各個(gè)text框不可寫
For i = 0 To 11
Text1(i).Enabled = False
Next i
'如果不是查詢顯示,則顯示第一條記錄
If querycon = False Then
'如果rs_count rs_con 當(dāng)前狀態(tài)是打開的,則先關(guān)閉之
If rs_count.State = adStateOpen Then
rs_count.Close
End If
If rs_con.State = adStateOpen Then
rs_con.Close
End If
sqlcon = "select * from Contract"
rs_con.CursorLocation = adUseClient
rs_con.Open sqlcon, conn, adOpenStatic, adLockOptimistic
If rs_con.EOF Then
Text2.Text = 0
'沒有記錄,則提示用戶,退出本過程
MsgBox "當(dāng)前表中沒有記錄!", vbOKOnly + vbInformation, "注意"
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdEnd.Enabled = False
cmdDelay.Enabled = False
Exit Sub
Else
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdEnd.Enabled = True
cmdDelay.Enabled = True
'計(jì)算總共數(shù)據(jù)條數(shù)
sqlcount = "select count(*) from Contract"
rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
'有記錄則,顯示第一條,并且顯示記錄條數(shù)
Text2.Text = rs_count.Fields(0)
If Not rs_con.EOF And Not rs_con.BOF Then
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
End If
End If
'如果是查詢顯示則相應(yīng)sql語(yǔ)句為查詢語(yǔ)句
ElseIf querycon = True Then
'因?yàn)殚_始顯示時(shí)必定打開了rs_con,rs_count,所以應(yīng)該先關(guān)閉它們
If rs_con.State = adStateOpen Then
rs_con.Close
End If
If rs_count.State = adStateOpen Then
rs_count.Close
End If
sqlcon = "select * from Contract " & sqlqcon
rs_con.CursorLocation = adUseClient
rs_con.Open sqlcon, conn, adOpenStatic, adLockOptimistic
If rs_con.BOF = True Then
Text2.Text = 0
'如果沒有找到記錄,則提示用戶,置空所有text控件,并且退出本子過程
MsgBox "沒有找到符合條件的記錄", vbOKOnly + vbInformation, "注意"
For i = 0 To 11
Text1(i).Text = ""
Next i
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdEnd.Enabled = False
cmdDelay.Enabled = False
Exit Sub
Else
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdEnd.Enabled = True
cmdDelay.Enabled = True
'計(jì)算找到的條數(shù)
sqlcount = "select count(*) from Contract " & sqlqcon
rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
Text2.Text = rs_count.Fields(0)
'找到符合條件的記錄,顯示之
For i = 0 To 11
If IsNull(rs_con.Fields(i)) Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_con.Fields(i)
End If
Next i
End If
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If rs_con.State = adStateOpen Then
rs_con.Close
End If
If rs_count.State = adStateOpen Then
rs_count.Close
End If
If rs_house.State = adStateOpen Then
rs_house.Close
End If
If rs_old.State = adStateOpen Then
rs_old.Close
End If
End Sub
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -