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

📄 client.cls

📁 人事档案管理系统(PB)/人事工资管理系统/干部信息管理系统/投标报价与合同管理系统/... 超市...
💻 CLS
📖 第 1 页 / 共 3 页
字号:
  With adoRS
  If Not .EOF Then
    If m_IsDeleted Then
      .Delete
    Else	
SaveRecord:
      adoRS("Address") = IIF(m_Address= vbNullString, vbNullString, m_Address)
      adoRS("City") = IIF(m_City= vbNullString, vbNullString, m_City)
      adoRS("CompanyName") = IIF(m_CompanyName= vbNullString, vbNullString, m_CompanyName)
      adoRS("ContactFirstName") = IIF(m_ContactFirstName= vbNullString, vbNullString, m_ContactFirstName)
      adoRS("ContactLastName") = IIF(m_ContactLastName= vbNullString, vbNullString, m_ContactLastName)
      adoRS("ContactTitle") = IIF(m_ContactTitle= vbNullString, vbNullString, m_ContactTitle)
      adoRS("Country") = IIF(m_Country= vbNullString, vbNullString, m_Country)
      adoRS("FaxNumber") = IIF(m_FaxNumber= vbNullString, vbNullString, m_FaxNumber)
      adoRS("Notes") = IIF(m_Notes= vbNullString, vbNullString, m_Notes)
      adoRS("PhoneNumber") = IIF(m_PhoneNumber= vbNullString, vbNullString, m_PhoneNumber)
      adoRS("PostalCode") = IIF(m_PostalCode= vbNullString, vbNullString, m_PostalCode)
      adoRS("StateOrProvince") = IIF(m_StateOrProvince= vbNullString, vbNullString, m_StateOrProvince)

      .Update
      m_ClientID = adoRS("ClientID")
      m_OldClientID = m_ClientID
    End If
  Else
    If Not m_IsDeleted Then
      .AddNew
      GoTo SaveRecord
    End If
  End If
  .Close
  End With

Skip_Save:

  Dim uClientProject As ClientProject  
  i = 1
  Do While i <= m_ClientProjects.Count
    Set uClientProject = m_ClientProjects(i)
    If uClientProject.IsDeleted Then
      If Not uClientProject.Save(False) Then
        GoSub Rollback_Save
        Exit Function
      End If
      m_ClientProjects.Remove i
    Else
      If uClientProject.IsDirty Then
        uClientProject.ClientID = m_ClientID
      End If
      If Not uClientProject.Save(False) Then
        GoSub Rollback_Save
        Exit Function
      End If  
      i = i + 1
    End If
  Loop

  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,"Client","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_ClientProjects.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 Clients " & strDeleteSQL 
  Conn.Execute strSQL
  DeleteList = True
  
  Exit Function
Err_DeleteList:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"Client","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 vClientID 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.Address,a.City,a.ClientID,a.CompanyName,a.ContactFirstName,a.ContactLastName,a.ContactTitle,a.Country,a.FaxNumber,a.Notes,a.PhoneNumber,a.PostalCode,a.StateOrProvince From Clients a WHERE a.ClientID=" & vClientID & ""

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    
  With adoRS
    If Not .EOF Then
      m_Address= IIF(IsNull(adoRS("Address")), "", adoRS("Address"))
      m_City= IIF(IsNull(adoRS("City")), "", adoRS("City"))
      m_ClientID= IIF(IsNull(adoRS("ClientID")), 0, adoRS("ClientID"))
      m_CompanyName= IIF(IsNull(adoRS("CompanyName")), "", adoRS("CompanyName"))
      m_ContactFirstName= IIF(IsNull(adoRS("ContactFirstName")), "", adoRS("ContactFirstName"))
      m_ContactLastName= IIF(IsNull(adoRS("ContactLastName")), "", adoRS("ContactLastName"))
      m_ContactTitle= IIF(IsNull(adoRS("ContactTitle")), "", adoRS("ContactTitle"))
      m_Country= IIF(IsNull(adoRS("Country")), "", adoRS("Country"))
      m_FaxNumber= IIF(IsNull(adoRS("FaxNumber")), "", adoRS("FaxNumber"))
      m_Notes= IIF(IsNull(adoRS("Notes")), "", adoRS("Notes"))
      m_PhoneNumber= IIF(IsNull(adoRS("PhoneNumber")), "", adoRS("PhoneNumber"))
      m_PostalCode= IIF(IsNull(adoRS("PostalCode")), "", adoRS("PostalCode"))
      m_StateOrProvince= IIF(IsNull(adoRS("StateOrProvince")), "", adoRS("StateOrProvince"))
      m_OldClientID = m_ClientID

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

  If GetChildren Then m_ClientProjects.LoadRelated m_ClientID

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

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

  strSQL = "Select a.Address,a.City,a.ClientID,a.CompanyName,a.ContactFirstName,a.ContactLastName,a.ContactTitle,a.Country,a.FaxNumber,a.Notes,a.PhoneNumber,a.PostalCode,a.StateOrProvince From Clients a" & SQLWhereClause

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    
  With adoRS
    Do While Not .EOF
      Set uClient = Nothing
      Set uClient = New Client
      uClient.Address= IIF(IsNull(adoRS("Address")), "", adoRS("Address"))
      uClient.City= IIF(IsNull(adoRS("City")), "", adoRS("City"))
      uClient.ClientID= IIF(IsNull(adoRS("ClientID")), 0, adoRS("ClientID"))
      uClient.CompanyName= IIF(IsNull(adoRS("CompanyName")), "", adoRS("CompanyName"))
      uClient.ContactFirstName= IIF(IsNull(adoRS("ContactFirstName")), "", adoRS("ContactFirstName"))
      uClient.ContactLastName= IIF(IsNull(adoRS("ContactLastName")), "", adoRS("ContactLastName"))
      uClient.ContactTitle= IIF(IsNull(adoRS("ContactTitle")), "", adoRS("ContactTitle"))
      uClient.Country= IIF(IsNull(adoRS("Country")), "", adoRS("Country"))
      uClient.FaxNumber= IIF(IsNull(adoRS("FaxNumber")), "", adoRS("FaxNumber"))
      uClient.Notes= IIF(IsNull(adoRS("Notes")), "", adoRS("Notes"))
      uClient.PhoneNumber= IIF(IsNull(adoRS("PhoneNumber")), "", adoRS("PhoneNumber"))
      uClient.PostalCode= IIF(IsNull(adoRS("PostalCode")), "", adoRS("PostalCode"))
      uClient.StateOrProvince= IIF(IsNull(adoRS("StateOrProvince")), "", adoRS("StateOrProvince"))
      uClient.OldClientID = uClient.ClientID
	
      uClient.IsDirty = False    
      uClient.IsNew = False 
      uClient.ReSetBrokenRule False
      uClients.AddExisting uClient, ":" & uClient.ClientID 
      If GetChildren Then uClient.ClientProjects.LoadRelated uClient.ClientID

      .MoveNext
    Loop
    .Close
  End With

  Set LoadList = uClients
  Exit Function

