📄 employees.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 = "Employees"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'1 EmpId 自动编号,长整型 员工编号,主键
'2 EmpName 文本,长度为50 姓名,必填字段(是),允许空字符串(否)
Public EmpId As Long
Public EmpName As String
Public Sex As String
Public Nationality As String
'18 DepId 数字,长整型 所在部门编号
'20 Title 文本,长度为20 职务,必填字段(否),允许空字符串(是)
Public DepId As Integer
Public Title As String
'21 State 数字,字节 员工状态(1 - 在职人员,2 - 兼职人员,3 - 试用人员,4 - 离职人员,5 - 返聘人员,6 - 退休人员)
'22 UpperId 数字,长整型 上级员工编号
Public State As Integer
Public UpperId As Integer
Public Sub Init()
EmpId = 0
EmpName = ""
DepId = -1
Title = ""
State = 0
UpperId = 0
End Sub
Public Function GetName(ByVal TmpEmpId As Long) As String
Dim rs As New ADODB.Recordset
If TmpEmpId <= 0 Then
GetName = ""
Exit Function
End If
'设置SELECT语句,根据员工编号读取员工姓名
SqlStmt = "SELECT EmpName FROM Employees WHERE EmpId=" + Trim(Str(TmpEmpId))
Set rs = QueryExt(SqlStmt)
'从结果集中读取数据
If rs.EOF Then
GetName = ""
Else
GetName = Trim(rs.Fields(0))
End If
End Function
'根据人员编号取得编号字符串对应的所有员工姓名
Public Function GetNames(ByVal TmpEmpIds As String) As String
Dim i As Integer
Dim rs As New ADODB.Recordset
If TmpEmpIds = "" Then
GetNames = ""
Exit Function
End If
'设置SELECT语句,根据员工编号读取员工姓名
SqlStmt = "SELECT EmpName FROM Employees WHERE EmpId IN (" + Trim(Str(TmpEmpIds)) + ")"
Set rs = QueryExt(SqlStmt)
i = 0
'从结果集中读取数据
Do Until rs.EOF
If i = 0 Then
GetNames = Trim(rs.Fields(0))
Else
GetNames = GetNames + "," + Trim(rs.Fields(0))
End If
i = i + 1
rs.MoveNext
Loop
End Function
Public Function GetInfo(ByVal TmpEmpId As Long) As Boolean
Dim rs As New ADODB.Recordset
If TmpEmpId <= 0 Then
Init
GetInfo = False
Exit Function
End If
EmpId = TmpEmpId
'根据EmpId的值从表中读取数据
SqlStmt = "SELECT * FROM Employees WHERE EmpId=" + Trim(Str(TmpEmpId))
Set rs = QueryExt(SqlStmt)
If rs.EOF Then
GetInfo = False
Init
Exit Function
Else
'员工姓名
EmpName = Trim(rs.Fields(1))
'所在部门编号
If IsNull(rs.Fields(17)) Then
DepId = ""
Else
DepId = Trim(rs.Fields(17))
End If
'职务
If IsNull(rs.Fields(19)) Then
Title = ""
Else
Title = Trim(rs.Fields(19))
End If
'员工状态
If IsNull(rs.Fields(20)) Then
State = 0
Else
State = rs.Fields(20)
End If
'上级员工编号
If IsNull(rs.Fields(21)) Then
UpperId = 0
Else
UpperId = rs.Fields(21)
End If
End If
GetInfo = True
End Function
Public Sub Load_by_Dep(ByVal TmpDepid As Integer)
Dim i As Integer
Dim rs As New ADODB.Recordset
'初始化部门数组
Erase Arr_EmpId
ReDim Arr_EmpId(0)
'设置SELECT语句,读取指定部门的所有员工记录
SqlStmt = "SELECT EmpId FROM Employees WHERE DepId=" _
+ Trim(Str(TmpDepid)) + " ORDER BY EmpId"
Set rs = QueryExt(SqlStmt)
i = 0
Do Until rs.EOF
'读取部门编号
ReDim Preserve Arr_EmpId(i + 1)
Arr_EmpId(i) = rs.Fields(0)
i = i + 1
rs.MoveNext
Loop
End Sub
'取得所有员工姓名和编号放入数组Arr_EmpName和Arr_EmpId中
Public Sub GetAllEmps()
Dim i As Integer
Dim rs As New ADODB.Recordset
'初始化员工数组
Erase Arr_EmpId
Erase Arr_EmpName
ReDim Arr_EmpId(0)
ReDim Arr_EmpName(0)
'设置SELECT语句,读取所有员工记录
SqlStmt = "SELECT EmpId,EmpName FROM Employees ORDER BY EmpName"
Set rs = QueryExt(SqlStmt)
i = 0
Do Until rs.EOF
'读取员工编号和姓名
ReDim Preserve Arr_EmpId(i + 1)
Arr_EmpId(i) = rs.Fields(0)
ReDim Preserve Arr_EmpName(i + 1)
Arr_EmpName(i) = rs.Fields(1)
i = i + 1
rs.MoveNext
Loop
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -