⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 energyconsumption.ebf

📁 < 嵌入式系统编程源代码解析>>这本书所附的代码,有了几个典型的实例,但有些看不懂,不知它是基于什么的,不好入手搞.
💻 EBF
📖 第 1 页 / 共 3 页
字号:
    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 + -