📄 ccharge.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 = "CCharge"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private m_sUid As String '用户ID
Private m_sCtype As String '用户类型
Private m_dStartTime As Date '开始时间
Private m_dEndTime As Date '结束时间
Private m_sEid As String '设备ID
Private m_cCharge As Currency '费用
Public Property Get uid() As String
uid = m_sUid
End Property
Public Property Let uid(ByVal vUid As String)
m_sUid = vUid
End Property
Public Property Get ctype() As String
ctype = m_sCtype
End Property
Public Property Let ctype(ByVal vCtype As String)
m_sCtype = vCtype
End Property
Public Property Get StartTime() As Date
StartTime = m_dStartTime
End Property
Public Property Let StartTime(ByVal vStartTime As Date)
m_dStartTime = vStartTime
End Property
Public Property Get EndTime() As Date
EndTime = m_dEndTime
End Property
Public Property Let EndTime(ByVal vEndTime As Date)
m_dEndTime = vEndTime
End Property
Public Property Get Eid() As String
Eid = m_sEid
End Property
Public Property Let Eid(ByVal vEid As String)
m_sEid = vEid
End Property
Public Property Get Charge() As Currency
Charge = m_cCharge
End Property
Public Property Let Charge(ByVal vCharge As Currency)
m_cCharge = vCharge
End Property
End Property
Public Sub Insert() '添加纪录
'SelectEid
Connect "w"
sqlstr = "select * from Charge where Uid='" & uid & "'"
rs.Open sqlstr
con.BeginTrans
If rs.EOF Then
rs.AddNew
rs.Fields("Uid") = uid
rs.Fields("ctype") = ctype
If uid = "" Or ctype = "" Then '用户名或者用户类型为空
MsgBox "用户ID和用户类型不能为空!"
con.RollbackTrans
Disconnect
Exit Sub
End If '添加新纪录
rs.Fields("starttime") = StartTime
rs.Fields("endtime") = EndTime
rs.Fields("eid") = Eid
rs.Fields("charge") = Charge
rs.Update
MsgBox "新用户 " & uid & " 添加成功!"
con.CommitTrans
Exit Sub
Else
MsgBox "用户 " & uid & " 已经在数据库中,不能重复添加!" '不能添加已有记录
con.RollbackTrans
Disconnect
Exit Sub
End If
End Sub
Public Function SelectId(ByVal vStype As Integer) As Integer
'此方法原意是想动态取Uid或者Eid,但由于模块功能小,显示不了太大的作用
Dim sql_Eid, sql_Uid As String
Connect "r"
Select Case vStype
Case 1: sql_Uid = "select * from Charge where Uid='" & uid & "'"
rs.Open sql_Uid, con, adOpenStatic
If rs.RecordCount < 1 Then
MsgBox "未找到用户ID为: " & uid & " 的相关信息!请检查后重新填写!"
SelectId = 0
Disconnect
Exit Function
Else: SelectId = 1
End If
Case 2: sql_Eid = "select * from charge where Eid='" & Eid & "'"
rs.Open sql_Eid, con, adOpenStatic
If rs.RecordCount < 1 Then
MsgBox "未找到设备ID为: " & Eid & " 的相关信息!请检查后重新填写!"
SelectId = 0
Disconnect
Exit Function
Else: SelectId = 1
End If
End Select
End Function
Public Sub Modify() '修改纪录
If SelectId(2) = 0 Then Exit Sub
Connect "w"
sqlstr = "select * from charge where Uid='" & uid & "'"
rs.Open sqlstr
con.BeginTrans
If rs.EOF Then
MsgBox "未找到用户名为: " & uid & " 的交费信息!" '未找到纪录
con.RollbackTrans
Disconnect
Exit Sub
ElseIf ctype = "" Then '用户类型为空
MsgBox "用户类型不能为空!"
con.RollbackTrans
Disconnect
Exit Sub
Else '修改已有记录
rs.Fields("Uid") = uid
rs.Fields("ctype") = ctype
rs.Fields("starttime") = StartTime
rs.Fields("endtime") = EndTime
rs.Fields("eid") = Eid
rs.Fields("charge") = Charge
rs.Update
MsgBox "用户ID为:" & uid & " 的数据更新成功!"
con.CommitTrans
Disconnect
Exit Sub
End If
End Sub
Public Sub Delete() '删除纪录
Connect "w"
sqlstr = "select * from Charge where Uid='" & uid & "'"
rs.Open sqlstr
con.BeginTrans
If rs.EOF Then
MsgBox ("未找到用户ID为:" & uid & "的相关信息!请检查后再继续!") '未找到纪录
con.RollbackTrans
Disconnect
Exit Sub
Else '成功删除已有纪录
rs.Delete
rs.UpdateBatch
con.CommitTrans
MsgBox ("用户ID为:" & uid & " 的交费信息成功被删除!")
Disconnect
Exit Sub
End If
End Sub
Public Function GetEids() As String() '取得设备ID号以再ListBox中显示
Dim GetEid As CPulic
Set GetEid = New CPulic
GetEids = GetEid.GetListIDs("Equipment", "Eid")
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -