📄 energyconsumption.ebf
字号:
txtAddress.Enabled = False
MyQuery = "SELECT * FROM EnergyMeter where SNo='" & txtSNo.Text & "'"
Set RSEnergyMeterModify = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeterModify.Open MyQuery, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeterModify.RecordCount > 0 Then
ModifySNo = RSEnergyMeterModify.Fields("SNo")
DisablecmdButtons
cmdClose.Caption = "Cancel"
MyButtonAction = "Modify"
RSEnergyMeterModify.Close
Set RSEnergyMeterModify = Nothing
Else
MsgBox "NO Record"
RSEnergyMeterModify.Close
Set RSEnergyMeterModify = Nothing
End If
End Sub
'This control event is to display the next record
Private Sub cmdNext_Click()
cmdSave.Enabled = False
ClearAllFields
If RSEnergyMeter.Bookmark = MyLastBookMark Then
RSEnergyMeter.MoveLast
MsgBox "Last Record"
Else
RSEnergyMeter.MoveNext
End If
Display
End Sub
'This control event is to display the previous record
Private Sub cmdPrevious_Click()
cmdSave.Enabled = False
ClearAllFields
If RSEnergyMeter.Bookmark = MyFirstBookMark Then
RSEnergyMeter.MoveFirst
MsgBox "First Record"
Else
RSEnergyMeter.MovePrevious
End If
Display
End Sub
'This control event is to add new record or update existing record
Private Sub cmdSave_Click()
If MyButtonAction = "New" Then
MyQuery = "SELECT * FROM EnergyMeter where SNo='" & txtSNo.Text & "'"
Set RSEnergyMeterSave = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeterSave.Open MyQuery, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeterSave.RecordCount > 0 Then
MsgBox "With This SNo Record Already Exists"
RSEnergyMeterSave.Close
Set RSEnergyMeterSave = Nothing
Else
RSEnergyMeterSave.AddNew
AddDataFromFieldsToDB
RSEnergyMeterSave.Update
RSEnergyMeterSave.Close
Set RSEnergyMeterSave = Nothing
EnablecmdButtons
cmdClose.Caption = "Exit"
MyButtonAction = ""
RefreshDB
ClearAllFields
Display
DisableFields
End If
ElseIf MyButtonAction = "Modify" Then
MyQuery = "SELECT * FROM EnergyMeter where SNo='" & txtSNo.Text & "'"
Set RSEnergyMeterModify = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeterModify.Open MyQuery, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeterModify.RecordCount > 0 Then
If Trim(txtSNo.Text) = ModifySNo Then
MyQueryModify = "SELECT * FROM EnergyMeter where SNo='" & ModifySNo & "'"
Set RSEnergyMeterSave = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeterSave.Open MyQueryModify, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeterSave.RecordCount > 0 Then
AddDataFromFieldsToDB
RSEnergyMeterSave.Update
RSEnergyMeterSave.Close
Set RSEnergyMeterSave = Nothing
EnablecmdButtons
cmdClose.Caption = "Exit"
MyButtonAction = ""
MyCurrentBookMark = RSEnergyMeter.Bookmark
RefreshDB
RSEnergyMeter.Bookmark = MyCurrentBookMark
DisableFields
End If
RSEnergyMeterModify.Close
Set RSEnergyMeterModify = Nothing
Else
MsgBox "With This SNo Record Already Exists"
RSEnergyMeterModify.Close
Set RSEnergyMeterModify = Nothing
End If
Else
MyQueryModify = "SELECT * FROM EnergyMeter where SNo='" & ModifySNo & "'"
Set RSEnergyMeterSave = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeterSave.Open MyQueryModify, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeterSave.RecordCount > 0 Then
AddDataFromFieldsToDB
RSEnergyMeterSave.Update
RSEnergyMeterSave.Close
Set RSEnergyMeterSave = Nothing
EnablecmdButtons
cmdClose.Caption = "Exit"
MyButtonAction = ""
MyCurrentBookMark = RSEnergyMeter.Bookmark
RefreshDB
RSEnergyMeter.Bookmark = MyCurrentBookMark
DisableFields
End If
RSEnergyMeterModify.Close
Set RSEnergyMeterModify = Nothing
End If
End If
End Sub
'This form event is to display first record data while the application is loading.
Private Sub Form_Load()
Set CNEnergyMeter = CreateObject("ADOCE.Connection.3.0")
CNEnergyMeter.Open "\My Documents\EnergyMeter\EnergyMeterDB.cdb"
'CreateDBandTable
ClearAllFields
EnablecmdButtons
MyQuery = "SELECT * FROM EnergyMeter"
Set RSEnergyMeter = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeter.Open MyQuery, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeter.RecordCount > 0 Then
RSEnergyMeter.MoveFirst
MyFirstBookMark = RSEnergyMeter.Bookmark
RSEnergyMeter.MoveLast
MyLastBookMark = RSEnergyMeter.Bookmark
RSEnergyMeter.MoveFirst
Display
Else
MsgBox "No Records In the Database"
End If
DisableFields
End Sub
'This control event is to close the record set, connection and application
Private Sub Form_OKClick()
RSEnergyMeter.Close
Set RSEnergyMeter = Nothing
CNEnergyMeter.Close
Set CNEnergyMeter = Nothing
App.End
End Sub
'This procedure is to add months to combobox
Private Sub AddMonthsToComboBox()
cboMonths.AddItem ("January")
cboMonths.AddItem ("February")
cboMonths.AddItem ("March")
cboMonths.AddItem ("April")
cboMonths.AddItem ("May")
cboMonths.AddItem ("June")
cboMonths.AddItem ("July")
cboMonths.AddItem ("August")
cboMonths.AddItem ("September")
cboMonths.AddItem ("October")
cboMonths.AddItem ("Nevember")
cboMonths.AddItem ("December")
End Sub
'This procedure is to enable the command buttons
Private Sub EnablecmdButtons()
cmdSave.Enabled = False
cmdADD.Enabled = True
cmdModify.Enabled = True
cmdDelete.Enabled = True
cmdFirst.Enabled = True
cmdLast.Enabled = True
cmdNext.Enabled = True
cmdPrevious.Enabled = True
End Sub
'This procedure is to disable the command buttons
Private Sub DisablecmdButtons()
cmdSave.Enabled = True
cmdADD.Enabled = False
cmdModify.Enabled = False
cmdDelete.Enabled = False
cmdFirst.Enabled = False
cmdLast.Enabled = False
cmdNext.Enabled = False
cmdPrevious.Enabled = False
End Sub
'This procedure is to disable all text fields
Private Sub DisableFields()
txtSNo.Enabled = False
txtDate.Enabled = False
txtMeterNo.Enabled = False
cboMonths.Enabled = False
txtAddress.Enabled = False
txtInitialReading.Enabled = False
txtPresentReading.Enabled = False
End Sub
'This procedure is to enable all text fields
Private Sub EnableFields()
txtSNo.Enabled = True
txtDate.Enabled = True
txtMeterNo.Enabled = True
cboMonths.Enabled = True
txtAddress.Enabled = True
txtInitialReading.Enabled = True
txtPresentReading.Enabled = True
End Sub
'This procedure is to assigning database fields data to text fields
Private Sub Display()
txtSNo.Text = RSEnergyMeter.Fields("SNo")
txtDate.Text = RSEnergyMeter.Fields("Date")
txtMeterNo.Text = RSEnergyMeter.Fields("MeterNo")
cboMonths.Clear
cboMonths.AddItem RSEnergyMeter.Fields("BilledMonth")
cboMonths.ListIndex = 0
txtAddress.Text = RSEnergyMeter.Fields("Address")
txtInitialReading.Text = RSEnergyMeter.Fields("InitialReading")
txtPresentReading.Text = RSEnergyMeter.Fields("PresentReading")
End Sub
'This procedure is to clear all the text boxes
Private Sub ClearAllFields()
txtSNo.Text = ""
txtDate.Text = ""
txtMeterNo.Text = ""
cboMonths.Clear
txtAddress.Text = ""
txtInitialReading.Text = ""
txtPresentReading.Text = ""
End Sub
'This procedure is to refresh the database
Private Sub RefreshDB()
RSEnergyMeter.Close
Set RSEnergyMeter = Nothing
MyQuery = "SELECT * FROM EnergyMeter"
Set RSEnergyMeter = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeter.Open MyQuery, CNEnergyMeter, adOpenKeyset, adLockOptimistic
RSEnergyMeter.MoveFirst
MyFirstBookMark = RSEnergyMeter.Bookmark
RSEnergyMeter.MoveLast
MyLastBookMark = RSEnergyMeter.Bookmark
End Sub
'This procedure is to assigning text fields data to database fields
Private Sub AddDataFromFieldsToDB()
RSEnergyMeterSave.Fields("SNo") = Trim(txtSNo.Text)
RSEnergyMeterSave.Fields("Date") = Trim(txtDate.Text)
RSEnergyMeterSave.Fields("MeterNo") = Trim(txtMeterNo.Text)
RSEnergyMeterSave.Fields("BilledMonth") = Trim(cboMonths.Text)
RSEnergyMeterSave.Fields("Address") = Trim(txtAddress.Text)
RSEnergyMeterSave.Fields("InitialReading") = Trim(txtInitialReading.Text)
RSEnergyMeterSave.Fields("PresentReading") = Trim(txtPresentReading.Text)
End Sub
'This procedure is to set current month in combobox
Private Sub BilledMonthToComboBox()
MyMonth = Mid(Date, 1, 2)
If MyMonth >= "10" And MyMonth <= "12" Then
MyMonth = MyMonth
Else
MyMonth = Mid(MyMonth, 1, 1)
End If
If CInt(MyMonth) = 1 Then
cboMonths.ListIndex = 0
ElseIf CInt(MyMonth) = 2 Then
cboMonths.ListIndex = 1
ElseIf CInt(MyMonth) = 3 Then
cboMonths.ListIndex = 2
ElseIf CInt(MyMonth) = 4 Then
cboMonths.ListIndex = 3
ElseIf CInt(MyMonth) = 5 Then
cboMonths.ListIndex = 4
ElseIf CInt(MyMonth) = 6 Then
cboMonths.ListIndex = 5
ElseIf CInt(MyMonth) = 7 Then
cboMonths.ListIndex = 6
ElseIf CInt(MyMonth) = 8 Then
cboMonths.ListIndex = 7
ElseIf CInt(MyMonth) = 9 Then
cboMonths.ListIndex = 8
ElseIf CInt(MyMonth) = 10 Then
cboMonths.ListIndex = 9
ElseIf CInt(MyMonth) = 11 Then
cboMonths.ListIndex = 10
ElseIf CInt(MyMonth) = 12 Then
cboMonths.ListIndex = 11
End If
End Sub
'This procedure is to assigning month numbers to text format
Private Sub MonthsInTextFormat()
If CInt(MyMonth) = 1 Then
MyMonthText = "January"
ElseIf CInt(MyMonth) = 2 Then
MyMonthText = "February"
ElseIf CInt(MyMonth) = 3 Then
MyMonthText = "March"
ElseIf CInt(MyMonth) = 4 Then
MyMonthText = "April"
ElseIf CInt(MyMonth) = 5 Then
MyMonthText = "May"
ElseIf CInt(MyMonth) = 6 Then
MyMonthText = "June"
ElseIf CInt(MyMonth) = 7 Then
MyMonthText = "July"
ElseIf CInt(MyMonth) = 8 Then
MyMonthText = "August"
ElseIf CInt(MyMonth) = 9 Then
MyMonthText = "September"
ElseIf CInt(MyMonth) = 10 Then
MyMonthText = "October"
ElseIf CInt(MyMonth) = 11 Then
MyMonthText = "Nevember"
ElseIf CInt(MyMonth) = 12 Then
MyMonthText = "December"
End If
End Sub
'This procedure is to create database and tables
Private Sub CreateDBandTable()
Dim RS As ADOCE.Recordset
Dim SQl As String
Set RS = CreateObject("ADOCE.Recordset.3.0")
' create database
RS.Open "CREATE DATABASE '\My Documents\EnergyMeter\EnergyMeterDB.cdb'"
' create EnergyMeter Table
SQl = "CREATE TABLE EnergyMeter ("
SQl = SQl & "SNo varchar(8),"
SQl = SQl & "Date varchar(10),"
SQl = SQl & "MeterNo varchar(10) ,"
SQl = SQl & "BilledMonth varchar(10) ,"
SQl = SQl & "Address varchar(250) ,"
SQl = SQl & "InitialReading varchar(10) ,"
SQl = SQl & "PresentReading varchar(10))"
RS.Open SQl, "\My Documents\EnergyMeter\EnergyMeterDB.cdb"
'Create Index for EnergyMeter Table
RS.Open "CREATE INDEX PrimaryKey ON EnergyMeter(SNo)", _
"\My Documents\EnergyMeter\EnergyMeterDB.cdb"
Set RS = Nothing
End Sub
'This control event is for checking the current month for a given meterno already Billed or not.
Private Sub txtMeterNo_LostFocus()
MyQuery = "SELECT * FROM EnergyMeter where MeterNo='" & txtMeterNo.Text & "'"
Set RSEnergyMeterNew = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeterNew.Open MyQuery, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeterNew.RecordCount > 0 Then
MyMonth = MyMonth - 1
If CInt(MyMonth) = 0 Then
MyMonth = 12
Else
MyMonth = MyMonth
End If
MonthsInTextFormat
MyQueryNew = "SELECT * FROM EnergyMeter where MeterNo='" & txtMeterNo.Text & "' and BilledMonth='" & cboMonths.Text & "' "
Set RSEnergyMeterModify = CreateObject("ADOCE.Recordset.3.0")
RSEnergyMeterModify.Open MyQueryNew, CNEnergyMeter, adOpenKeyset, adLockOptimistic
If RSEnergyMeterModify.RecordCount > 0 Then
MsgBox "For this Meter Number For this month Record already Exits"
Else
Dim i As Integer
For i = 1 To RSEnergyMeterNew.RecordCount
If RSEnergyMeterNew.Fields("BilledMonth") = MyMonthText Then
txtAddress.Text = RSEnergyMeterNew.Fields("Address")
txtInitialReading.Text = RSEnergyMeterNew.Fields("PresentReading")
Else
RSEnergyMeterNew.MoveNext
End If
Next
'txtInitialReading.Enabled = False
RSEnergyMeterNew.Close
Set RSEnergyMeterNew = Nothing
cmdSave.Enabled = True
txtPresentReading.SetFocus
End If
RSEnergyMeterModify.Close
Set RSEnergyMeterModify = Nothing
Else
txtAddress.Enabled = True
txtInitialReading.Enabled = True
RSEnergyMeterNew.Close
Set RSEnergyMeterNew = Nothing
cmdSave.Enabled = True
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -