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

📄 rsclsoperator.cls

📁 这是一个银行IC卡门禁系统软件
💻 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 + -