📄 client.cls
字号:
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 LoadByCompanyName = uClients
Exit Function
Err_LoadByCompanyName:
ErrNum = Err.Number
ErrMsg = Err.Description
Call ErrHandler(ErrNum, ErrMsg,"Client","LoadByCompanyName")
End Function
'******************************************************************************
'* *
'* Name: LoadByCountry *
'* *
'* Purpose: Load records based on Country *
'* Optionally you can include orderby clause to sort data. *
'* *
'* Return: a Clients object *
'******************************************************************************
Function LoadByCountry(ByVal vCountry As String , Optional ByVal OrderByClause As String = vbNullString , Optional GetChildren As Boolean = False) As Clients
On Error GoTo Err_LoadByCountry
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.Country Like '" & vCountry & "'" & 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 LoadByCountry = uClients
Exit Function
Err_LoadByCountry:
ErrNum = Err.Number
ErrMsg = Err.Description
Call ErrHandler(ErrNum, ErrMsg,"Client","LoadByCountry")
End Function
'******************************************************************************
'* *
'* Name: LoadByStateOrProvince *
'* *
'* Purpose: Load records based on StateOrProvince *
'* Optionally you can include orderby clause to sort data. *
'* *
'* Return: a Clients object *
'******************************************************************************
Function LoadByStateOrProvince(ByVal vStateOrProvince As String , Optional ByVal OrderByClause As String = vbNullString , Optional GetChildren As Boolean = False) As Clients
On Error GoTo Err_LoadByStateOrProvince
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.StateOrProvince Like '" & vStateOrProvince & "'" & 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 LoadByStateOrProvince = uClients
Exit Function
Err_LoadByStateOrProvince:
ErrNum = Err.Number
ErrMsg = Err.Description
Call ErrHandler(ErrNum, ErrMsg,"Client","LoadByStateOrProvince")
End Function
'******************************************************************************
'* *
'* Name: CopyMe *
'* *
'* Purpose: this method make another copy of this object in the memory *
'* *
'* Returns: Another Client. *
'* *
'******************************************************************************
Public Function CopyMe() As Client
Dim uClient As New Client
uClient.Address = m_Address
uClient.City = m_City
uClient.ClientID = m_ClientID
uClient.CompanyName = m_CompanyName
uClient.ContactFirstName = m_ContactFirstName
uClient.ContactLastName = m_ContactLastName
uClient.ContactTitle = m_ContactTitle
uClient.Country = m_Country
uClient.FaxNumber = m_FaxNumber
uClient.Notes = m_Notes
uClient.PhoneNumber = m_PhoneNumber
uClient.PostalCode = m_PostalCode
uClient.StateOrProvince = m_StateOrProvince
uClient.IsDirty = m_IsDirty
uClient.IsNew = m_IsNew
uClient.IsDeleted = m_IsDeleted
uClient.OldClientID = m_OldClientID
Dim uClientProject As ClientProject
Dim oClientProject As ClientProject
For Each oClientProject In m_ClientProjects
Set uClientProject = Nothing
Set uClientProject = New ClientProject
Set uClientProject = oClientProject.CopyMe
uClient.ClientProjects.AddExisting uClientProject, m_ClientProjects.Key(oClientProject)
Next
Set CopyMe = uClient
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 "Address"
Me.Address = newData
Case "City"
Me.City = newData
Case "ClientID"
Me.ClientID = newData
Case "CompanyName"
Me.CompanyName = newData
Case "ContactFirstName"
Me.ContactFirstName = newData
Case "ContactLastName"
Me.ContactLastName = newData
Case "ContactTitle"
Me.ContactTitle = newData
Case "Country"
Me.Country = newData
Case "FaxNumber"
Me.FaxNumber = newData
Case "Notes"
Me.Notes = newData
Case "PhoneNumber"
Me.PhoneNumber = newData
Case "PostalCode"
Me.PostalCode = newData
Case "StateOrProvince"
Me.StateOrProvince = newData
End Select
End If
End Sub
Private Sub COMEXDataSourceSingle_SetDataByName(ByVal FieldName As string, ByVal newData As Variant)
Select Case FieldName
Case "Address"
Me.Address = newData
Case "City"
Me.City = newData
Case "ClientID"
Me.ClientID = newData
Case "CompanyName"
Me.CompanyName = newData
Case "ContactFirstName"
Me.ContactFirstName = newData
Case "ContactLastName"
Me.ContactLastName = newData
Case "ContactTitle"
Me.ContactTitle = newData
Case "Country"
Me.Country = newData
Case "FaxNumber"
Me.FaxNumber = newData
Case "Notes"
Me.Notes = newData
Case "PhoneNumber"
Me.PhoneNumber = newData
Case "PostalCode"
Me.PostalCode = newData
Case "StateOrProvince"
Me.StateOrProvince = 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 + -