?? cclient.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 = "cClient"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Private mvarID As Long '客戶編號
Private mvarName As String '客戶名稱
Private mvarAge As Integer '客戶年齡
Private mvarSex As gxcSex '性別
Private mvarTypeId As Long '客戶類型Id
Private mvarTypeName As String '客戶類型名
Private mvarMobile As String '手機(jī)
Private mvarEmail As String 'E-mail
Private mvarOfficePhone As String '辦公室電話
Private mvarHomePhone As String '宅電
Private mvarFax As String '傳真
Private mvarHomeAdr As String '家庭住址
Private mvarMailAdr As String '通訊地址
Private mvarZipCode As String '郵編
Private mvarBirthday As Date '生日
Private mvarBirthdayWarn As Boolean '是不啟用生日提醒
Private mvarWork As String '職業(yè)
Private mvarPosition As String '職位
Private mvarCompany As String '公司
Private mvarCompanySite As String '公司網(wǎng)址
Private mvarSelfSite As String '個人網(wǎng)址
Private mvarLikes As String '喜好
Private mvarHate As String '厭惡
Private mvarRemark As String '備注
Private mvarImportance As Integer '重要度
Private mvarFriendly As Integer '友好度
Private mvarSatisfaction As Integer '滿意度
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'以下為類的屬性
'客戶編號
Public Property Let ID(ByVal vData As Long)
mvarID = vData
End Property
Public Property Get ID() As Long
ID = mvarID
End Property
'姓名
Public Property Let Name(ByVal vData As String)
vData = Trim(vData) '去除兩邊的空格
'控制名稱的長度不可大于10
If Len(vData) > 10 Then vData = Left(vData, 10)
mvarName = vData
End Property
Public Property Get Name() As String
Name = mvarName
End Property
'部門名稱
Public Property Let TypeName(ByVal vData As String)
mvarTypeName = vData
End Property
Public Property Get TypeName() As String
TypeName = mvarTypeName
End Property
'部門ID
Public Property Let TypeID(ByVal vData As Long)
mvarTypeId = vData
End Property
Public Property Get TypeID() As Long
TypeID = mvarTypeId
End Property
'性別
Public Property Let Sex(ByVal vData As gxcSex)
mvarSex = vData
End Property
Public Property Get Sex() As gxcSex
Sex = mvarSex
End Property
'手機(jī)
Public Property Let Mobile(ByVal vData As String)
mvarMobile = vData
End Property
Public Property Get Mobile() As String
Mobile = mvarMobile
End Property
'Email
Public Property Let Email(ByVal vData As String)
mvarEmail = vData
End Property
Public Property Get Email() As String
Email = mvarEmail
End Property
'辦公室電話
Public Property Let OfficePhone(ByVal vData As String)
mvarOfficePhone = vData
End Property
Public Property Get OfficePhone() As String
OfficePhone = mvarOfficePhone
End Property
'住宅電話
Public Property Let HomePhone(ByVal vData As String)
mvarHomePhone = vData
End Property
Public Property Get HomePhone() As String
HomePhone = mvarHomePhone
End Property
'傳真
Public Property Let Fax(ByVal vData As String)
mvarFax = vData
End Property
Public Property Get Fax() As String
Fax = mvarFax
End Property
'住址
Public Property Let HomeAdr(ByVal vData As String)
mvarHomeAdr = vData
End Property
Public Property Get HomeAdr() As String
HomeAdr = mvarHomeAdr
End Property
'通訊地址
Public Property Let MailAdr(ByVal vData As String)
mvarMailAdr = vData
End Property
Public Property Get MailAdr() As String
MailAdr = mvarMailAdr
End Property
'郵編
Public Property Let ZipCode(ByVal vData As String)
mvarZipCode = vData
End Property
Public Property Get ZipCode() As String
ZipCode = mvarZipCode
End Property
'生日
Public Property Let Birthday(ByVal vData As Date)
mvarBirthday = vData
End Property
Public Property Get Birthday() As Date
Birthday = mvarBirthday
End Property
'年齡
Public Property Let Age(ByVal vData As Integer)
mvarAge = vData
End Property
Public Property Get Age() As Integer
Age = mvarAge
End Property
'啟用生日提醒
Public Property Let BirthdayWarn(ByVal vData As Boolean)
mvarBirthdayWarn = vData
End Property
Public Property Get BirthdayWarn() As Boolean
BirthdayWarn = mvarBirthdayWarn
End Property
'職業(yè)
Public Property Let Work(ByVal vData As String)
mvarWork = vData
End Property
Public Property Get Work() As String
Work = mvarWork
End Property
'職位
Public Property Let Position(ByVal vData As String)
mvarPosition = vData
End Property
Public Property Get Position() As String
Position = mvarPosition
End Property
'就職單位
Public Property Let Company(ByVal vData As String)
mvarCompany = vData
End Property
Public Property Get Company() As String
Company = mvarCompany
End Property
'公司網(wǎng)站
Public Property Let CompanySite(ByVal vData As String)
mvarCompanySite = vData
End Property
Public Property Get CompanySite() As String
CompanySite = mvarCompanySite
End Property
'個人網(wǎng)站
Public Property Let SelfSite(ByVal vData As String)
mvarSelfSite = vData
End Property
Public Property Get SelfSite() As String
SelfSite = mvarSelfSite
End Property
'喜好
Public Property Let Likes(ByVal vData As String)
mvarLikes = vData
End Property
Public Property Get Likes() As String
Likes = mvarLikes
End Property
'厭惡
Public Property Let Hate(ByVal vData As String)
mvarHate = vData
End Property
Public Property Get Hate() As String
Hate = mvarHate
End Property
'備注
Public Property Let Remark(ByVal vData As String)
mvarRemark = vData
End Property
Public Property Get Remark() As String
Remark = mvarRemark
End Property
'重要度
Public Property Let Importance(ByVal vData As Integer)
mvarImportance = vData
End Property
Public Property Get Importance() As Integer
Importance = mvarImportance
End Property
'友好度
Public Property Let Friendly(ByVal vData As Integer)
mvarFriendly = vData
End Property
Public Property Get Friendly() As Integer
Friendly = mvarFriendly
End Property
'滿意度
Public Property Let Satisfaction(ByVal vData As Integer)
mvarSatisfaction = vData
End Property
Public Property Get Satisfaction() As Integer
Satisfaction = mvarSatisfaction
End Property
'屬性結(jié)束
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'以下為方法
'添加一個客戶
Public Function AddNew(Optional ByVal strName As String = "", _
Optional ByVal intAge As Integer = 0, _
Optional varSex As gxcSex = -1, _
Optional lngTypeId As Long = 0) As Boolean
On Error Resume Next
'如果參數(shù)為缺省值,即未傳入,則直接調(diào)用類中的參數(shù),否則調(diào)用傳入的參數(shù)
If strName <> "" Then Me.Name = strName
If intAge <> 0 Then Me.Age = intAge
If varSex <> -1 Then Me.Sex = varSex
If lngTypeId <> 0 Then Me.TypeID = lngTypeId
Dim strSQL As String
g_Conn.BeginTrans
'開始一個事務(wù),以免費得到的ID值已被其它客戶端所使用
'此處調(diào)用NextID方法,得到該類對應(yīng)的數(shù)據(jù)表的下一個ID,即最大ID+1
Me.ID = NextID("ClientInfo", "ClientId")
Me.TypeName = GetValueByID("ClientType", "TypeId", Me.TypeID, "TypeName")
'構(gòu)造SQL語句,注意需調(diào)用RealString去除字符串中的單引號,以及一些SQL語法的關(guān)鍵詞加[]
strSQL = "Insert into ClientInfo([Name], Age, Sex, TypeId, Mobile, Email, OfficePhone, "
strSQL = strSQL & " HomePhone, Fax, HomeAddress, MailAddress, ZipCode, Birthday, "
strSQL = strSQL & " BirthdayWarn, [Work], [Position], Company, CompanySite, SelfSite, "
strSQL = strSQL & " Likes, Hate, Remark, Importance, Friendly, Satisfaction) "
strSQL = strSQL & " VALUES("
strSQL = strSQL & "'" & RealString(mvarName) & "'," '客戶名稱
strSQL = strSQL & mvarAge & "," '客戶年齡
strSQL = strSQL & mvarSex & "," '性別
strSQL = strSQL & mvarTypeId & "," '客戶類型Id
strSQL = strSQL & "'" & RealString(mvarMobile) & "'," '手機(jī)
strSQL = strSQL & "'" & RealString(mvarEmail) & "'," 'E-mail
strSQL = strSQL & "'" & RealString(mvarOfficePhone) & "'," '辦公室電話
strSQL = strSQL & "'" & RealString(mvarHomePhone) & "'," '宅電
strSQL = strSQL & "'" & RealString(mvarFax) & "'," '傳真
strSQL = strSQL & "'" & RealString(mvarHomeAdr) & "'," '家庭住址
strSQL = strSQL & "'" & RealString(mvarMailAdr) & "'," '通訊地址
strSQL = strSQL & "'" & RealString(mvarZipCode) & "'," '郵編
strSQL = strSQL & "'" & mvarBirthday & "'," '生日
strSQL = strSQL & mvarBirthdayWarn & "," '是不啟用生日提醒
strSQL = strSQL & "'" & RealString(mvarWork) & "'," '職業(yè)
strSQL = strSQL & "'" & RealString(mvarPosition) & "'," '職位
strSQL = strSQL & "'" & RealString(mvarCompany) & "'," '公司
strSQL = strSQL & "'" & RealString(mvarCompanySite) & "'," '公司網(wǎng)址
strSQL = strSQL & "'" & RealString(mvarSelfSite) & "'," '個人網(wǎng)址
strSQL = strSQL & "'" & RealString(mvarLikes) & "'," '喜好
strSQL = strSQL & "'" & RealString(mvarHate) & "'," '厭惡
strSQL = strSQL & "'" & RealString(mvarRemark) & "'," '備注
strSQL = strSQL & mvarImportance & "," '重要度
strSQL = strSQL & mvarFriendly & "," '友好度
strSQL = strSQL & mvarSatisfaction '滿意度
strSQL = strSQL & ")"
'執(zhí)行SQL語句,并提交事務(wù)
g_Conn.Execute strSQL
g_Conn.CommitTrans
'如果發(fā)生錯誤,則返回FALSE,表示未成功添加
AddNew = (Err.Number = 0)
End Function
'修改客戶信息
Public Function Update() As Boolean
On Error Resume Next
Dim strSQL As String
'構(gòu)造SQL語句
strSQL = "Update ClientInfo set "
strSQL = strSQL & "[Name]= '" & RealString(mvarName) & "'," '客戶名稱
strSQL = strSQL & "Age = " & mvarAge & "," '客戶年齡
strSQL = strSQL & "Sex = " & mvarSex & "," '性別
strSQL = strSQL & "TypeId = " & mvarTypeId & "," '客戶類型Id
strSQL = strSQL & "Mobile = '" & RealString(mvarMobile) & "'," '手機(jī)
strSQL = strSQL & "Email = '" & RealString(mvarEmail) & "'," 'E-mail
strSQL = strSQL & "OfficePhone = '" & RealString(mvarOfficePhone) & "'," '辦公室電話
strSQL = strSQL & "HomePhone = '" & RealString(mvarHomePhone) & "'," '宅電
strSQL = strSQL & "Fax = '" & RealString(mvarFax) & "'," '傳真
strSQL = strSQL & "HomeAddress = '" & RealString(mvarHomeAdr) & "'," '家庭住址
strSQL = strSQL & "MailAddress = '" & RealString(mvarMailAdr) & "'," '通訊地址
strSQL = strSQL & "ZipCode = '" & RealString(mvarZipCode) & "'," '郵編
strSQL = strSQL & "Birthday = '" & mvarBirthday & "'," '生日
strSQL = strSQL & "BirthdayWarn = " & mvarBirthdayWarn & "," '是不啟用生日提醒
strSQL = strSQL & "[Work] = '" & RealString(mvarWork) & "'," '職業(yè)
strSQL = strSQL & "[Position] = '" & RealString(mvarPosition) & "'," '職位
strSQL = strSQL & "Company = '" & RealString(mvarCompany) & "'," '公司
strSQL = strSQL & "CompanySite = '" & RealString(mvarCompanySite) & "'," '公司網(wǎng)址
strSQL = strSQL & "SelfSite = '" & RealString(mvarSelfSite) & "'," '個人網(wǎng)址
strSQL = strSQL & "Likes = '" & RealString(mvarLikes) & "'," '喜好
strSQL = strSQL & "Hate = '" & RealString(mvarHate) & "'," '厭惡
strSQL = strSQL & "Remark = '" & RealString(mvarRemark) & "'," '備注
strSQL = strSQL & "Importance = " & mvarImportance & "," '重要度
strSQL = strSQL & "Friendly = " & mvarFriendly & "," '友好度
strSQL = strSQL & "Satisfaction = " & mvarSatisfaction '滿意度
strSQL = strSQL & " Where ClientId=" & Me.ID
g_Conn.Execute strSQL
'如果發(fā)生錯誤,則返回FALSE,表示未成功更新
Update = (Err.Number = 0)
End Function
'刪除客戶資料
Public Function Delete(Optional ByVal lngID As Long = 0) As Boolean
Dim strSQL As String
On Error Resume Next
'如果已傳入了要刪除的ID,則按此ID刪除
If lngID <> 0 Then Me.ID = lngID
'以下三個操作要同時發(fā)生
g_Conn.BeginTrans
'刪除Warning表中的相關(guān)提醒
strSQL = "DELETE FROM Warning WHERE ClientId =" & Me.ID
g_Conn.Execute strSQL
'刪除Cooperate表中的相關(guān)合作信息
strSQL = "DELETE FROM Cooperate WHERE ClientId =" & Me.ID
g_Conn.Execute strSQL
'刪除ClientInfo表中的客戶信息
strSQL = "DELETE FROM ClientInfo WHERE ClientId=" & Me.ID
g_Conn.Execute strSQL
g_Conn.CommitTrans
'如果發(fā)生錯誤,則返回FALSE,表示未刪除成功
Delete = (Err.Number = 0)
End Function
'方法結(jié)束
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'將某個客戶移到指定的部門
Public Function AssignToDepartment(ByVal TypeID As Long) As Boolean
'實現(xiàn)很簡單,將部門ID變一下,然后調(diào)用Update方法就行了
Me.TypeID = TypeID
AssignToDepartment = Me.Update
End Function
'得到該客戶所在部門,以對象返回
Public Function GetType() As CType
Dim objTypes As New CTypes
'調(diào)用cTypes的Find方法,得到部門
objTypes.Find Me.TypeID
If objTypes.Count > 0 Then Set GetType = objTypes.Item(1)
End Function
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -