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

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

?? timecard.cls

?? 完整的三層數據庫應用程序
?? CLS
?? 第 1 頁 / 共 2 頁
字號:
  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,"TimeCard","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()
  m_TimeCardExpenses.Delete
  m_TimeCardHours.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 [Time Cards] " & strDeleteSQL 
  Conn.Execute strSQL
  DeleteList = True
  
  Exit Function
Err_DeleteList:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"TimeCard","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 vTimeCardID As Long, Optional ByVal GetChildren As Boolean = True) As Boolean
  On Error GoTo Err_Load

  Dim adoRS As New ADODB.Recordset
  Dim strSQL As String

  Clear

  strSQL = "Select a.DateEntered,a.EmployeeID,b.FirstName As FirstName,b.LastName As LastName,a.TimeCardID From [Time Cards] a LEFT JOIN Employees b ON a.EmployeeID = b.EmployeeID WHERE a.TimeCardID=" & vTimeCardID & ""

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    
  With adoRS
    If Not .EOF Then
      m_DateEntered= IIF(IsNull(adoRS("DateEntered")), "12:00:00AM", adoRS("DateEntered"))
      m_EmployeeID= IIF(IsNull(adoRS("EmployeeID")), 0, adoRS("EmployeeID"))
      m_FirstName= IIF(IsNull(adoRS("FirstName")), "", adoRS("FirstName"))
      m_LastName= IIF(IsNull(adoRS("LastName")), "", adoRS("LastName"))
      m_TimeCardID= IIF(IsNull(adoRS("TimeCardID")), 0, adoRS("TimeCardID"))
      m_OldTimeCardID = m_TimeCardID

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

  If GetChildren Then m_TimeCardExpenses.LoadRelated m_TimeCardID
  If GetChildren Then m_TimeCardHours.LoadRelated m_TimeCardID

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

Err_Load:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"TimeCard","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 TimeCards object                  *
'******************************************************************************
Function LoadList(Optional ByVal SQLWhereClause As String = vbNullString , Optional GetChildren As Boolean = False) As TimeCards
  On Error GoTo Err_LoadList
  Dim adoRS As New ADODB.Recordset
  Dim strSQL As String
  Dim uTimeCard As TimeCard
  Dim uTimeCards As New TimeCards

  strSQL = "Select a.DateEntered,a.EmployeeID,b.FirstName As FirstName,b.LastName As LastName,a.TimeCardID From [Time Cards] a LEFT JOIN Employees b ON a.EmployeeID = b.EmployeeID" & SQLWhereClause

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    
  With adoRS
    Do While Not .EOF
      Set uTimeCard = Nothing
      Set uTimeCard = New TimeCard
      uTimeCard.DateEntered= IIF(IsNull(adoRS("DateEntered")), "12:00:00AM", adoRS("DateEntered"))
      uTimeCard.EmployeeID= IIF(IsNull(adoRS("EmployeeID")), 0, adoRS("EmployeeID"))
      uTimeCard.FirstName= IIF(IsNull(adoRS("FirstName")), "", adoRS("FirstName"))
      uTimeCard.LastName= IIF(IsNull(adoRS("LastName")), "", adoRS("LastName"))
      uTimeCard.TimeCardID= IIF(IsNull(adoRS("TimeCardID")), 0, adoRS("TimeCardID"))
      uTimeCard.OldTimeCardID = uTimeCard.TimeCardID
	
      uTimeCard.IsDirty = False    
      uTimeCard.IsNew = False 
      uTimeCard.ReSetBrokenRule False
      uTimeCards.AddExisting uTimeCard, ":" & uTimeCard.TimeCardID 
      If GetChildren Then uTimeCard.TimeCardExpenses.LoadRelated uTimeCard.TimeCardID
      If GetChildren Then uTimeCard.TimeCardHours.LoadRelated uTimeCard.TimeCardID

      .MoveNext
    Loop
    .Close
  End With

  Set LoadList = uTimeCards
  Exit Function

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



'******************************************************************************
'*                                                                            *
'* Name:    GetEmployeesList()                                                  *
'*                                                                            *
'* Purpose: Get the lookup table data into a string.                          *
'*          This is useful for client app to fill combo box                   *
'*                                                                            *
'* Returns: a string with Column delimeter vbTab and row delimeter "|"        *
'*                                                                            *
'******************************************************************************
Function GetEmployeesList(Optional ColDelimeter As string = vbTab, Optional RowDelimeter As string = "|") As String
  Dim adoRs As New ADODB.Recordset
  Dim strSQL As string

  strSQL = "Select EmployeeID,FirstName,LastName from [Employees]"
  With adoRs
    .Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    If Not .EOF Then
      GetEmployeesList = _
        adoRs.GetString(adClipString, , vbTab, "|", vbNullString)
    Else
      GetEmployeesList = vbNullString 
    End If
    .Close
  End With
End Function

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

  uTimeCard.DateEntered = m_DateEntered
  uTimeCard.EmployeeID = m_EmployeeID
  uTimeCard.FirstName = m_FirstName
  uTimeCard.LastName = m_LastName
  uTimeCard.TimeCardID = m_TimeCardID
  uTimeCard.IsDirty = m_IsDirty
  uTimeCard.IsNew = m_IsNew
  uTimeCard.IsDeleted = m_IsDeleted
  uTimeCard.OldTimeCardID = m_OldTimeCardID

  Dim uTimeCardExpense As TimeCardExpense
  Dim oTimeCardExpense As TimeCardExpense
  For Each oTimeCardExpense In m_TimeCardExpenses
    Set uTimeCardExpense = Nothing
    Set uTimeCardExpense = New TimeCardExpense
    Set uTimeCardExpense = oTimeCardExpense.CopyMe
    uTimeCard.TimeCardExpenses.AddExisting uTimeCardExpense, m_TimeCardExpenses.Key(oTimeCardExpense)
  Next


  Dim uTimeCardHour As TimeCardHour
  Dim oTimeCardHour As TimeCardHour
  For Each oTimeCardHour In m_TimeCardHours
    Set uTimeCardHour = Nothing
    Set uTimeCardHour = New TimeCardHour
    Set uTimeCardHour = oTimeCardHour.CopyMe
    uTimeCard.TimeCardHours.AddExisting uTimeCardHour, m_TimeCardHours.Key(oTimeCardHour)
  Next

  Set CopyMe = uTimeCard
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 "DateEntered"
        Me.DateEntered =  newData
      Case "EmployeeID"
        'Why? ComboBox returns a string with all subprop information, we need to parse it 
        'and update all properties
        Me.EmployeeIDIncludeLookup =  newData
      Case "FirstName"
        Me.FirstName =  newData
      Case "LastName"
        Me.LastName =  newData
      Case "TimeCardID"
        Me.TimeCardID =  newData
    End Select
  End If
End Sub  

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

    Case "DateEntered"
        Me.DateEntered =  newData
    Case "EmployeeID"
        'Why? ComboBox returns a string with all subprop information, we need to parse it 
        'and update all properties
        Me.EmployeeIDIncludeLookup =  newData
    Case "FirstName"
        Me.FirstName =  newData
    Case "LastName"
        Me.LastName =  newData
    Case "TimeCardID"
        Me.TimeCardID =  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一区二区三区免费野_久草精品视频
天堂资源在线中文精品| 亚洲午夜精品网| 日韩欧美国产综合| 欧美日韩亚洲丝袜制服| 精品视频在线免费| 日韩精品一区二区三区在线| 欧美成人一区二区三区片免费| 日韩欧美国产综合一区| 久久日韩粉嫩一区二区三区| 久久无码av三级| 国产精品久久久久久久浪潮网站| 亚洲欧美色综合| 亚洲国产日韩a在线播放性色| 午夜精品视频在线观看| 久久国产视频网| 成人在线综合网| 欧洲亚洲国产日韩| 69p69国产精品| 国产日韩精品一区| 一区二区三区资源| 日韩有码一区二区三区| 美女脱光内衣内裤视频久久网站| 国产成人一区在线| 欧美系列在线观看| 欧美大肚乱孕交hd孕妇| 成人免费在线视频| 天天综合天天综合色| 国产精品一区二区黑丝| 欧美自拍偷拍一区| 久久综合五月天婷婷伊人| 亚洲私人影院在线观看| 久久国内精品自在自线400部| 成人app在线观看| 91精品免费观看| 日韩理论片在线| 精品一区二区在线免费观看| 色婷婷久久久亚洲一区二区三区| 日韩精品在线看片z| 一区二区三区精品视频| 国产精品一区二区x88av| 在线观看不卡视频| 国产女同性恋一区二区| 亚洲妇女屁股眼交7| 成人午夜看片网址| 91精品国产综合久久小美女| 亚洲日本在线看| 国产精品一区二区三区四区| 欧美精品一区二区三| 一区二区三区蜜桃网| 成人精品在线视频观看| 欧美成人性战久久| 午夜国产不卡在线观看视频| 色婷婷国产精品| 中文av一区特黄| 国产一区二区不卡| 日韩精品专区在线影院重磅| 亚洲超丰满肉感bbw| 91一区二区在线观看| 日本一区二区免费在线观看视频| 久久国产精品色| 欧美一区二区三区视频| 午夜精品福利一区二区蜜股av| av亚洲精华国产精华精华| 久久精品日产第一区二区三区高清版 | 国产午夜亚洲精品理论片色戒| 视频在线观看一区| 欧美日韩国产一级片| 亚洲在线视频免费观看| 97se亚洲国产综合自在线不卡 | 亚洲国产精品v| 国产一区在线观看视频| www国产亚洲精品久久麻豆| 毛片av一区二区| 精品日韩在线一区| 国产精品主播直播| 亚洲一区二区三区四区在线免费观看| 不卡av在线网| 最新成人av在线| 色呦呦网站一区| 亚洲大片一区二区三区| 精品视频1区2区| 久久精品72免费观看| 精品福利一区二区三区| 国产精品66部| 亚洲欧美激情在线| 欧美日韩在线一区二区| 免费日韩伦理电影| 久久精品水蜜桃av综合天堂| 波多野结衣的一区二区三区| 亚洲欧美二区三区| 欧美日韩美少妇| 韩国三级电影一区二区| 中文一区二区在线观看| 欧美性猛交一区二区三区精品| 日本亚洲最大的色成网站www| 欧美电影免费提供在线观看| 成人小视频免费观看| 亚洲色图视频网| 欧美日韩一区二区电影| 韩国中文字幕2020精品| 亚洲三级在线播放| 日韩视频一区二区三区 | 中文字幕亚洲一区二区va在线| 不卡免费追剧大全电视剧网站| 亚洲欧美日韩一区二区三区在线观看| 91老师国产黑色丝袜在线| 午夜精品视频一区| 久久影院午夜论| 欧美视频在线一区| 国产精品一区2区| 亚洲二区视频在线| 国产蜜臀97一区二区三区| 欧美日韩亚洲综合一区二区三区| 国内精品写真在线观看| 亚洲成人综合视频| 久久综合色之久久综合| 91网上在线视频| 亚洲mv在线观看| 国产午夜精品久久| 欧美日韩日日骚| 日韩在线一区二区三区| 久久亚洲春色中文字幕久久久| 久久精品二区亚洲w码| 久久综合综合久久综合| 精彩视频一区二区三区| 国产一区二区三区免费看| 粉嫩绯色av一区二区在线观看| 国产91精品一区二区麻豆亚洲| 99久久免费国产| 在线观看一区不卡| 欧美一区二区黄| 久久久久久黄色| 亚洲精品久久7777| 日韩国产欧美视频| 久久99国产精品免费网站| 国产999精品久久久久久| 99精品久久只有精品| 欧美三级电影一区| 欧美草草影院在线视频| 国产精品网曝门| 亚洲国产毛片aaaaa无费看 | 国产精品久久久久久久岛一牛影视 | 欧美精品视频www在线观看| 51久久夜色精品国产麻豆| 久久亚洲欧美国产精品乐播| 亚洲欧洲日韩在线| 五月天激情综合| 国产成人精品一区二| 欧美探花视频资源| 精品久久久久一区二区国产| 亚洲色图制服丝袜| 另类欧美日韩国产在线| 91免费观看在线| 精品久久久三级丝袜| 亚洲激情第一区| 狠狠色狠狠色合久久伊人| 日本久久电影网| 337p日本欧洲亚洲大胆精品| 亚洲激情五月婷婷| 国产成人av一区二区三区在线观看| 欧美视频在线一区| 国产精品免费免费| 理论电影国产精品| 欧美色电影在线| 国产精品成人免费| 国产尤物一区二区| 欧美人体做爰大胆视频| 亚洲欧洲无码一区二区三区| 久久99国产精品久久| 欧美性videosxxxxx| 日本成人在线不卡视频| 91在线云播放| 欧美国产1区2区| 精品一区二区免费| 欧美一区二区三区视频免费播放| 亚洲老司机在线| 99久久精品免费| 国产日韩av一区| 国产一区二区三区久久悠悠色av| 欧美精品视频www在线观看| 亚洲最快最全在线视频| 99久久婷婷国产| 一区二区中文字幕在线| 丁香婷婷综合网| 久久综合色天天久久综合图片| 欧美aaaaa成人免费观看视频| 日本大香伊一区二区三区| 中文字幕中文字幕一区二区| 国产成人精品综合在线观看| 欧美mv和日韩mv国产网站| 日韩中文字幕区一区有砖一区| 欧洲亚洲精品在线| 一区二区三区在线看| 91天堂素人约啪| 亚洲女同女同女同女同女同69| 91免费国产在线| 一区二区三区欧美久久| 欧美主播一区二区三区美女| 亚洲欧美日韩电影| 欧美性一二三区|