亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? expensecode.cls

?? 完整的三層數據庫應用程序
?? 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 = ExpenseCode
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Implements COMEXDataSourceSingle      
Private m_Fields() 
Public Event OnRecordSaved(byRef aExpenseCode As ExpenseCode)
Public Event OnRecordMarkForDelete(byRef aExpenseCode As ExpenseCode)
Public Event OnDirty(byVal IsDirty As Boolean)
Public Event OnRecordLoad(byRef aExpenseCode As ExpenseCode)

Private WithEvents mobjValid As BrokenRules
Event Valid(ByVal IsValid As Boolean)
Private m_ExpenseCode As String
Private m_ExpenseCodeID As Long
Private m_OldExpenseCodeID As Long
Private m_IsNew As Boolean
Private m_IsDirty As Boolean
Private m_IsDeleted As Boolean
	      

Friend Property Let IsNew(Byval vData As boolean)
  m_IsNew = vData
End Property

Public Property Get IsNew() As Boolean
  IsNew = m_IsNew
End Property

Friend Property Let IsDirty(Byval vData As boolean)
  m_IsDirty = vData
  RaiseEvent OnDirty(vData)
End Property

Public Property Get IsDirty() As Boolean
  IsDirty = m_IsDirty
End Property

Friend Property Let IsDeleted(Byval vData As boolean)
  m_IsDeleted = vData
  RaiseEvent OnRecordMarkForDelete(Me) 
End Property

Public Property Get IsDeleted() As Boolean
  IsDeleted = m_IsDeleted
End Property    

Public Property Get IsValid() As Boolean
  IsValid = (mobjValid.Count = 0)
End Property

Private Sub mobjValid_BrokenRule()
  RaiseEvent Valid(False)
End Sub

Private Sub mobjValid_NoBrokenRules()
  RaiseEvent Valid(True)
End Sub
'******************************************************************************
'Begin property get/let/set                                                   *
'******************************************************************************

Friend Property Let OldExpenseCodeID(vData As Long)
  m_OldExpenseCodeID = vData
End Property

Public Property Let ExpenseCode (vData As String)
  m_ExpenseCode = vData 	
  IsDirty = True
End Property

Public Property Get ExpenseCode() As String
  ExpenseCode = m_ExpenseCode
End Property


Public Property Let ExpenseCodeID (vData As Long)
  m_ExpenseCodeID = vData 	
  IsDirty = True
End Property

Public Property Get ExpenseCodeID() As Long
  ExpenseCodeID = m_ExpenseCodeID
End Property


'******************************************************************************
'End property get/let/set                                                     *
'******************************************************************************	

'******************************************************************************
'*                                                                            *
'* Name:    Clear                                                             *
'*                                                                            *
'* Purpose: Reset this object and initialize data to default.                 *
'*                                                                            *
'******************************************************************************
Public Sub Clear() 
  m_IsNew = True
  m_IsDirty = False
  m_IsDeleted = False 

  m_ExpenseCode = vbnullstring
  m_ExpenseCodeID = 0


  Set mobjValid = New BrokenRules
  ReSetBrokenRule True 
End Sub	


Public Sub ReSetBrokenRule(byval BrokenAll As boolean)  
End Sub


Private Sub Class_Initialize()
  Clear
  m_Fields = Array("ExpenseCode", "ExpenseCodeID")  
End Sub
Private Sub Class_Terminate()
  Clear
End Sub

'******************************************************************************
'*                                                                            *
'* Name:    Save                                                              *
'*                                                                            *
'* Purpose: Save a changed object or a new record into database.              *
'*                                                                            *
'* Returns: True when successfully saved, false when failed to save.          *
'*                                                                            *
'******************************************************************************
Public Function Save(optional Byval bolStartTran As boolean = True) As Boolean   
  Dim adoRS As ADODB.Recordset
  Dim strSQL As String
  Dim Count As Long, i As Long, bolInTran As boolean 
  
  On Error GoTo Err_Save
  
  If Not IsDirty Then GoTo Skip_Save
  
                 
  If Not IsValid Then 
    InvalidHandler(mobjValid.BrokenRules)
    GoTo Done_Save
  End If
  
  If bolStartTran Then 
    Conn.BeginTrans  
    bolInTran = True
  End If
  
  Set adoRS = New ADODB.Recordset  

  strSQL ="Select * FROM [Expense Codes] a WHERE  a.ExpenseCodeID=" & m_OldExpenseCodeID & ""
  adoRS.Open strSQL , Conn, adOpenKeyset, adLockOptimistic
  With adoRS
  If Not .EOF Then
    If m_IsDeleted Then
      .Delete
    Else	
SaveRecord:
      adoRS("ExpenseCode") = IIF(m_ExpenseCode= vbNullString, vbNullString, m_ExpenseCode)

      .Update
      m_ExpenseCodeID = adoRS("ExpenseCodeID")
      m_OldExpenseCodeID = m_ExpenseCodeID
    End If
  Else
    If Not m_IsDeleted Then
      .AddNew
      GoTo SaveRecord
    End If
  End If
  .Close
  End With

Skip_Save:

  If bolInTran Then 
    Conn.CommitTrans
    bolInTran = False
  End If
  Save = True
  IsDirty = False     
  IsNew = False
  RaiseEvent OnRecordSaved(Me)
Done_Save:
  Exit Function

Err_Save:
  If bolStartTran Then GoSub Rollback_Save
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"ExpenseCode","Save")
  GoTo Done_Save
Rollback_Save:
  If bolInTran Then Conn.RollbackTrans
  Return
End Function
'******************************************************************************
'*                                                                            *
'* Name:    Delete                                                            *
'*                                                                            *
'* Purpose: mark this object and it's children as to be deleted when save     *
'*          is callled. Note it doesn't do the deletion in the database.      *
'******************************************************************************
Public Sub Delete()

  IsDirty = True
  IsDeleted = True  
End Sub    
'******************************************************************************
'*                                                                            *
'* Name:    DeleteList                                                        *
'*                                                                            *
'* Purpose: Delete record in database based on a where SQL clause.            *
'*          Note it doesn't delete children records.                          *   
'*                                                                            *
'******************************************************************************
Public Function DeleteList(ByVal strDeleteSQL As String) As Boolean
  On Error GoTo Err_DeleteList
  Dim strSQL As String

  strSQL = "DELETE * FROM [Expense Codes] " & strDeleteSQL 
  Conn.Execute strSQL
  DeleteList = True
  
  Exit Function
Err_DeleteList:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"ExpenseCode","DeleteList")
End Function
    
'******************************************************************************
'*                                                                            *
'* Name:    Load                                                              *
'*                                                                            *
'* Purpose: Get the specified record. If found, fill this object with correct *
'*          record data. GetChildren is optional so if true get children      *
'*          record as well.                                                   *
'*                                                                            *
'* Returns: Boolean - True (record found); False (otherwise).                 *
'*                                                                            *
'******************************************************************************
Public Function Load(ByVal vExpenseCodeID As Long) As Boolean
  On Error GoTo Err_Load

  Dim adoRS As New ADODB.Recordset
  Dim strSQL As String

  Clear

  strSQL = "Select a.ExpenseCode,a.ExpenseCodeID From [Expense Codes] a WHERE a.ExpenseCodeID=" & vExpenseCodeID & ""

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    
  With adoRS
    If Not .EOF Then
      m_ExpenseCode= IIF(IsNull(adoRS("ExpenseCode")), "", adoRS("ExpenseCode"))
      m_ExpenseCodeID= IIF(IsNull(adoRS("ExpenseCodeID")), 0, adoRS("ExpenseCodeID"))
      m_OldExpenseCodeID = m_ExpenseCodeID

	  ReSetBrokenRule False 
    Else
      Load = False
      .Close
      Exit Function
    End If
    .Close
  End With


  Load = True
  IsDirty = False  
  IsNew = False
  RaiseEvent OnRecordLoad(Me)
  Exit Function

Err_Load:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"ExpenseCode","Load")
End Function


'******************************************************************************
'*                                                                            *
'* Name:    LoadList                                                          *
'*                                                                            *
'* Purpose: Load records based on a where SQL clause.                         *
'*          You can include orderby clause in SQLWhereClause to sort data.    *  
'*                                                                            *
'* Return: a ExpenseCodes object                  *
'******************************************************************************
Function LoadList(Optional ByVal SQLWhereClause As String = vbNullString , Optional GetChildren As Boolean = False) As ExpenseCodes
  On Error GoTo Err_LoadList
  Dim adoRS As New ADODB.Recordset
  Dim strSQL As String
  Dim uExpenseCode As ExpenseCode
  Dim uExpenseCodes As New ExpenseCodes

  strSQL = "Select a.ExpenseCode,a.ExpenseCodeID From [Expense Codes] a" & SQLWhereClause

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    
  With adoRS
    Do While Not .EOF
      Set uExpenseCode = Nothing
      Set uExpenseCode = New ExpenseCode
      uExpenseCode.ExpenseCode= IIF(IsNull(adoRS("ExpenseCode")), "", adoRS("ExpenseCode"))
      uExpenseCode.ExpenseCodeID= IIF(IsNull(adoRS("ExpenseCodeID")), 0, adoRS("ExpenseCodeID"))
      uExpenseCode.OldExpenseCodeID = uExpenseCode.ExpenseCodeID
	
      uExpenseCode.IsDirty = False    
      uExpenseCode.IsNew = False 
      uExpenseCode.ReSetBrokenRule False
      uExpenseCodes.AddExisting uExpenseCode, ":" & uExpenseCode.ExpenseCodeID 

      .MoveNext
    Loop
    .Close
  End With

  Set LoadList = uExpenseCodes
  Exit Function

Err_LoadList:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"ExpenseCode","LoadList")
End Function



'******************************************************************************
'*                                                                            *
'* Name:    CopyMe                                                            *
'*                                                                            *
'* Purpose: this method make another copy of this object in the memory        *
'*                                                                            *
'* Returns: Another ExpenseCode.                              *
'*                                                                            *
'******************************************************************************
Public Function CopyMe() As ExpenseCode
  Dim uExpenseCode As New ExpenseCode

  uExpenseCode.ExpenseCode = m_ExpenseCode
  uExpenseCode.ExpenseCodeID = m_ExpenseCodeID
  uExpenseCode.IsDirty = m_IsDirty
  uExpenseCode.IsNew = m_IsNew
  uExpenseCode.IsDeleted = m_IsDeleted
  uExpenseCode.OldExpenseCodeID = m_OldExpenseCodeID
  Set CopyMe = uExpenseCode
End Function     


Private Function COMEXDataSourceSingle_GetData(ByVal Field As Long) As Variant
  On Error Resume Next
  If Field > 0 AND Field <= UBound(m_Fields) + 1 Then     
    COMEXDataSourceSingle_GetData = CallByName(Me, m_Fields(Field-1) & "IncludeLookup" , vbGet)
  	If err<>0 Then COMEXDataSourceSingle_GetData = CallByName(Me, m_Fields(Field-1), vbGet)
  Else
    COMEXDataSourceSingle_GetData = vbNullString
  End If
End Function

Private Function COMEXDataSourceSingle_GetDataByName(ByVal FieldName As String) As Variant
  On Error Resume Next
  COMEXDataSourceSingle_GetDataByName = CallByName(Me, FieldName & "IncludeLookup", vbGet)
  If err<>0 Then COMEXDataSourceSingle_GetDataByName = CallByName(Me, FieldName, vbGet)
End Function

Private Function COMEXDataSourceSingle_GetFieldCount() As Long
  COMEXDataSourceSingle_GetFieldCount = UBound(m_Fields) + 1
End Function

Private Function COMEXDataSourceSingle_GetFieldName(ByVal Field As Long) As String
  If Field > 0 AND Field <= UBound(m_Fields) + 1 Then 
    COMEXDataSourceSingle_GetFieldName = m_Fields(Field - 1)
  Else
    COMEXDataSourceSingle_GetFieldName = vbNullString
  End If
End Function

Private Sub COMEXDataSourceSingle_SetData(ByVal Field As Long, ByVal newData As Variant)     
  If Field > 0 AND Field <= UBound(m_Fields) + 1 Then 
    Select Case m_Fields(Field-1)

      Case "ExpenseCode"
        Me.ExpenseCode =  newData
      Case "ExpenseCodeID"
        Me.ExpenseCodeID =  newData
    End Select
  End If
End Sub  

Private Sub COMEXDataSourceSingle_SetDataByName(ByVal FieldName As string, ByVal newData As Variant)     
  Select Case FieldName

    Case "ExpenseCode"
        Me.ExpenseCode =  newData
    Case "ExpenseCodeID"
        Me.ExpenseCodeID =  newData
  End Select  
End Sub

Private Sub COMEXDataSourceSingle_Delete()
  Call Delete
End Sub 

Private Function COMEXDataSourceSingle_Save() As Boolean
  COMEXDataSourceSingle_Save = Save
End Function 

Private Function COMEXDataSourceSingle_CopyMe() As COMEXDataSourceSingle
  Set COMEXDataSourceSingle_CopyMe = CopyMe
End Function

Private Property Get COMEXDataSourceSingle_IsDeleted() As Boolean
  COMEXDataSourceSingle_IsDeleted = IsDeleted
End Property

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣视频一区| 欧美国产乱子伦| 色综合久久中文字幕综合网| 国产一区二区三区免费观看| 麻豆中文一区二区| 青青草91视频| 精品一区二区免费视频| 久久精品国产亚洲a| 久久97超碰国产精品超碰| 国产精品羞羞答答xxdd| 国产在线国偷精品产拍免费yy| 黄页视频在线91| 成人毛片视频在线观看| av在线不卡观看免费观看| 色噜噜狠狠一区二区三区果冻| 在线免费观看视频一区| 欧美一区二区在线视频| 2024国产精品| 亚洲男人的天堂一区二区| 日韩国产在线一| 精品无码三级在线观看视频| 成人黄色软件下载| 欧美日精品一区视频| 精品日韩成人av| 日韩伦理电影网| 人人超碰91尤物精品国产| 国产精选一区二区三区| 欧美丝袜丝nylons| 26uuu欧美| 亚洲五码中文字幕| 国产精品一二三| 欧美喷水一区二区| 国产精品嫩草久久久久| 亚洲高清免费观看| 国产精品66部| 欧美日韩aaaaaa| 国产精品视频一二三| 婷婷激情综合网| 不卡欧美aaaaa| 日韩一区二区三区在线视频| 中文字幕一区二区三区在线不卡| 丝袜美腿一区二区三区| 99riav久久精品riav| 久久综合九色综合97婷婷女人| 亚洲黄色小视频| 成熟亚洲日本毛茸茸凸凹| 欧美高清一级片在线| 亚洲视频在线观看三级| 国产一区二区三区免费播放| 欧美精品丝袜久久久中文字幕| 中文一区一区三区高中清不卡| 青娱乐精品视频在线| 91老司机福利 在线| 欧美国产日韩精品免费观看| 捆绑调教美女网站视频一区| 日本精品裸体写真集在线观看| 国产免费观看久久| 国产自产高清不卡| 欧美精品视频www在线观看| 亚洲激情校园春色| 99精品视频一区二区三区| 国产亚洲成年网址在线观看| 久久国产免费看| 欧美va日韩va| 美女在线观看视频一区二区| 欧美精品在线一区二区| 亚洲成a人片在线观看中文| 色婷婷精品久久二区二区蜜臀av| 欧美国产日韩亚洲一区| 成人免费观看av| 日本一区二区三区国色天香| 国产精品99久久久久久久女警 | 中文字幕av一区二区三区免费看| 蜜臀av在线播放一区二区三区| 欧美少妇性性性| 丝袜a∨在线一区二区三区不卡| 欧美日韩中字一区| 视频一区二区三区中文字幕| 欧美一卡2卡3卡4卡| 麻豆精品久久精品色综合| 日韩午夜av电影| 韩国毛片一区二区三区| 日本一区二区三区久久久久久久久不 | gogo大胆日本视频一区| 国产精品久久久久久久久动漫| 岛国av在线一区| 怡红院av一区二区三区| 欧美欧美欧美欧美| 国产中文字幕一区| 中文字幕一区二区三区四区不卡| 色八戒一区二区三区| 天天色 色综合| 久久久久国产精品麻豆| 99re在线视频这里只有精品| 亚洲国产精品一区二区久久| 91精品久久久久久久99蜜桃| 国产一区在线看| 一区二区三区**美女毛片| 欧美日韩国产区一| 国产成人精品免费一区二区| 亚洲日本成人在线观看| 91精品国模一区二区三区| 成人在线综合网| 午夜在线电影亚洲一区| 久久影院视频免费| 色拍拍在线精品视频8848| 老汉av免费一区二区三区 | 青娱乐精品视频| 日本一区二区综合亚洲| 在线免费一区三区| 高清av一区二区| 日韩 欧美一区二区三区| 国产精品区一区二区三| 91.麻豆视频| 97精品超碰一区二区三区| 裸体健美xxxx欧美裸体表演| 综合久久久久综合| 日韩欧美国产系列| 一本大道久久a久久综合| 激情文学综合网| 香蕉久久夜色精品国产使用方法| 国产精品色在线| 精品999久久久| 欧美日韩高清一区二区三区| 不卡av在线网| 国产成人精品午夜视频免费 | 国产亚洲精品bt天堂精选| 欧美日韩黄色一区二区| 色综合久久久久网| 国产电影一区二区三区| 六月丁香婷婷色狠狠久久| 亚洲v精品v日韩v欧美v专区| 自拍偷拍亚洲综合| 国产日韩欧美a| 国产丝袜欧美中文另类| 欧美电视剧免费全集观看| 在线成人小视频| 欧美日韩一级片网站| 在线视频你懂得一区二区三区| hitomi一区二区三区精品| 国产成a人无v码亚洲福利| 国产在线精品不卡| 国产一区不卡视频| 黄色日韩三级电影| 久久国产精品72免费观看| 免费精品视频在线| 日本vs亚洲vs韩国一区三区 | 国产1区2区3区精品美女| 韩国av一区二区三区| 九九国产精品视频| 久久国产免费看| 国产精品一区二区在线看| 韩日av一区二区| 国产成都精品91一区二区三| 懂色av一区二区三区免费看| 懂色av中文字幕一区二区三区 | 久久九九国产精品| 久久久99久久| 亚洲视频在线观看一区| 亚洲一区免费在线观看| 香蕉久久夜色精品国产使用方法| 天使萌一区二区三区免费观看| 亚洲高清中文字幕| 狂野欧美性猛交blacked| 国内不卡的二区三区中文字幕| 国产成人综合在线观看| 99麻豆久久久国产精品免费| 日本道在线观看一区二区| 欧美日韩1234| 精品国产凹凸成av人导航| 欧美激情一区在线观看| 一区二区不卡在线播放| 久久精品国产免费看久久精品| 国内精品嫩模私拍在线| 91浏览器打开| 欧美成va人片在线观看| 日本一区二区免费在线 | 国产精品欧美久久久久一区二区| 国产精品国产三级国产aⅴ中文| 一区二区三区欧美久久| 韩国av一区二区三区四区| 色综合久久88色综合天天免费| 91精品国产欧美一区二区 | 欧美午夜寂寞影院| 26uuu久久天堂性欧美| 亚洲精品国久久99热| 日韩精品久久理论片| 成人av第一页| 日韩美女在线视频| 亚洲免费av高清| 黑人巨大精品欧美一区| 欧美亚洲一区三区| 久久久久国产精品人| 三级不卡在线观看| 成人h精品动漫一区二区三区| 91精品国产欧美日韩| 一区二区三区四区激情| 国产成人精品网址| 精品乱码亚洲一区二区不卡| 一区二区三区91|