MSDN > 論壇首頁 > Visual Basic for Applications (VBA) > DSum Errors On Some Machines
發問發問
 

已答覆DSum Errors On Some Machines

  • Tuesday, 7 July, 2009 23:49Fogie 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
         I have a form which uses many DSum calls.  This form works fine on my machine (XP Home, Access 2003), and on my test machine (Win. 2000, Office 2000) but gives only #Error on another machine (XP Pro, Access 2000).  The .mdb file was copied directly to the offending machine, so all data, table structure and code are the same.

        Any ideas on where I should look to find out why?
    The early worm gets the bird

解答

  • Thursday, 9 July, 2009 5:18BrijrajRathod 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆
    use below code,

    use nz to avoid headache of null value.

    IIf(DSum("nz( [Admin Cost],0 )","[Temporary Expenditures Table]","Month(nz( [E Date],0) )=10")>0,DSum("nz( [Admin Cost],0) ","[Temporary Expenditures Table]","Month(nz( [E Date],0) )=10"),0)
    Rgrds, Brij http://accessvbadeveloper.wordpress.com

所有回覆

  • Wednesday, 8 July, 2009 11:16BrijrajRathod 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    Hi,

    Please provide some more information about your code using DSum and #Error. Thanks

    Rgrds, Brij http://accessvbadeveloper.wordpress.com
  • Wednesday, 8 July, 2009 14:30Fogie 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    Ok - thanks for answering.

    The form is 7 X 12 textboxes.  The code from one of the boxes is:

    =IIf(DSum("[Admin Cost]","[Temporary Expenditures Table]","Month([E Date])=10")>0,DSum("[Admin Cost]","[Temporary Expenditures Table]","Month([E Date])=10"),0)

    When the form is run on the customer's machine all that appears in any of the boxes is "#Error".  The customer's machine is running Access 2000 with Windows XP Pro and the .mdb file is on a server with the offending machine linked to it.  Other forms worked, so I don't think it is a connection issue.

    The table does have nulls in it, but the code ignores the nulls on the two test machines.

    The early worm gets the bird
  • Thursday, 9 July, 2009 5:18BrijrajRathod 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆
    use below code,

    use nz to avoid headache of null value.

    IIf(DSum("nz( [Admin Cost],0 )","[Temporary Expenditures Table]","Month(nz( [E Date],0) )=10")>0,DSum("nz( [Admin Cost],0) ","[Temporary Expenditures Table]","Month(nz( [E Date],0) )=10"),0)
    Rgrds, Brij http://accessvbadeveloper.wordpress.com
  • Thursday, 9 July, 2009 14:58Fogie 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    I had not heard of the nz function, but that might be it.  I will try it.  Thanks.
    The early worm gets the bird