⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmoperator.frm

📁 一套比较完整的VB开发的员工请假管理系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      EndProperty
      _NumberOfBands  =   1
      _Band(0).Cols   =   3
      _Band(0).GridLinesBand=   0
      _Band(0).TextStyleBand=   0
      _Band(0).TextStyleHeader=   0
   End
End
Attribute VB_Name = "frmOperator"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Oper_ID As Variant
Private Oper_Name As Variant
Private Oper_Pass As Variant

Private Sub IniFlexGrid(ByVal flexGrid As MSHFlexGrid)
   
    flexGrid.Clear
    With flexGrid
        .Cols = 4
        .Rows = 2
        .FixedCols = 0
        .FixedRows = 1
        .SelectionMode = flexSelectionByRow
        .TextMatrix(0, 1) = "编号"
        
        .TextMatrix(0, 2) = "姓名"
          
        .TextMatrix(0, 3) = "密码"
     
        
        .ScrollBars = flexScrollBarVertical
        .GridLines = flexGridNone
        .GridLinesFixed = flexGridNone
        '.AllowBigSelection = True
        .AllowUserResizing = flexResizeNone
        
        
        .ColWidth(0) = 1
        .ColWidth(1) = 1000
        .ColWidth(2) = 2000
        .ColWidth(3) = 3420
        .ColAlignment(1) = 3
        .ColAlignment(2) = 0
        .ColAlignment(3) = 0
        .ColAlignmentFixed(1) = 3
        
        .FillStyle = flexFillSingle
        .ScrollTrack = True
        .Row = 1
        .Col = 0
        .RowSel = 1
        .ColSel = .Cols - 1
        
        
    End With


End Sub

Private Sub showdata(ByVal Recordset As ADODB.Recordset, ByVal flexGrid As MSHFlexGrid)
   Dim i As Integer
   Dim j As Integer
   
   
   If Recordset.RecordCount > 0 Then
        Recordset.MoveFirst
        With flexGrid
            .Row = 1
            While Not Recordset.EOF
                .Rows = .Rows + 1
                For i = 1 To Recordset.Fields.Count
                    .Col = i
                   If (.Row Mod 2) = 0 Then
                        .CellBackColor = &HF4D3A6
                        
                    Else
                        .CellBackColor = vbWhite
                    End If
                    .Text = Recordset.Fields(i - 1)
                    
                Next i
                .Row = .Row + 1
                Recordset.MoveNext
            Wend
             '.Col = 1
            
             .Row = 1
             .Col = 0
             .RowSel = 1
             .ColSel = .Cols - 1
             '.Row = 1
        End With
        
   End If
End Sub

Private Sub GetRecordIdName(ByVal flex As MSHFlexGrid, lngRecordId As Variant, strRecordName As Variant, strPass As Variant)
    If flex.Row <> 0 Then
        If flex.TextMatrix(flex.Row, 1) <> Empty Then
            lngRecordId = flex.TextMatrix(flex.Row, 1)
            strRecordName = flex.TextMatrix(flex.Row, 2)
            strPass = flex.TextMatrix(flex.Row, 3)
          
        Else
            lngRecordId = -1
            strRecordName = Empty
            strPass = Empty
        End If
    End If
End Sub
Private Function SavetoRecords(ByVal rctSave As ADODB.Recordset, ByVal firstField_value As String, ByVal secondField_value As String, ByVal thirdField_value As String) As Boolean
    On Error GoTo Save_Error
        rctSave.Fields(0).Value = firstField_value
        rctSave.Fields(1).Value = secondField_value
        rctSave.Fields(2).Value = thirdField_value
        rctSave.Update
        SavetoRecords = True
        Exit Function
Save_Error:
        If Err.Number <> 0 Then
            rctSave.CancelUpdate
            SavetoRecords = False
            MsgBox "错误代码:" & Err.Number & vbCrLf & _
                    "错误描述:" & Err.Description, vbCritical + vbOKOnly, "保存记录失败"
        Else
            SavetoRecords = True
        End If
            
End Function


Public Function RecordDelete(ByVal rstDelete As ADODB.Recordset, ByVal strOption As Long) As Boolean
    If (rstDelete.EOF = True) Or (rstDelete.BOF = True) Then
        RecordDelete = False
        Exit Function
    End If
    On Error GoTo Delete_error
        rstDelete.Delete strOption
        rstDelete.Update
        RecordDelete = True
        rstDelete.Update
Delete_error:
        If Err.Number <> 0 Then
        rstDelete.CancelUpdate
        RecordDelete = False
        MsgBox "错误代码:" & Err.Number & vbCrLf & _
                "错误描述:" & Err.Description, vbCritical + vbOKOnly, "删除错误"
        Else
          RecordDelete = True
          rstDelete.Update
        End If
    
End Function


Private Sub flexOper_SelChange()
    Call GetRecordIdName(flexOper, Oper_ID, Oper_Name, Oper_Pass)
    If Oper_ID <> -1 Then
        txtOperId.Text = Oper_ID
        txtOperName.Text = Oper_Name
        txtOperPass.Text = Oper_Pass
       
        rctOperatorList.MoveFirst
        rctOperatorList.Find ("Oper_ID = " & CStr(Oper_ID))
       
        
       
        
    Else
        txtOperId.Text = Empty
        txtOperName.Text = Empty
        txtOperPass.Text = Empty
    End If
End Sub
'Download by http://www.codefans.net
Private Sub Form_Load()
Call IniFlexGrid(flexOper)
Call showdata(rctOperatorList, flexOper)
End Sub

Private Sub tblOperator_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
        Case "add"
            flexOper.Row = flexOper.Rows - 1 '移到最后一行
            flexOper.Col = 0                   '称到最后一行的第一列
            
            flexOper.RowSel = flexOper.Rows - 1              '选定一行
            flexOper.ColSel = flexOper.Cols - 1 '选定所有列
            If flexOper.Rows > 7 Then
                flexOper.TopRow = flexOper.Rows - 7
            End If
           
            
            tblOperator.Buttons("delete").Enabled = False
            tblOperator.Buttons("add").Enabled = False
            
            rctOperatorList.AddNew
            flexOper.Enabled = False
            
            txtOperId.SetFocus
        Case "delete"
            If Oper_ID > 0 Then
                
                If MsgBox("您确定要删除此记录吗?", vbQuestion + vbYesNo, "删除记录") = vbYes Then
                    If RecordDelete(rctOperatorList, adAffectCurrent) = True Then
                        Call IniFlexGrid(flexOper)
                        Call showdata(rctOperatorList, flexOper)
                    End If
                End If
                
            End If
        Case "cancel"
            If Not (rctOperatorList.EOF Or rctOperatorList.BOF) Then
                rctOperatorList.CancelUpdate
            End If
            flexOper.Enabled = True
            If flexOper.Rows > 2 Then
                flexOper.Row = flexOper.Rows - 2 '移到倒数第二行
                flexOper.Col = 0                   '称到最后一行的第一列
                flexOper.RowSel = flexOper.Rows - 2              '选定一行
                flexOper.ColSel = flexOper.Cols - 1 '选定所有列
            End If
            'rctDepartList.CancelUpdate
            tblOperator.Buttons("delete").Enabled = True
            tblOperator.Buttons("add").Enabled = True
        
        Case "save"
            If Trim(txtOperId.Text) = Empty Then
                MsgBox "编码不能为空", vbInformation + vbOKOnly, "输入不完整"
                txtOperId.SetFocus
                Exit Sub
            End If
            
            If Trim(txtOperName.Text) = Empty Then
                MsgBox "操作员姓名不能为空", vbInformation + vbOKOnly, "输入不完整"
                txtOperName.SetFocus
                Exit Sub
            End If
            
            If Trim(txtOperPass.Text) = Empty Then
                MsgBox "密码不能为空", vbInformation + vbOKOnly, "输入不能为空"
                txtOperPass.SetFocus
                Exit Sub
            End If
            
            If SavetoRecords(rctOperatorList, Trim(txtOperId.Text), Trim(txtOperName.Text), Trim(txtOperPass.Text)) = True Then
                MsgBox "保存成功"
            Else
                MsgBox "保存失败"
            End If
            flexOper.Enabled = True
            tblOperator.Buttons("delete").Enabled = True
            tblOperator.Buttons("add").Enabled = True
            Call IniFlexGrid(flexOper)
            Call showdata(rctOperatorList, flexOper)
        
        Case "help"
        
        
    End Select
    
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -