QueryPay.frm
上传用户:cntx88
上传日期:2022-08-07
资源大小:169k
文件大小:8k
源码类别:

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form QueryPay 
  3.    Caption         =   "查询"
  4.    ClientHeight    =   3480
  5.    ClientLeft      =   60
  6.    ClientTop       =   450
  7.    ClientWidth     =   3675
  8.    LinkTopic       =   "Form1"
  9.    LockControls    =   -1  'True
  10.    ScaleHeight     =   3480
  11.    ScaleWidth      =   3675
  12.    StartUpPosition =   3  '窗口缺省
  13.    Begin VB.Frame Frame1 
  14.       Caption         =   "查询工资记录"
  15.       Height          =   3135
  16.       Left            =   120
  17.       TabIndex        =   0
  18.       Top             =   120
  19.       Width           =   3375
  20.       Begin VB.CheckBox Check1 
  21.          Caption         =   "不限定年月"
  22.          Height          =   255
  23.          Left            =   1920
  24.          TabIndex        =   10
  25.          Top             =   1920
  26.          Width           =   1215
  27.       End
  28.       Begin VB.CommandButton Command2 
  29.          Caption         =   "取消"
  30.          Height          =   495
  31.          Left            =   1800
  32.          TabIndex        =   9
  33.          Top             =   2400
  34.          Width           =   1215
  35.       End
  36.       Begin VB.CommandButton Command1 
  37.          Caption         =   "查询"
  38.          Height          =   495
  39.          Left            =   360
  40.          TabIndex        =   8
  41.          Top             =   2400
  42.          Width           =   1215
  43.       End
  44.       Begin VB.ComboBox Combo2 
  45.          Height          =   300
  46.          Left            =   1920
  47.          TabIndex        =   5
  48.          Text            =   "Combo2"
  49.          Top             =   1440
  50.          Width           =   855
  51.       End
  52.       Begin VB.ComboBox Combo1 
  53.          Height          =   300
  54.          ItemData        =   "QueryPay.frx":0000
  55.          Left            =   360
  56.          List            =   "QueryPay.frx":0002
  57.          TabIndex        =   4
  58.          Text            =   "Combo1"
  59.          Top             =   1425
  60.          Width           =   1215
  61.       End
  62.       Begin VB.TextBox Text1 
  63.          Height          =   270
  64.          Left            =   360
  65.          TabIndex        =   1
  66.          Text            =   "Text1"
  67.          Top             =   720
  68.          Width           =   2655
  69.       End
  70.       Begin VB.Label Label5 
  71.          Caption         =   "月"
  72.          Height          =   255
  73.          Left            =   2880
  74.          TabIndex        =   7
  75.          Top             =   1470
  76.          Width           =   255
  77.       End
  78.       Begin VB.Label Label4 
  79.          Caption         =   "年"
  80.          Height          =   255
  81.          Left            =   1680
  82.          TabIndex        =   6
  83.          Top             =   1470
  84.          Width           =   255
  85.       End
  86.       Begin VB.Label Label3 
  87.          Caption         =   "工资月份"
  88.          Height          =   255
  89.          Left            =   360
  90.          TabIndex        =   3
  91.          Top             =   1200
  92.          Width           =   1215
  93.       End
  94.       Begin VB.Label Label1 
  95.          Caption         =   "职工ID"
  96.          Height          =   255
  97.          Left            =   360
  98.          TabIndex        =   2
  99.          Top             =   480
  100.          Width           =   2175
  101.       End
  102.    End
  103. End
  104. Attribute VB_Name = "QueryPay"
  105. Attribute VB_GlobalNameSpace = False
  106. Attribute VB_Creatable = False
  107. Attribute VB_PredeclaredId = True
  108. Attribute VB_Exposed = False
  109. Option Explicit
  110. Private Sub Check1_Click()
  111.     If Check1.Value Then        '设置是否把日期作为搜索条件
  112.         Combo1.Enabled = False  '工资年月控件不可用
  113.         Combo2.Enabled = False
  114.     Else
  115.         Combo1.Enabled = True   '工资年月控件可用
  116.         Combo2.Enabled = True
  117.     End If
  118. End Sub
  119. Private Sub Command1_Click()
  120.     Dim sql As String
  121.     Dim rs As New ADODB.Recordset
  122.     Dim paydate As String
  123.     Dim FilterEmpty As Boolean
  124.     Dim i As Integer
  125.     Dim resultcount As Long
  126.     Dim rsFilter As String
  127.     
  128.     paydate = ""
  129.     FilterEmpty = True     '设置查询条件为"空"
  130.     rsFilter = ""
  131.     If Combo1.Enabled Then      '判断用户输入数据完整性和有效性
  132.         If Combo1.ListIndex = -1 Then
  133.             MsgBox "年份必须选择!", vbCritical
  134.             Combo1.SetFocus
  135.             Exit Sub
  136.         End If
  137.         If Combo2.ListIndex = -1 Then
  138.             MsgBox "月份必须选择!", vbCritical
  139.             Combo2.SetFocus
  140.             Exit Sub
  141.         End If
  142.         paydate = Combo1.List(Combo1.ListIndex) & "-" & Combo2.List(Combo2.ListIndex)       '构造年月字符串
  143.     End If
  144.     If DbHandle.DbConnection Then
  145.         If Text1.Text <> "" Then        '如果要求职工ID作为搜索条件
  146.             sql = "TBL_USER"        '查询职工表中是否存在输入的职工记录
  147.             rs.CursorType = adOpenDynamic
  148.             rs.LockType = adLockOptimistic
  149.             rs.Filter = "USER_ID='" & Text1.Text & "'"
  150.             rs.Open sql, DbFinance
  151.             If DbHandle.resultcount(rs) <> 1 Then       '不存在无法查询,要求用户输入正确的职工ID
  152.                 MsgBox "错误,不存在的职工ID号!", vbExclamation
  153.                 Text1.SetFocus
  154.                 rs.Close
  155.                 Set rs = Nothing
  156.                 DbHandle.DbClose
  157.                 Exit Sub
  158.             End If
  159.             rs.Close
  160.         End If
  161.         If paydate <> "" Then        '判断每个输入控件,如果用户改动就构造搜索条件字符串
  162.             If FilterEmpty Then
  163.                 rsFilter = "PAY_DATE='" & paydate & "'"
  164.             Else
  165.                 rsFilter = rsFilter & " AND PAY_DATE='" & paydate & "'"
  166.             End If
  167.             FilterEmpty = False
  168.         End If
  169.         If Text1.Text <> "" Then
  170.             If FilterEmpty Then
  171.                 rsFilter = "PAY_USER='" & Text1.Text & "'"
  172.             Else
  173.                 rsFilter = rsFilter & " AND PAY_USER='" & Text1.Text & "'"
  174.             End If
  175.             FilterEmpty = False
  176.         End If
  177.         rs.CursorType = adOpenDynamic
  178.         rs.LockType = adLockOptimistic
  179.         rs.Filter = ""
  180.         sql = "SELECT PAY_USER,PAY_DATE,PAY_MONEY FROM TBL_PAY"
  181.         If Not FilterEmpty Then     '构造完整的SQL语句(静态语句+动态条件)
  182.             sql = sql & " WHERE " & rsFilter
  183.         End If
  184.         rs.Open sql, DbFinance
  185.         resultcount = DbHandle.resultcount(rs)
  186.         QueryPay2.Cls      '设置电子表格的列头
  187.         QueryPay2.MSFlexGrid1.Cols = 3
  188.         QueryPay2.MSFlexGrid1.Rows = resultcount + 1
  189.         QueryPay2.MSFlexGrid1.Row = 0
  190.         QueryPay2.MSFlexGrid1.Col = 0
  191.         QueryPay2.MSFlexGrid1.Text = "员工ID"
  192.         QueryPay2.MSFlexGrid1.Col = 1
  193.         QueryPay2.MSFlexGrid1.Text = "工资年月"
  194.         QueryPay2.MSFlexGrid1.Col = 2
  195.         QueryPay2.MSFlexGrid1.Text = "工资金额"
  196.         For i = 0 To 2      '平均分配每个列的宽
  197.             QueryPay2.MSFlexGrid1.ColWidth(i) = QueryPay2.MSFlexGrid1.Width / 3 - 50
  198.         Next i
  199.         For i = 1 To resultcount    '循环将报销记录信息放入电子表格
  200.             QueryPay2.MSFlexGrid1.Row = i
  201.             QueryPay2.MSFlexGrid1.Col = 0
  202.             QueryPay2.MSFlexGrid1.Text = rs("PAY_USER")
  203.             QueryPay2.MSFlexGrid1.Col = 1
  204.             QueryPay2.MSFlexGrid1.Text = rs("PAY_DATE")
  205.             QueryPay2.MSFlexGrid1.Col = 2
  206.             QueryPay2.MSFlexGrid1.Text = Trim(Str(rs("PAY_MONEY")))
  207.             rs.MoveNext
  208.         Next i
  209.         QueryPay2.Show 1        '显示查询结构窗体
  210.         rs.Close        '查询结束,释放资源
  211.         Set rs = Nothing
  212.         DbHandle.DbClose
  213.         Unload Me
  214.     Else        '数据库连接失败,退出
  215.         MsgBox "数据库错误!", vbExclamation
  216.         DbHandle.DbClose
  217.         End
  218.     End If
  219. End Sub
  220. Private Sub Command2_Click()
  221.     Unload Me       '返回主窗体
  222. End Sub
  223. Private Sub Form_Load()
  224.     Dim i As Long
  225.     
  226.     Me.Left = (Screen.Width - Me.ScaleWidth) / 2        '窗体居中显示
  227.     Me.Top = (Screen.Height - Me.ScaleHeight) / 2
  228.     For i = 2003 To 2030     '初始化窗体元素属性
  229.         Combo1.AddItem Trim(Str(i))
  230.     Next i
  231.     For i = 1 To 12
  232.         Combo2.AddItem Trim(Str(i))
  233.     Next i
  234.     Text1.Text = ""
  235.     Combo1.Text = ""
  236.     Combo2.Text = ""
  237. End Sub
  238. Private Sub Form_Unload(Cancel As Integer)
  239.     On Error Resume Next
  240.     DbHandle.DbClose       '窗体关闭时关闭数据库连接
  241. End Sub