📄 carproject.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 = "CarProject"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'保持属性值的局部变量
Private mvarWorkId As Long
Private mvarCarCode As String '局部复制
Private mvarCarType As String '局部复制
Private mvarCompany As String '局部复制
Private mvarPhone As String '局部复制
Private mvarStartDate As Date '局部复制
Private mvarEndDate As Date '局部复制
Private mvarEmpId As Long '局部复制
Private m_RepairSum As Double
Private m_InventorySum As Double
Private m_EndFlag As Boolean
Private mfiIsDirty As Boolean
Private m_Conn As ADODB.Connection
Public Property Let EmpId(ByVal vData As Long)
If vData < 0 Then Exit Property
mvarEmpId = vData
mfiIsDirty = True
End Property
Public Property Get EmpId() As Long
EmpId = mvarEmpId
End Property
Public Property Let EndDate(ByRef vData As Date)
If mvarStartDate <> 0 Then
If mvarStartDate > vData Then
MsgBox "开始日期不能大于结束时间", vbCritical Or vbOKOnly, "错误"
Exit Property
End If
End If
mvarEndDate = vData
mfiIsDirty = True
End Property
Public Property Get EndDate() As Date
EndDate = mvarEndDate
End Property
Public Property Let StartDate(ByRef vData As Date)
If mvarEndDate <> 0 Then
If mvarEndDate < vData Then
MsgBox "开始日期不能大于结束时间", vbCritical Or vbOKOnly, "错误"
Exit Property
End If
End If
mvarStartDate = vData
mfiIsDirty = True
End Property
Public Property Get StartDate() As Date
StartDate = mvarStartDate
End Property
Public Property Let Phone(ByRef vData As String)
If Len(vData) > 20 Then Exit Property
mvarPhone = vData
mfiIsDirty = True
End Property
Public Property Get Phone() As String
Phone = mvarPhone
End Property
Public Property Let Company(ByRef vData As String)
If Len(vData) > 50 Then Exit Property
mvarCompany = vData
mfiIsDirty = True
End Property
Public Property Get Company() As String
Company = mvarCompany
End Property
Public Property Let CarType(ByRef vData As String)
If Len(vData) > 20 Then Exit Property
mvarCarType = vData
mfiIsDirty = True
End Property
Public Property Get CarType() As String
CarType = mvarCarType
End Property
Public Property Let CarCode(ByRef vData As String)
If Len(vData) > 20 Then Exit Property
mvarCarCode = vData
mfiIsDirty = True
End Property
Public Property Get CarCode() As String
CarCode = mvarCarCode
End Property
Public Property Get WorkHeadId() As Long
WorkHeadId = mvarWorkId
End Property
Public Function FindProject(ByRef SQLCom As String) As Boolean
Dim re As ADODB.Recordset
If m_Conn Is Nothing Then
FindProject = False
Exit Function
End If
Set re = m_Conn.Execute("SELECT * FROM WorkMain WHERE " & SQLCom)
If Not (re.BOF And re.EOF) Then
mvarWorkId = re.Fields(0).Value
mvarCarCode = re.Fields(1).Value
mvarCarType = re.Fields(2).Value
mvarCompany = re.Fields(3).Value
mvarPhone = re.Fields(4).Value
mvarStartDate = re.Fields(5).Value
mvarEndDate = re.Fields(6).Value
mvarEmpId = re.Fields(7).Value
m_RepairSum = re.Fields(8).Value
m_InventorySum = re.Fields(9).Value
m_EndFlag = re.Fields(10).Value
FindProject = True
Else
FindProject = False
End If
Set re = Nothing
End Function
Private Sub Class_Initialize()
ClearPrivateDate
End Sub
Public Sub ClearPrivateDate()
mvarWorkId = -1
mvarCarCode = vbNullString
mvarCarType = vbNullString
mvarCompany = vbNullString
mvarPhone = vbNullString
mvarStartDate = Date
mvarEndDate = Date
mvarEmpId = -1
m_RepairSum = 0
m_InventorySum = 0
m_EndFlag = False
mfiIsDirty = False
Set m_Conn = Nothing
End Sub
Public Function AddSave() As Boolean
Dim re As ADODB.Recordset
Dim com As ADODB.Command
If m_Conn Is Nothing And m_Conn.State = adStateClosed Then
AddSave = False
Exit Function
End If
If mfiIsDirty Then
If (Len(mvarCarCode) > 0) And (mvarStartDate > 0) And (mvarEndDate > 0) And (mvarEmpId > 0) _
Then
Dim UpDateCom As String
Set com = New ADODB.Command
com.ActiveConnection = m_Conn
com.CommandType = adCmdText
Dim InsertCom As String
InsertCom = "INSERT INTO WorkMain (CarCode,CarType,Company,Phone,StartDate,EndDate,EmpId,RepairSum,InventorySum) VALUES ('" _
& mvarCarCode & "','" & mvarCarType & "','" & mvarCompany & "','" & mvarPhone & "','" _
& FormatDateTime(mvarStartDate, vbShortDate) & "','" & FormatDateTime(mvarEndDate, vbShortDate) & "'," & mvarEmpId & _
"," & CStr(m_RepairSum) & "," & CStr(m_InventorySum) & ")"
' MsgBox InsertCom
com.CommandText = InsertCom
com.Execute , , adExecuteNoRecords
Set re = m_Conn.Execute("SELECT MAX(AutoId) FROM WorkMain")
mvarWorkId = re.Fields(0).Value
' MsgBox mvarWorkId
AddSave = True
Set com = Nothing
End If
End If
Exit Function
AddSaveErr:
AddSave = False
MsgBox "数据增加错误", vbCritical Or vbOKOnly, "错误"
End Function
Public Function EditSave() As Boolean
Dim com As ADODB.Command
'Dim re As ADODB.Recordset
On Error GoTo EditSaveErr
If m_Conn Is Nothing And m_Conn.State = adStateClosed Then
EditSave = False
Exit Function
End If
If mfiIsDirty And mvarWorkId > 0 Then
If (Len(mvarCarCode) > 0) And (mvarStartDate > 0) And (mvarEndDate > 0) And (mvarEmpId > 0) _
Then
Dim UpDateCom As String
Set com = New ADODB.Command
com.ActiveConnection = m_Conn
com.CommandType = adCmdText
UpDateCom = "UPDATE WorkMain SET CarCode='"
UpDateCom = UpDateCom & mvarCarCode & "',CarType='" & mvarCarType & "',Company='" & mvarCompany _
& "',Phone='" & mvarPhone & "',StartDate='" & FormatDateTime(mvarStartDate, vbShortDate) _
& "',EndDate='" & FormatDateTime(mvarEndDate, vbShortDate) & "',EmpId=" & CStr(mvarEmpId) _
& ",RepairSum=" & CStr(m_RepairSum) & ",InventorySum=" & CStr(m_InventorySum) _
& " WHERE AutoId=" & mvarWorkId
com.CommandText = UpDateCom
' MsgBox UpDateCom
com.Execute , , adExecuteNoRecords
EditSave = True
Set com = Nothing
End If
End If
Exit Function
EditSaveErr:
EditSave = False
MsgBox "数据修改错误", vbCritical Or vbOKOnly, "错误"
End Function
Public Property Get ActiveConnection() As ADODB.Connection
Set ActiveConnection = m_Conn
End Property
Public Property Set ActiveConnection(ByRef vNewValue As ADODB.Connection)
If vNewValue Is Nothing Then Exit Property
Set m_Conn = vNewValue
End Property
Public Property Let RepairSum(ByRef vData As Double)
If vData < 0 Then Exit Property
m_RepairSum = vData
mfiIsDirty = True
End Property
Public Property Get RepairSum() As Double
RepairSum = m_RepairSum
End Property
'm_InventorySum
Public Property Let InventorySum(ByRef vData As Double)
If vData < 0 Then Exit Property
m_InventorySum = vData
mfiIsDirty = True
End Property
Public Property Get InventorySum() As Double
InventorySum = m_InventorySum
End Property
Public Property Get EndFlag() As Boolean
EndFlag = m_EndFlag
End Property
Public Function SetWorkEnd() As Boolean
Dim comm As ADODB.Command
If mvarWorkId <= 0 Then
GoTo SetEndErr
Else
On Error GoTo SetEndErr
Set comm = New ADODB.Command
comm.CommandType = adCmdText
comm.CommandText = "UPDATE WorkMain SET EndFlag=TRUE WHERE AutoId=" & CStr(mvarWorkId)
comm.ActiveConnection = m_Conn
comm.Execute , , adExecuteNoRecords
m_EndFlag = True
SetWorkEnd = True
Set comm = Nothing
Exit Function
End If
SetEndErr:
SetWorkEnd = False
End Function
Public Function ResetWorkEnd() As Boolean
Dim comm As ADODB.Command
If mvarWorkId <= 0 Then
GoTo ResetEndErr
Else
On Error GoTo ResetEndErr
Set comm = New ADODB.Command
comm.CommandType = adCmdText
comm.CommandText = "UPDATE WorkMain SET EndFlag=FALSE WHERE AutoId=" & CStr(mvarWorkId)
comm.ActiveConnection = m_Conn
comm.Execute , , adExecuteNoRecords
m_EndFlag = False
ResetWorkEnd = True
Set comm = Nothing
Exit Function
End If
ResetEndErr:
ResetWorkEnd = False
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -