ACC2000: Voorbeeld van de functie SOM wordt uitgevoerd op een formulier maken

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 210338 - Bekijk de producten waarop dit artikel van toepassing is.
Matig: Basic macro, codering en interoperabiliteit vaardigheden vereist.

Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel ziet u een voorbeeld gebruiker gedefinieerde functie maken op een formulier een lopend totaal berekenen.

Meer informatie

Een manier voor het berekenen van een lopend totaal in een formulier is met deDSOM ()functie. Voor meer informatie over het gebruik van deDSOM ()functie voor het berekenen van een lopend totaal in een formulier, raadpleegt u de volgende artikel in de Microsoft Knowledge Base:
210495Access 2000: Het gebruik van DSum som wordt uitgevoerd op een formulier maken
Met de methode in dit artikel wordt aangetoond, heeft de volgende voordelen via het gebruik van deDSOM ()functie:
  • De methode geïllustreerd in dit artikel is niet vereist voor een opeenvolgende veld-ID. Een vereist veld volg ID beperkt tot het berekenen van een lopend totaal met een enkele volg orde van records.
  • Met de methode in dit artikel wordt aangetoond is aanzienlijk sneller dan het gebruik van deDSOM ()de functie voor het berekenen van een lopend totaal.

Hoe maak en gebruik de functie RunSum()

Microsoft biedt program meer voorbeelden ter illustratie alleen, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend met de programmeer taal worden opgespoord en met de hulp programma's die worden gebruikt bent voor het maken en waarmee fouten in procedures. Ondersteuningstechnici van Microsoft kunnen helpen verklaren de functionaliteit van een bepaalde procedure, maar zij zal deze voorbeelden om extra functionaliteit of samens tellen van procedures om te voldoen aan uw specifieke vereisten niet wijzigen.OPMERKING: De voorbeeldcode in dit artikel wordt Microsoft Data Access Objects. Deze code alleen goed uitvoeren als u verwijst naar de Microsoft DAO 3. 6 Object Library. Hiertoe klikt u opVerwijzingenop deHulp programma'smenu in de Visual Basic Editor en zorg ervoor dat deDe objectbibliotheek Microsoft DAO 3. 6selectie vakje is ingeschakeld.

  1. Open de voorbeeld data base Noordenwind. mdb. Maak een nieuwe module en typ de volgende regel in de declaratie sectie, als deze er nog niet:
    Option Explicit
  2. Typ de volgende code in de module:
    Function RunSum (F As Form, KeyName As String, KeyValue, _
      FieldToSum As String)
    '***********************************************************
    ' FUNCTION: RunSum()
    ' PURPOSE:  Compute a running sum on a form.
    ' PARAMETERS:
    '    F        - The form containing the previous value to
    '               retrieve.
    '    KeyName  - The name of the form's unique key field.
    '    KeyValue - The current record's key value.
    '    FieldToSum - The name of the field in the previous
    '                 record containing the value to retrieve.
    ' RETURNS:  A running sum of the field FieldToSum.
    ' EXAMPLE:  =RunSum(Form,"ID",[ID],"Amount")
    '***********************************************************
       Dim RS As DAO.Recordset
       Dim Result
    
       On Error GoTo Err_RunSum
    
       ' Get the form Recordset.
       Set RS = F.RecordsetClone
    
       ' Find the current record.
       Select Case RS.Fields(KeyName).Type
          ' Find using numeric data type key value?
          Case DB_INTEGER, DB_LONG, DB_CURRENCY, _
             DB_SINGLE, DB_DOUBLE, DB_BYTE
             RS.FindFirst "[" & KeyName & "] = " & KeyValue
          ' Find using date data type key value?
          Case DB_DATE
             RS.FindFirst "[" & KeyName & "] = #" & KeyValue & "#"
          ' Find using text data type key value?
          Case DB_TEXT
             RS.FindFirst "[" & KeyName & "] = '" & KeyValue & "'"
          Case Else
             MsgBox "ERROR: Invalid key field data type!"
             GoTo Bye_RunSum
       End Select
    
       ' Compute the running sum.
       Do Until RS.BOF
          Result = Result + RS(FieldToSum)
    
          ' Move to the previous record.
          RS.MovePrevious
       Loop
    
    Bye_RunSum:
       RunSum = Result
       Exit Function
    
    Err_RunSum:
       Resume Bye_RunSum
    
    End Function
  3. De volgende nieuwe query op basis van de tabel Orders en de query Subtotalen orders maken. Sla de query op als qryOrders:
       Query: qryOrders
       ------------------------------------------------------
       Type: select query
       Join: Orders.[OrderID] <->; [Order Subtotals].[OrderID]
    
       Field: OrderID
          Table: Orders
          Sort: Ascending
       Field: Subtotal
          Table: Order Subtotals
  4. Gebruik de formulierwizard een nieuw formulier op basis van de qryOrders-query maken. Beide velden op het formulier opnemen. Het volgende scherm opIn tabel vorm.
  5. Een tekstvak met de volgende eigenschappen toevoegen aan het nieuwe formulier:
       Name: RunningSum
       ControlSource: =RunSum([Form],"OrderID",[OrderID],"Subtotal")
       Format: Currency
  6. Het formulier opslaan en vervolgens bekijken in de formulier weergave.
  7. Selecteer verschillende records met behulp van de record kiezer. Opmerking het lopend totaal veld wordt een cumulatief totaal op basis van het veld Subtotaal.

Eigenschappen

Artikel ID: 210338 - Laatste beoordeling: maandag 28 februari 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Access 2000 Standard Edition
Trefwoorden: 
kbhowto kbprogramming kbusage kbmt KB210338 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:210338

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com