📄 departments.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 UpperId 数字,长整型 上级部门编号,,必填字段(是)
Public DepId As Integer
Public DepName As String
Public UpperId As Integer
Public Sub Init()
DepId = -1
DepName = ""
UpperId = -1
End Sub
'读取当前部门记录
Public Sub GetInfo(ByVal TmpId As Integer)
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)) '部门名称
UpperId = rs.Fields(3) '上级编号
Else
Init
End If
End Sub
'根据部门编号,读取部门名称
Public Function GetName(ByVal TmpId As Integer) 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
'判断指定的部门中是否存在员工记录
Public Function HaveEmp(ByVal TmpDepid As Integer) 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 Integer) 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 Integer) 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 Sub Load_Departments_ByUpper(UpperId As Integer)
Dim i As Integer
Dim rs As New ADODB.Recordset
'初始化部门数组
Erase Arr_DepName
Erase Arr_DepId
ReDim Arr_DepName(0)
ReDim Arr_DepId(0)
'设置SELECT语句
SqlStmt = "SELECT DepId,DepName 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))
rs.MoveNext
i = i + 1
Loop
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -