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

📄 departments.cls

📁 人事信息管理系统 VB毕业设计 原代码+论文
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "Departments"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'1 DepId 数字,长整型  部门编号,主键
'2 DepName 文本,长度为50  部门名称,必填字段(是),允许空字符串(否)
'3 Describes  文本,长度为255 部门职能描述,必填字段(否),允许空字符串(是)
'4 UpperId 数字,长整型  上级部门编号,,必填字段(是)
Public DepId As Long
Public DepName As String
Public Describes As String
Public UpperId As Long

Public Sub Init()
  DepId = -1
  DepName = ""
  Describes = -1
  UpperId = -1
End Sub

'删除Departments
Public Sub Delete(ByVal TmpId As Long)
  SqlStmt = "DELETE FROM Departments WHERE DepId=" + Trim(Str(TmpId))
  SQLExt (SqlStmt)
End Sub

'读取当前部门记录
Public Sub GetInfo(ByVal TmpId As Long)
  Dim rs As New ADODB.Recordset '定义结果集对象
  
  DepId = TmpId
  '使用SELECT语句读取指定部门数据
  SqlStmt = "SELECT * FROM Departments WHERE DepId=" + Trim(Str(TmpId))
  Set rs = QueryExt(SqlStmt)
  If Not rs.EOF Then
    DepName = Trim(rs.Fields(1))  '部门名称
    If IsNull(rs.Fields(2)) Then
      Describes = ""
    Else
      Describes = Trim(rs.Fields(2)) '部门描述
    End If
    UpperId = rs.Fields(3)  '上级编号
  Else
    Init
  End If
End Sub

'根据部门编号,读取部门名称
Public Function GetName(ByVal TmpId As Long) As String
  Dim rs As New ADODB.Recordset '定义结果集对象
  '使用SELECT语句读取指定部门名称
  SqlStmt = "SELECT DepName FROM Departments WHERE DepId=" _
          + Trim(Str(TmpId))
  Set rs = QueryExt(SqlStmt)
  If Not rs.EOF Then
    GetName = Trim(rs.Fields(0))
  Else
    GetName = ""
  End If
End Function

'返回新记录的编号,当前最大编号加1
Public Function GetNewId() As Long
  Dim TmpId As Long
  Dim rs As New ADODB.Recordset
  '使用SELECT语句,读取最大的编号
  SqlStmt = "SELECT Max(DepId) FROM Departments"
  Set rs = QueryExt(SqlStmt)
  If rs.EOF Then
    GetNewId = 1
  Else
    GetNewId = rs.Fields(0) + 1
  End If
End Function

'判断指定的部门中是否存在员工记录
Public Function HaveEmp(ByVal TmpDepid As Long) As Boolean
  Dim rs As New ADODB.Recordset
  '使用SELECT语句在Employees表中读取DepId字段等于TmpDepid的记录
  SqlStmt = "SELECT * FROM Employees WHERE DepId=" + Trim(Str(TmpDepid))
  Set rs = QueryExt(SqlStmt)
  If Not rs.EOF Then
    HaveEmp = True
  Else
    HaveEmp = False
  End If
End Function

'判断一个部门是否包含下级部门,在删除部门记录时使用
Public Function HaveSon(ByVal TmpUpperId As Long) As Boolean
  Dim rs As New ADODB.Recordset
  SqlStmt = "SELECT DepId FROM Departments WHERE UpperId=" _
          + Trim(Str(TmpUpperId))
  Set rs = QueryExt(SqlStmt)
  If Not rs.EOF Then
    HaveSon = True
  Else
    HaveSon = False
  End If
End Function

'判断部门名称是否存在
Public Function In_DB(ByVal DepName As String, _
                      ByVal DepUpper As Long) As Boolean
  Dim rs As New ADODB.Recordset
 
  SqlStmt = "SELECT DepId FROM Departments WHERE DepName='" + Trim(DepName) _
             + "' and UpperId=" + Trim(Str(DepUpper))
  Set rs = QueryExt(SqlStmt)
  If Not rs.EOF Then
    In_DB = True
  Else
    In_DB = False
  End If
End Function

Public Function Insert() As Long
  Dim DepId As Long
  '生成新的编号
  DepId = GetNewId
  
  SqlStmt = "INSERT INTO Departments VALUES(" + Trim(Str(DepId)) + ",'" _
            + Trim(DepName) + "','" + Trim(Describes) _
            + "'," + Trim(Str(UpperId)) + ")"
  SQLExt (SqlStmt)
  Insert = DepId    '返回记录编号
End Function

'读取指定部门编号的所有下级部门信息
Public Sub Load_Departments_ByUpper(UpperId As Long)
  Dim i As Integer
  Dim rs As New ADODB.Recordset
  '初始化部门数组
  Erase Arr_DepName
  Erase Arr_DepDescribe
  Erase Arr_DepId
  ReDim Arr_DepName(0)
  ReDim Arr_DepDescribe(0)
  ReDim Arr_DepId(0)
  
  '设置SELECT语句
  SqlStmt = "SELECT DepId,DepName,Describes FROM Departments WHERE UpperId=" _
          + Trim(Str(UpperId)) + " ORDER BY DepId"
  Set rs = QueryExt(SqlStmt)
  i = 0
  Do Until rs.EOF
    '读取部门编号
    ReDim Preserve Arr_DepId(i + 1)
    Arr_DepId(i) = rs.Fields(0)
    '读取部门名称
    ReDim Preserve Arr_DepName(i + 1)
    Arr_DepName(i) = Trim(rs.Fields(1))
    '读取部门描述
    ReDim Preserve Arr_DepDescribe(i + 1)
    If IsNull(rs.Fields(2)) Then
      Arr_DepDescribe(i) = ""
    Else
      Arr_DepDescribe(i) = Trim(rs.Fields(2))
    End If
    rs.MoveNext
    i = i + 1
  Loop
End Sub

'更新数据
Public Sub Update(ByVal TmpId As Long)
  '设置UPDATE语句
  SqlStmt = "UPDATE Departments SET DepName='" + Trim(DepName) _
          + "',Describes='" + Trim(Describes) _
          + "' WHERE DepId=" + Trim(Str(TmpId))
  SQLExt (SqlStmt)
End Sub

⌨️ 快捷键说明

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