📄 form3.frm
字号:
VERSION 5.00
Begin VB.Form frmsgz
Caption = "查询工资记录"
ClientHeight = 3105
ClientLeft = 60
ClientTop = 450
ClientWidth = 4350
LinkTopic = "Form3"
ScaleHeight = 3105
ScaleWidth = 4350
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text1
Height = 375
Left = 1080
TabIndex = 5
Top = 360
Width = 2655
End
Begin VB.ComboBox Combo1
Height = 300
ItemData = "Form3.frx":0000
Left = 1080
List = "Form3.frx":0002
TabIndex = 4
Top = 1065
Width = 1215
End
Begin VB.ComboBox Combo2
Height = 300
Left = 2640
TabIndex = 3
Top = 1080
Width = 855
End
Begin VB.CommandButton Command1
Caption = "查询"
Height = 495
Left = 720
TabIndex = 2
Top = 2160
Width = 855
End
Begin VB.CommandButton Command2
Caption = "取消"
Height = 495
Left = 2640
TabIndex = 1
Top = 2160
Width = 855
End
Begin VB.CheckBox Check1
Caption = "不限定年月"
Height = 255
Left = 2640
TabIndex = 0
Top = 1560
Width = 1215
End
Begin VB.Label Label1
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "职工ID"
Height = 180
Left = 240
TabIndex = 9
Top = 480
Width = 540
End
Begin VB.Label Label3
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "工资月份"
Height = 180
Left = 240
TabIndex = 8
Top = 1080
Width = 720
End
Begin VB.Label Label4
Caption = "年"
Height = 255
Left = 2400
TabIndex = 7
Top = 1110
Width = 255
End
Begin VB.Label Label5
Caption = "月"
Height = 255
Left = 3600
TabIndex = 6
Top = 1110
Width = 255
End
End
Attribute VB_Name = "frmsgz"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub Check1_Click()
If Check1.Value Then '设置是否把日期作为搜索条件
Combo1.Enabled = False '工资年月控件不可用
Combo2.Enabled = False
Else
Combo1.Enabled = True '工资年月控件可用
Combo2.Enabled = True
End If
End Sub
Private Sub Command1_Click()
Dim sql As String
Dim rs As New ADODB.Recordset
Dim paydate As String
Dim FilterEmpty As Boolean
Dim i As Integer
Dim resultcount As Long
Dim rsFilter As String
paydate = ""
FilterEmpty = True '设置查询条件为"空"
rsFilter = ""
If Combo1.Enabled Then '判断用户输入数据完整性和有效性
If Combo1.ListIndex = -1 Then
MsgBox "年份必须选择!", vbCritical
Combo1.SetFocus
Exit Sub
End If
If Combo2.ListIndex = -1 Then
MsgBox "月份必须选择!", vbCritical
Combo2.SetFocus
Exit Sub
End If
paydate = Combo1.List(Combo1.ListIndex) & "-" & Combo2.List(Combo2.ListIndex) '构造年月字符串
End If
If DbHandle.DbConnection Then
If Text1.Text <> "" Then '如果要求职工ID作为搜索条件
sql = "TBL_USER" '查询职工表中是否存在输入的职工记录
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Filter = "USER_ID='" & Text1.Text & "'"
rs.Open sql, DbFinance
If DbHandle.resultcount(rs) <> 1 Then '不存在无法查询,要求用户输入正确的职工ID
MsgBox "错误,不存在的职工ID号!", vbExclamation
Text1.SetFocus
rs.Close
Set rs = Nothing
DbHandle.DbClose
Exit Sub
End If
rs.Close
End If
If paydate <> "" Then '判断每个输入控件,如果用户改动就构造搜索条件字符串
If FilterEmpty Then
rsFilter = "PAY_DATE='" & paydate & "'"
Else
rsFilter = rsFilter & " AND PAY_DATE='" & paydate & "'"
End If
FilterEmpty = False
End If
If Text1.Text <> "" Then
If FilterEmpty Then
rsFilter = "PAY_USER='" & Text1.Text & "'"
Else
rsFilter = rsFilter & " AND PAY_USER='" & Text1.Text & "'"
End If
FilterEmpty = False
End If
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Filter = ""
sql = "SELECT PAY_USER,PAY_DATE,PAY_MONEY FROM TBL_PAY"
If Not FilterEmpty Then '构造完整的SQL语句(静态语句+动态条件)
sql = sql & " WHERE " & rsFilter
End If
rs.Open sql, DbFinance
resultcount = DbHandle.resultcount(rs)
pay.Cls '设置电子表格的列头
pay.MSFlexGrid1.Cols = 3
pay.MSFlexGrid1.Rows = resultcount + 1
pay.MSFlexGrid1.Row = 0
pay.MSFlexGrid1.Col = 0
pay.MSFlexGrid1.Text = "员工ID"
pay.MSFlexGrid1.Col = 1
pay.MSFlexGrid1.Text = "工资年月"
pay.MSFlexGrid1.Col = 2
pay.MSFlexGrid1.Text = "工资金额"
For i = 0 To 2 '平均分配每个列的宽
pay.MSFlexGrid1.ColWidth(i) = pay.MSFlexGrid1.Width / 3 - 50
Next i
For i = 1 To resultcount '循环将报销记录信息放入电子表格
pay.MSFlexGrid1.Row = i
pay.MSFlexGrid1.Col = 0
pay.MSFlexGrid1.Text = rs("PAY_USER")
pay.MSFlexGrid1.Col = 1
pay.MSFlexGrid1.Text = rs("PAY_DATE")
pay.MSFlexGrid1.Col = 2
pay.MSFlexGrid1.Text = Trim(Str(rs("PAY_MONEY")))
rs.MoveNext
Next i
pay.Show 1 '显示查询结构窗体
rs.Close '查询结束,释放资源
Set rs = Nothing
DbHandle.DbClose
Unload Me
Else '数据库连接失败,退出
MsgBox "数据库错误!", vbExclamation
DbHandle.DbClose
End
End If
End Sub
Private Sub Command2_Click()
Unload Me '返回主窗体
End Sub
Private Sub Form_Load()
Dim i As Long
Me.Left = (Screen.Width - Me.ScaleWidth) / 2 '窗体居中显示
Me.Top = (Screen.Height - Me.ScaleHeight) / 2
For i = 2003 To 2030 '初始化窗体元素属性
Combo1.AddItem Trim(Str(i))
Next i
For i = 1 To 12
Combo2.AddItem Trim(Str(i))
Next i
Text1.Text = ""
Combo1.Text = ""
Combo2.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
DbHandle.DbClose '窗体关闭时关闭数据库连接
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -