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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
  3. Begin VB.Form QueryEvent 
  4.    Caption         =   "查询"
  5.    ClientHeight    =   4545
  6.    ClientLeft      =   60
  7.    ClientTop       =   450
  8.    ClientWidth     =   3765
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   4545
  11.    ScaleWidth      =   3765
  12.    StartUpPosition =   3  'Windows Default
  13.    Begin VB.Frame Frame1 
  14.       Caption         =   "查询考勤记录【忽略的字段留空】"
  15.       Height          =   4335
  16.       Left            =   120
  17.       TabIndex        =   0
  18.       Top             =   120
  19.       Width           =   3495
  20.       Begin VB.CheckBox Check1 
  21.          Caption         =   "不限定日期"
  22.          Height          =   255
  23.          Left            =   1800
  24.          TabIndex        =   9
  25.          Top             =   1920
  26.          Width           =   1335
  27.       End
  28.       Begin VB.CommandButton Command2 
  29.          Cancel          =   -1  'True
  30.          Caption         =   "取消"
  31.          Height          =   495
  32.          Left            =   240
  33.          TabIndex        =   7
  34.          Top             =   3600
  35.          Width           =   3015
  36.       End
  37.       Begin VB.CommandButton Command1 
  38.          Caption         =   "查询"
  39.          Default         =   -1  'True
  40.          Height          =   495
  41.          Left            =   240
  42.          TabIndex        =   6
  43.          Top             =   3000
  44.          Width           =   3015
  45.       End
  46.       Begin VB.ComboBox TypeCombo 
  47.          Height          =   300
  48.          Left            =   240
  49.          TabIndex        =   5
  50.          Top             =   2520
  51.          Width           =   3015
  52.       End
  53.       Begin MSComCtl2.DTPicker DTPicker1 
  54.          Height          =   375
  55.          Left            =   240
  56.          TabIndex        =   3
  57.          Top             =   1440
  58.          Width           =   3015
  59.          _ExtentX        =   5318
  60.          _ExtentY        =   661
  61.          _Version        =   393216
  62.          Format          =   662831105
  63.          CurrentDate     =   38011
  64.       End
  65.       Begin VB.TextBox User 
  66.          Appearance      =   0  'Flat
  67.          Height          =   270
  68.          Left            =   240
  69.          TabIndex        =   1
  70.          Top             =   600
  71.          Width           =   3015
  72.       End
  73.       Begin VB.Label Label4 
  74.          Caption         =   "考勤类别"
  75.          Height          =   255
  76.          Left            =   240
  77.          TabIndex        =   8
  78.          Top             =   2280
  79.          Width           =   1455
  80.       End
  81.       Begin VB.Label Label3 
  82.          Caption         =   "考勤记录时间"
  83.          Height          =   255
  84.          Left            =   240
  85.          TabIndex        =   4
  86.          Top             =   1200
  87.          Width           =   1575
  88.       End
  89.       Begin VB.Label Label1 
  90.          Caption         =   "员工ID号"
  91.          Height          =   255
  92.          Left            =   240
  93.          TabIndex        =   2
  94.          Top             =   360
  95.          Width           =   1455
  96.       End
  97.    End
  98. End
  99. Attribute VB_Name = "QueryEvent"
  100. Attribute VB_GlobalNameSpace = False
  101. Attribute VB_Creatable = False
  102. Attribute VB_PredeclaredId = True
  103. Attribute VB_Exposed = False
  104. Option Explicit
  105. Private Sub Check1_Click()
  106.     If Check1.Value Then        '设置是否把日期作为搜索条件
  107.         DTPicker1.Enabled = False
  108.     Else
  109.         DTPicker1.Enabled = True
  110.     End If
  111. End Sub
  112. Private Sub Command1_Click()
  113.     Dim sql As String
  114.     Dim rs As New ADODB.Recordset
  115.     Dim i As Integer
  116.     Dim rsFilter As String
  117.     Dim FilterEmpty As Boolean
  118.     Dim resultcount As Long
  119.     
  120.     If DbHandle.DbConnection Then       '考勤记录查询
  121.         sql = "SELECT WORK_ID,WORK_DATE,WORK_TIME,TYPE_NAME FROM TBL_WORK,TBL_TYPE WHERE "
  122.         rs.CursorType = adOpenDynamic
  123.         rs.LockType = adLockOptimistic
  124.         FilterEmpty = True     '设置查询条件为"空"
  125.         rsFilter = ""
  126.         If User.Text <> "" Then       '判断每个输入控件,如果用户改动就构造搜索条件字符串
  127.             If FilterEmpty Then
  128.                 rsFilter = "WORK_ID='" & User.Text & "'"
  129.             Else
  130.                 rsFilter = rsFilter & " AND WORK_ID='" & User.Text & "'"
  131.             End If
  132.             FilterEmpty = False
  133.         End If
  134.         If DTPicker1.Enabled Then
  135.             If FilterEmpty Then
  136.                 rsFilter = "WORK_DATE='" & DTPicker1.Value & "'"
  137.             Else
  138.                 rsFilter = rsFilter & " AND WORK_DATE='" & DTPicker1.Value & "'"
  139.             End If
  140.             FilterEmpty = False
  141.         End If
  142.         If TypeCombo.ListIndex <> -1 Then
  143.             If FilterEmpty Then
  144.                 rsFilter = "WORK_TYPE=" & Str(TypeCombo.ListIndex + 1)
  145.             Else
  146.                 rsFilter = rsFilter & " AND WORK_TYPE=" & Trim(Str(TypeCombo.ListIndex + 1))
  147.             End If
  148.             FilterEmpty = False
  149.         End If
  150.         If rsFilter <> "" Then     '构造完整的SQL语句(静态语句+动态条件)
  151.             sql = sql & "TYPE_ID = WORK_TYPE AND " & rsFilter
  152.         Else
  153.             sql = sql & "TYPE_ID = WORK_TYPE"
  154.         End If
  155.         
  156.         rs.Open sql, DbFinance
  157.         resultcount = DbHandle.resultcount(rs)
  158.         QueryEvent2.Cls      '设置电子表格的列头
  159.         QueryEvent2.MSFlexGrid1.Cols = 4
  160.         QueryEvent2.MSFlexGrid1.Rows = resultcount + 1
  161.         QueryEvent2.MSFlexGrid1.Row = 0
  162.         QueryEvent2.MSFlexGrid1.Col = 0
  163.         QueryEvent2.MSFlexGrid1.Text = "员工ID号"
  164.         QueryEvent2.MSFlexGrid1.Col = 1
  165.         QueryEvent2.MSFlexGrid1.Text = "考勤日期"
  166.         QueryEvent2.MSFlexGrid1.Col = 2
  167.         QueryEvent2.MSFlexGrid1.Text = "持续时间"
  168.         QueryEvent2.MSFlexGrid1.Col = 3
  169.         QueryEvent2.MSFlexGrid1.Text = "考勤类别"
  170.         For i = 0 To 3     '平均分配每个列的宽
  171.             QueryEvent2.MSFlexGrid1.ColWidth(i) = QueryEvent2.MSFlexGrid1.Width / 4 - 50
  172.         Next i
  173.         For i = 1 To resultcount    '循环将考勤记录信息放入电子表格
  174.             QueryEvent2.MSFlexGrid1.Row = i
  175.             QueryEvent2.MSFlexGrid1.Col = 0
  176.             QueryEvent2.MSFlexGrid1.Text = rs("WORK_ID")
  177.             QueryEvent2.MSFlexGrid1.Col = 1
  178.             QueryEvent2.MSFlexGrid1.Text = rs("WORK_DATE")
  179.             QueryEvent2.MSFlexGrid1.Col = 2
  180.             QueryEvent2.MSFlexGrid1.Text = Trim(Str(rs("WORK_TIME")))
  181.             QueryEvent2.MSFlexGrid1.Col = 3
  182.             QueryEvent2.MSFlexGrid1.Text = rs("TYPE_NAME")
  183.             rs.MoveNext
  184.         Next i
  185.         QueryEvent2.Show 1       '显示查询结构窗体
  186.         rs.Close        '查询结束,释放资源
  187.         DbHandle.DbClose
  188.     Else        '数据库连接失败,退出
  189.         MsgBox "数据库错误!", vbExclamation
  190.         DbHandle.DbClose
  191.         End
  192.     End If
  193. End Sub
  194. Private Sub Command2_Click()
  195.     Me.Hide       '返回主窗体
  196. End Sub
  197. Private Sub Form_Load()
  198.     Dim sql As String
  199.     Dim rs As New ADODB.Recordset
  200.     
  201.     Me.Left = (Screen.Width - Me.ScaleWidth) / 2        '窗体居中显示
  202.     Me.Top = (Screen.Height - Me.ScaleHeight) / 2
  203.     If DbHandle.DbConnection Then
  204.         sql = "TBL_TYPE"     '把考勤类别表中所有静态记录提取出来
  205.         rs.CursorType = adOpenDynamic
  206.         rs.LockType = adLockOptimistic
  207.         rs.Filter = ""
  208.         rs.Open sql, DbFinance
  209.         
  210.         Do While rs.EOF = False    '循环加入下拉列表中去
  211.             TypeCombo.AddItem (rs("TYPE_NAME"))
  212.             TypeCombo.ItemData(TypeCombo.NewIndex) = rs("TYPE_ID")
  213.             rs.MoveNext
  214.         Loop
  215.         rs.Close       '释放资源
  216.         Set rs = Nothing
  217.         DbHandle.DbClose
  218.     Else        '数据库连接失败,退出
  219.         MsgBox "数据库错误!", vbExclamation
  220.         DbHandle.DbClose
  221.         End
  222.     End If
  223. End Sub
  224. Private Sub Form_Unload(Cancel As Integer)
  225.     On Error Resume Next
  226.     DbHandle.DbClose        '窗体关闭时关闭数据库连接
  227. End Sub