?? 住戶投訴管理.frm
字號:
Private Sub cmdCancel_Click()
'取消按鈕用于用戶添加或修改過程中放棄添加或修改操作
cmdSave.Enabled = False
cmdCancel.Enabled = False
cmdAdd.Enabled = True
cmdEdit.Enabled = True
cmdDel.Enabled = True
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdQuery.Enabled = True
'如果是從添加后取消
If add = 1 Then
'如果當前Equipment表中有數據則顯示第一條數據
If Not rs_tousu.EOF And Not rs_tousu.BOF Then
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
'如果沒有數據,則顯示空
Else
For i = 0 To 9
Text1(i).Text = ""
Next i
End If
'如果是修改后取消,則恢復到修改前的數據
ElseIf add = 0 Then
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
'開始時設置各個text框不可寫
For i = 0 To 9
Text1(i).Enabled = False
Next i
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdDel_Click()
'當單擊刪除記錄時,需要彈出一個提示框,警告用戶
Dim answer As String
answer = MsgBox("確定要刪除嗎?", vbYesNo, "")
'確實刪除
If answer = vbYes Then
rs_tousu.Delete '刪除當前記錄
rs_tousu.Update '更新刪除
MsgBox "成功刪除!", vbOKOnly + vbExclamation, ""
Else
Exit Sub
End If
'刪除之后,顯示總信息條數需要減 1
Text2.Text = Val(Text2.Text) - 1
'刪除當前記錄后,需要顯示下一條記錄,如果刪除的是最后一條記錄,則顯示上一條記錄
'先移動rs_tousu記錄到后一條
rs_tousu.MoveNext
If rs_tousu.EOF Then
rs_tousu.MovePrevious
'如果沒有到記錄首則顯示該記錄
If Not rs_tousu.BOF Then
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
'如果到記錄首,則表格已經為空,置所有text框顯示為空
ElseIf rs_tousu.BOF Then
For i = 0 To 9
Text1(i).Text = ""
Next i
End If
'如果刪除的不是首尾記錄,則顯示當前記錄即可
Else
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
End Sub
Private Sub cmdEdit_Click()
'設置除保存和取消按鈕外的其他按鈕不可用
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
'需要設置除主鍵之外的text框可寫
For i = 1 To 9
Text1(i).Enabled = True
Next i
'設置add變量為0
add = 0
End Sub
Private Sub cmdFirst_Click()
'先移動rs_tousu記錄到第一條
rs_tousu.MoveFirst
'同時需要設置相應按鈕為不可用和不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已經是第一條記錄,則提示用戶
If rs_tousu.BOF = True Then
MsgBox "對不起,已經是第一條記錄了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是,則個數據表的記錄位置移到第一條記錄,并且顯示之
Else
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
End Sub
Private Sub cmdLast_Click()
'移動rs_tousu記錄到最后一條
rs_tousu.MoveLast
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False
'如果已經是最后一條記錄,則提示用戶
If rs_tousu.EOF = True Then
MsgBox "對不起,已經是最后一條記錄了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是最后一條,則個數據表的記錄位置移到后一條記錄,并且顯示之
Else
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
End Sub
Private Sub cmdNext_Click()
'先移動rs_tousu記錄到后一條
rs_tousu.MoveNext
'設置前一條和第一條按鈕可用
cmdPrev.Enabled = True
cmdFirst.Enabled = True
'如果已經是最后一條記錄,則提示用戶
If rs_tousu.EOF = True Then
MsgBox "對不起,已經是最后一條記錄了!", vbOKOnly + vbInformation, "注意"
'并且設置“后一條”和最后一條按鈕不可用
cmdNext.Enabled = False
cmdLast.Enabled = False
Exit Sub
'如果不是,則個數據表的記錄位置移到后一條記錄,并且顯示之
Else
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
End Sub
Private Sub cmdPrev_Click()
'先移動rs_tousu記錄到前一條
rs_tousu.MovePrevious
'設置后一條和最后一條按鈕可用
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已經是第一條記錄,則提示用戶
If rs_tousu.BOF = True Then
MsgBox "對不起,已經是第一條記錄了!", vbOKOnly + vbInformation, "注意"
'并且設置“前一條”和第一條按鈕不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
Exit Sub
'如果不是,則個數據表的記錄位置移到前一條記錄,并且顯示之
Else
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
End Sub
Private Sub cmdQuery_Click()
frmQueryTs.Show
End Sub
Private Sub cmdSave_Click()
'檢測數據是否完整
If Text1(0).Text = "" Then
MsgBox "投訴編號不可為空!", vbOKOnly + vbInformation, "注意"
Text1(0).SetFocus
Exit Sub
ElseIf IsDate(Text1(1).Text) = False Then
MsgBox "投訴日期書寫不對,應為2000-1-1這樣的格式!", 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(8).Text = "" Then
MsgBox "投訴內容不可為空!", vbOKOnly + vbInformation, "注意"
Text1(8).SetFocus
Exit Sub
End If
'添加數據后保存
If add = 1 Then
'檢測房間編號這個主鍵是否已經在表中存在
Dim rs_check As New ADODB.Recordset
Dim sqlCheck As String
sqlCheck = "select * from TouSu where 投訴編號= '" & (Text1(0).Text) & "'"
rs_check.Open sqlCheck, conn, adOpenStatic, adLockOptimistic
If Not rs_check.EOF And Not rs_check.BOF Then
MsgBox "該投訴編號已經存在,請重填一個!", vbOKOnly + vbInformation, "注意"
rs_check.Close
Text1(0).SetFocus
Text1(0).Text = ""
Exit Sub
End If
rs_check.Close
'主鍵不重復,可以加入表中
rs_tousu.AddNew
For i = 0 To 9
rs_tousu.Fields(i) = Text1(i).Text
Next i
rs_tousu.Update
'添加之后顯示總共條數信息加 1
Text2.Text = Val(Text2.Text) + 1
'修改數據后的保存
Else
rs_tousu.Update
End If
MsgBox "保存數據成功!", vbOKOnly + vbInformation, "祝賀"
'保存后需要設置其他按鈕可用,以及各個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 9
Text1(i).Enabled = False
Next i
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
'設置顯示記錄條數的Text2不可寫
Text2.Enabled = False
'如果不是查詢顯示,則顯示第一條記錄
If queryTs = False Then
'在from_laod()方法中打開住戶信息表
'如果rs_count rs_tousu 當前狀態是打開的,則先關閉之
If rs_count.State = adStateOpen Then
rs_count.Close
End If
If rs_tousu.State = adStateOpen Then
rs_tousu.Close
End If
'計算總共數據條數
Dim sqlcount As String
sqlcount = "select count(*) from TouSu"
rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
If rs_count.EOF Then
Text2.Text = 0
Else
Text2.Text = rs_count.Fields(0)
End If
Dim sql_tousu As String
sql_tousu = "select * from TouSu"
rs_tousu.CursorLocation = adUseClient
rs_tousu.Open sql_tousu, conn, adOpenStatic, adLockOptimistic
'如果當前Equipment表中有數據則顯示第一條數據
If Not rs_tousu.EOF And Not rs_tousu.BOF Then
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
'如果是查詢顯示則相應sql語句為查詢語句
ElseIf queryTs = True Then
rs_tousu.Close
rs_count.Close
'計算找到的條數
Dim sqlquerycount As String
sqlquerycount = "select count(*) from TouSu " & sqlTs
rs_count.Open sqlquerycount, conn, adOpenStatic, adLockOptimistic
If rs_count.EOF Then
Text2.Text = 0
Else
Text2.Text = rs_count.Fields(0)
End If
Dim sqlquery As String
sqlquery = "select * from TouSu " & sqlTs
rs_tousu.CursorLocation = adUseClient
rs_tousu.Open sqlquery, conn, adOpenStatic, adLockOptimistic
'沒有找到符合條件的記錄
If rs_tousu.EOF Then
MsgBox "沒有找到符合條件的記錄", vbOKOnly + vbInformation, "注意"
For i = 0 To 9
Text1(i).Text = ""
Next i
'如果是0條記錄,需要設置前翻后翻的按鈕為不可用
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdEdit.Enabled = False
cmdDel.Enabled = False
'找到符合條件的記錄
Else
'如果有記錄,需要設置前翻后翻的按鈕為可用
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdEdit.Enabled = True
cmdDel.Enabled = True
For i = 0 To 9
Text1(i).Text = rs_tousu.Fields(i)
Next i
End If
End If
'設置各個text框不可寫
For i = 0 To 9
Text1(i).Enabled = False
Next i
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs_tousu.Close
rs_count.Close
'關閉時還需要設置queryTs為false
queryTs = False
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -