Database (DB) is rounding incorrectly

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • portsamerica
    New Member
    • Dec 2007
    • 2

    Database (DB) is rounding incorrectly

    I am new with access database and our database having rounding issues can any one help me here is the Query.
    Code:
    Private Sub ComputeInvoice(ciArg As String)
        If IsNull(Me.[CustomerID]) Then
          MsgBox ("Customer ID required!")
          Exit Sub
        End If
        Dim SUBTOTAL As Double
        Dim MATERIALCOST As Double
        Dim HOURSTOTAL As Double
        Dim TAX As Double
        Dim MyDB As Database, MyRS As Recordset
        Set MyDB = DBEngine.Workspaces(0).Databases(0)
        Set MyRS = MyDB.OpenRecordset("tblcustomers", dbOpenTable)
        MyRS.Index = "CustomerID"
        MyRS.Seek "=", Me![CustomerID]
        Me![CustomerID] = MyRS![CustomerID]
        Me!LABORRATE = MyRS![LABORRATE]
        MyRS.Close
          
        SUBTOTAL = 0
        MATERIALCOST = 0
        HOURSTOTAL = 0
        'MsgBox Val(materialcost)
        If Not IsNull(Me![MAT1]) Then MATERIALCOST = MATERIALCOST + Me!MAT1
        If Not IsNull(Me![MAT2]) Then MATERIALCOST = MATERIALCOST + Me!MAT2
        If Not IsNull(Me![MAT3]) Then MATERIALCOST = MATERIALCOST + Me!MAT3
        If Not IsNull(Me![MAT4]) Then MATERIALCOST = MATERIALCOST + Me!MAT4
        If Not IsNull(Me![MAT5]) Then MATERIALCOST = MATERIALCOST + Me!MAT5
        If Not IsNull(Me![MAT6]) Then MATERIALCOST = MATERIALCOST + Me!MAT6
        If Not IsNull(Me![MAT7]) Then MATERIALCOST = MATERIALCOST + Me!MAT7
        If Not IsNull(Me![MAT8]) Then MATERIALCOST = MATERIALCOST + Me!MAT8
        If Not IsNull(Me![MAT9]) Then MATERIALCOST = MATERIALCOST + Me!MAT9
        If Not IsNull(Me![MAT10]) Then MATERIALCOST = MATERIALCOST + Me!MAT10
        If Not IsNull(Me![MAT11]) Then MATERIALCOST = MATERIALCOST + Me!MAT11
        If Not IsNull(Me![MAT12]) Then MATERIALCOST = MATERIALCOST + Me!MAT12
        If Not IsNull(Me![MAT13]) Then MATERIALCOST = MATERIALCOST + Me!MAT13
        If Not IsNull(Me![MAT14]) Then MATERIALCOST = MATERIALCOST + Me!MAT14
        If Not IsNull(Me![MAT15]) Then MATERIALCOST = MATERIALCOST + Me!MAT15
        If Not IsNull(Me![HOUR1]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR1
        If Not IsNull(Me![HOUR2]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR2
        If Not IsNull(Me![HOUR3]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR3
        If Not IsNull(Me![HOUR4]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR4
        If Not IsNull(Me![HOUR5]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR5
        If Not IsNull(Me![HOUR6]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR6
        If Not IsNull(Me![HOUR7]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR7
        If Not IsNull(Me![HOUR8]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR8
        If Not IsNull(Me![HOUR9]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR9
        If Not IsNull(Me![HOUR10]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR10
        If Not IsNull(Me![HOUR11]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR11
        If Not IsNull(Me![HOUR12]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR12
        If Not IsNull(Me![HOUR13]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR13
        If Not IsNull(Me![HOUR14]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR14
        If Not IsNull(Me![HOUR15]) Then HOURSTOTAL = HOURSTOTAL + Me!HOUR15
        Me!totalmaterial = Round(MATERIALCOST, 2)
        Me!totalhours = Round(HOURSTOTAL, 2)
        
        Me!totalcost = Round(HOURSTOTAL * LABORRATE, 2)
        SUBTOTAL = Round((HOURSTOTAL * LABORRATE), 2) + MATERIALCOST
        If Me!TYPE = "LR" Then Me!totalhours = Round((HOURSTOTAL * 1.5), 2)
        If Me!TYPE = "LR" Then Me!totalcost = Round((HOURSTOTAL * 73), 2)
        
        If Me!TYPE = "LR" Then SUBTOTAL = Round((HOURSTOTAL * 73), 2) + MATERIALCOST
        
        
     
        TAX = 0
        Me!invoicetotal = SUBTOTAL + TAX
    
    If ciArg = "C" Then
      Exit Sub
    Can any one tell me when i add to total why my total is wrong like one digit up or down.
  • Motoma
    Recognized Expert Specialist
    • Jan 2007
    • 3236

    #2
    Hi portsamerica,
    Perhaps you could tell us what language you are writing this in, as well as the database you are using. Also, give us a general sense of where the error is occurring. List any debugging methods you have tried, as well as your thoughts on their results.

    Comment

    • portsamerica
      New Member
      • Dec 2007
      • 2

      #3
      this is MS ACCESS 2003 database and i never work on it.my boss want me to look in to that and fix the rounding issue.

      Comment

      • NeoPa
        Recognized Expert Moderator MVP
        • Oct 2006
        • 32668

        #4
        Please tell us which item is rounding incorrectly.
        What type of field is used for the item?

        Comment

        • FishVal
          Recognized Expert Specialist
          • Jun 2007
          • 2656

          #5
          Take a look at the thread Round function - how it REALLY works

          Regards,
          Fish

          Comment

          Working...