Err_LoadList:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"Client","LoadList")
End Function
 
'******************************************************************************
'*                                                                            *
'* Name:    LoadByCity                                   *
'*                                                                            *
'* Purpose: Load records based on City                         *
'*          Optionally you can include orderby clause to sort data.           *  
'*                                                                            *
'* Return: a Clients object                  *
'******************************************************************************
Function LoadByCity(ByVal vCity As String , Optional ByVal OrderByClause As String = vbNullString , Optional GetChildren As Boolean = False) As Clients
  On Error GoTo Err_LoadByCity
  Dim adoRS As New ADODB.Recordset
  Dim strSQL As String
  Dim uClient As Client
  Dim uClients As New Clients

  strSQL = "Select a.Address,a.City,a.ClientID,a.CompanyName,a.ContactFirstName,a.ContactLastName,a.ContactTitle,a.Country,a.FaxNumber,a.Notes,a.PhoneNumber,a.PostalCode,a.StateOrProvince From Clients a Where a.City Like '" & vCity & "'" & OrderByClause

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly
    
  With adoRS
    Do While Not .EOF
      Set uClient = Nothing
      Set uClient = New Client
      uClient.Address= IIF(IsNull(adoRS("Address")), "", adoRS("Address"))
      uClient.City= IIF(IsNull(adoRS("City")), "", adoRS("City"))
      uClient.ClientID= IIF(IsNull(adoRS("ClientID")), 0, adoRS("ClientID"))
      uClient.CompanyName= IIF(IsNull(adoRS("CompanyName")), "", adoRS("CompanyName"))
      uClient.ContactFirstName= IIF(IsNull(adoRS("ContactFirstName")), "", adoRS("ContactFirstName"))
      uClient.ContactLastName= IIF(IsNull(adoRS("ContactLastName")), "", adoRS("ContactLastName"))
      uClient.ContactTitle= IIF(IsNull(adoRS("ContactTitle")), "", adoRS("ContactTitle"))
      uClient.Country= IIF(IsNull(adoRS("Country")), "", adoRS("Country"))
      uClient.FaxNumber= IIF(IsNull(adoRS("FaxNumber")), "", adoRS("FaxNumber"))
      uClient.Notes= IIF(IsNull(adoRS("Notes")), "", adoRS("Notes"))
      uClient.PhoneNumber= IIF(IsNull(adoRS("PhoneNumber")), "", adoRS("PhoneNumber"))
      uClient.PostalCode= IIF(IsNull(adoRS("PostalCode")), "", adoRS("PostalCode"))
      uClient.StateOrProvince= IIF(IsNull(adoRS("StateOrProvince")), "", adoRS("StateOrProvince"))
      uClient.OldClientID = uClient.ClientID
	
      uClient.IsDirty = False 
      uClient.IsNew = False 
      uClient.ReSetBrokenRule False
      uClients.AddExisting uClient, ":" & uClient.ClientID 
      If GetChildren Then uClient.ClientProjects.LoadRelated uClient.ClientID

      .MoveNext
    Loop
    .Close
  End With

  Set LoadByCity = uClients
  Exit Function

Err_LoadByCity:
  ErrNum = Err.Number
  ErrMsg = Err.Description
  Call ErrHandler(ErrNum, ErrMsg,"Client","LoadByCity")
End Function
	 
'******************************************************************************
'*                                                                            *
'* Name:    LoadByCompanyName                                   *
'*                                                                            *
'* Purpose: Load records based on CompanyName                         *
'*          Optionally you can include orderby clause to sort data.           *  
'*                                                                            *
'* Return: a Clients object                  *
'******************************************************************************
Function LoadByCompanyName(ByVal vCompanyName As String , Optional ByVal OrderByClause As String = vbNullString , Optional GetChildren As Boolean = False) As Clients
  On Error GoTo Err_LoadByCompanyName
  Dim adoRS As New ADODB.Recordset
  Dim strSQL As String
  Dim uClient As Client
  Dim uClients As New Clients

  strSQL = "Select a.Address,a.City,a.ClientID,a.CompanyName,a.ContactFirstName,a.ContactLastName,a.ContactTitle,a.Country,a.FaxNumber,a.Notes,a.PhoneNumber,a.PostalCode,a.StateOrProvince From Clients a Where a.CompanyName Like '" & vCompanyName & "'" & OrderByClause

  adoRS.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -