📄 rsclsoperator.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 1 'vbDataSource
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "rsclsOperator"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
'##ModelId=3D3389D90095
Public SaveMode As EnumSaveMode
'##ModelId=3D3389DB0029
Private WithEvents rs As Recordset
Attribute rs.VB_VarHelpID = -1
'##ModelId=3D3389D90351
Private vPKValues() As Variant
'##ModelId=3D3389DA00C8
Private TRS As New ADODB.Recordset
'##ModelId=3D3389DA0121
Public Query_Alias As String
'##ModelId=3D3389DA015D
Private mbDataInitialized As Boolean
'##ModelId=3D3389DA019A
Private mbAddingRecord As Boolean
'##ModelId=3D3389DA01E0
Private mbDeleteInProgress As Boolean
'##ModelId=3D3389DA0226
Private bInitComplete As Boolean
'##ModelId=3D3389DD0234
Public Event rsMoveComplete()
'##ModelId=3D3389DD0270
Public Event DeleteRecordComplete()
'##ModelId=3D3389DD02A2
Public Event rsUpdateEvent(vFieldName As Variant)
Public Property Get RecordCount() As Long
RecordCount = rs.RecordCount
End Property
'##ModelId=3D3389DB0231
Public Property Let Alias(NewAlias As Variant)
If IsNull(NewAlias) Then
rs("Alias") = Null
Else
rs("Alias") = CStr(NewAlias)
End If
End Property
'##ModelId=3D3389DB0295
Public Property Get Alias() As Variant
Alias = rs("Alias")
End Property
'##ModelId=3D3389DB02C7
Public Property Let OperateLevel(NewOperateLevel As Variant)
If IsNull(NewOperateLevel) Then
rs("OperateLevel") = Null
Else
rs("OperateLevel") = CStr(NewOperateLevel)
End If
End Property
'##ModelId=3D3389DB0318
Public Property Get OperateLevel() As Variant
OperateLevel = rs("OperateLevel")
End Property
'##ModelId=3D3389DB0354
Public Property Let Dept(NewDept As Variant)
If IsNull(NewDept) Then
rs("Dept") = Null
Else
rs("Dept") = CStr(NewDept)
End If
End Property
'##ModelId=3D3389DB03A4
Public Property Get Dept() As Variant
Dept = rs("Dept")
End Property
'##ModelId=3D3389DB03D6
Public Property Let Operator(NewOperator As Variant)
If IsNull(NewOperator) Then
rs("Operator") = Null
Else
rs("Operator") = CStr(NewOperator)
End If
End Property
'##ModelId=3D3389DC0048
Public Property Get Operator() As Variant
Operator = rs("Operator")
End Property
'##ModelId=3D3389DC007A
Public Property Let Password(NewPassword As Variant)
If IsNull(NewPassword) Then
rs("Password") = Null
Else
rs("Password") = CStr(NewPassword)
End If
End Property
'##ModelId=3D3389DC00CA
Public Property Get Password() As Variant
Password = rs("Password")
End Property
'##ModelId=3D3389DC0106
Public Property Let AbsolutePosition(lAbsolutePosition As Long)
rs.AbsolutePosition = lAbsolutePosition
End Property
'##ModelId=3D3389DC0156
Public Property Get AbsolutePosition() As Long
AbsolutePosition = rs.AbsolutePosition
End Property
'##ModelId=3D3389DC0188
Public Property Get BOF() As Boolean
BOF = rs.BOF
End Property
'##ModelId=3D3389DC01C4
Public Property Get EOF() As Boolean
EOF = rs.EOF
End Property
'##ModelId=3D3389DC01F7
Public Function returnRecordset() As ADODB.Recordset
Set returnRecordset = rs
End Function
'##ModelId=3D3389DC021F
Public Sub Refresh()
rs.Requery
End Sub
'##ModelId=3D3389DC0251
Private Sub Class_GetDataMember(DataMember As String, Data As Object)
On Error GoTo LockOperatorGetDateMemberErr
bInitComplete = False
Select Case LCase(DataMember)
Case "":
With TRS
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
If SaveMode = adImmediate Then
.LockType = adLockOptimistic
Else
.LockType = adLockBatchOptimistic
End If
If Not cnnLock.State = adStateOpen Then
cnnLock.Open
End If
.Open "select * from LockOperator", cnnLock, adOpenDynamic
End With
ReDim vPKValues(2, 0)
Set rs = TRS
Set Data = TRS
Case "byalias"
If Not mbDataInitialized Then
If SaveMode = adImmediate Then
TRS.LockType = adLockOptimistic
Else
TRS.LockType = adLockBatchOptimistic
End If
With TRS
.ActiveConnection = cnnLock
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.Open "Select * from LockOperator where Alias='" & Query_Alias & "'"
End With
mbDataInitialized = True
Set rs = TRS
End If
rs.UpdateBatch
ReDim vPKValues(2, 0)
Set Data = rs
End Select
bInitComplete = True
Exit Sub
LockOperatorGetDateMemberErr:
Err.Raise Err.Number, Err.Description & vbCrLf & "LockOperator.GetDataMember", Err.Source
End Sub
'##ModelId=3D3389DC02B5
Private Sub Class_Initialize()
mbDataInitialized = False
End Sub
'##ModelId=3D3389DC02DD
Private Sub Class_Terminate()
Set TRS = Nothing
Set rs = Nothing
End Sub
'##ModelId=3D3389DC030F
Public Sub Move(lRows As Long)
On Error GoTo errMove:
rs.Move lRows
Exit Sub
errMove:
End Sub
'##ModelId=3D3389DC034B
Public Sub MoveNext()
If (Not rs.EOF) Then
rs.MoveNext
End If
End Sub
'##ModelId=3D3389DC0373
Public Sub MoveFirst()
If rs.RecordCount > 0 Then
rs.MoveFirst
End If
End Sub
'##ModelId=3D3389DC039B
Public Sub MovePrevious()
If (Not rs.BOF) Then
rs.MovePrevious
End If
End Sub
'##ModelId=3D3389DC03C3
Public Sub MoveLast()
If rs.RecordCount > 0 Then
rs.MoveLast
End If
End Sub
'##ModelId=3D3389DD0003
Private Sub RS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
If rs.BOF Then
Exit Sub
End If
If rs.EOF Then
Exit Sub
End If
RaiseEvent rsMoveComplete
End Sub
'##ModelId=3D3389DD00B8
Private Function GetPKValue(vBookMark As Variant, sColName As String) As Variant
Dim i As Integer
GetPKValue = rs(sColName)
For i = 1 To UBound(vPKValues, 2)
If vPKValues(0, i) = vBookMark And LCase(vPKValues(1, i)) = LCase(sColName) Then
GetPKValue = vPKValues(2, i)
Exit Function
End If
Next i
End Function
'##ModelId=3D3389DD011C
Public Sub UpdateBatch()
On Error GoTo LockOperatorUpdateError
rs.UpdateBatch
If mbAddingRecord = True Then
mbAddingRecord = False
Me.MoveLast
End If
Exit Sub
LockOperatorUpdateError:
Err.Raise Err.Number, Err.Description & vbCrLf & "LockOperator.UpdateBatch", Err.Source
End Sub
'##ModelId=3D3389DD014E
Public Sub Update()
On Error GoTo LockOperatorUpdateErr
rs.UpdateBatch adAffectCurrent
If mbAddingRecord = True Then
mbAddingRecord = False
Me.MoveLast
End If
Exit Sub
LockOperatorUpdateErr:
Err.Raise Err.Number, Err.Description & vbCrLf & "LockOperator.Update", Err.Source
End Sub
'##ModelId=3D3389DD0176
Public Sub AddRecord()
On Error GoTo LockOperatorAddrecordErr
If mbAddingRecord = True Then
Exit Sub
End If
With rs
.AddNew
End With
mbAddingRecord = True
Exit Sub
LockOperatorAddrecordErr:
Err.Raise Err.Number, Err.Description & vbCrLf & "LockOperator.Addrecord", Err.Source
End Sub
'##ModelId=3D3389DD019E
Public Sub rsUpdate(vFieldName As Variant)
RaiseEvent rsUpdateEvent(vFieldName)
End Sub
'##ModelId=3D3389DD01E4
Public Sub Delete()
On Error GoTo LockOperatorDeleteErr
If mbAddingRecord = True Then
Exit Sub
End If
rs.Delete adAffectCurrent
Me.MovePrevious
Exit Sub
LockOperatorDeleteErr:
Err.Raise Err.Number, Err.Description & vbCrLf & "LockOperator.Delete", Err.Source
End Sub
'##ModelId=3D3389DD020C
Public Sub CancelUpdate()
On Error GoTo LockOperatorCancelUpdateErr
If mbAddingRecord = True Then
If Me.SaveMode = adBatch Then
rs.CancelBatch adAffectCurrent
mbAddingRecord = False
ElseIf Me.SaveMode = adImmediate Then
rs.CancelUpdate
mbAddingRecord = False
End If
End If
Exit Sub
LockOperatorCancelUpdateErr:
Err.Raise Err.Number, Err.Description & vbCrLf & "LockOperator.CancelUpdate", Err.Source
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -