rapport maakt slechts één record aan

Status
Niet open voor verdere reacties.

arnoderuig

Gebruiker
Lid geworden
8 sep 2000
Berichten
577
Ik heb een rapport gemaakt waarmee een reeks facturen wordt afgedrukt. Binnen het rapport worden berekeningen gemaakt zoals btw en eindbedrag. Tijdens het afdrukken wil van elke geprinte factuur enkele gegevens in een tabel opnemen. Ik heb daarvoor onderstaande sub gemaakt:

Private Sub Details_Print(Cancel As Integer, PrintCount As Integer)

Dim hDatum As Date
hDatum = Now()
Dim vFactuur As Recordset
Set vFactuur = CurrentDb.OpenRecordset("tblFactuurVoorlopig")

With vFactuur
.AddNew
!KlantNr = Me.KlantID
!FactuurID = Me.txtFactuurnummer
!FactuurDatum = Me.FactuurDatum
!FactuurBedrag = Me.FactuurBedrag
!AanmaanTeller = 0
!FactuurMutatieDatum = hDatum
.Update
End With

vFactuur.Close

End Sub

Nu blijkt echter dat alleen van de eerste factuur een record wordt aangemaakt. Van de overige facturen worden geen records aangemaakt. Wat doe ik fout?
 
Ik denk dat je je probleem op een andere manier moet oplossen. Je moet een rapport niet gebruiken om je database te updaten/aan te passen. Je code wordt erg rommelig onoverzichtelijk en moeilijk te onderhouden.

Pas eerst je database aan en genereer daarna je rapport.
Je rapport moet niet meer doen dan het tonen van je data.

Blijkbaar wordt het Print event slechts eenmaal afgvevuurt voor je hele rapport. Daarom werkt het niet.

HTH:D
 
Guus2005,

Bedankt voor je reactie.

Ik heb deze vraag ook op een ander forum gesteld en ben er inmiddels wel achter dat ik het inderdaad op een andere manier moet organiseren. De wijze waarop ik het thans doe is geboren uit het feit dat ik jaren geleden gewoon onvoldoende kennis van VBA had om het anders te kunnen doen. Vooral de wijze waarop ik kan zorgen dat in een record wordt aangegeven dat een factuurnummer steeds 1 hoger moet zijn dan het vorige record beheers ik niet. Dat heb ik in het rapport opgelost. Daarom mijn oorspronkelijke keuze om vanuit het rapport een factuurbestand te vullen.

Nu dus toch maar anders organiseren maar hoe doe ik dat. Thans beschik ik over een query die de factuurgegevens verzamelt. Ik stel me zo voor dat ik eerst vanuit de query de voorlopige factuurtabel vul met gegevens. Daar ontbreekt dan nog een factuurnummer. Dan zou ik met een stukje VBA record voor record kunnen vullen met een oplopend factuurnummer waarbij het eerst te gebruiken factuurnummer wordt gehaald uit een formulierveld. Is er een kort voorbeeld te geven hoe de VBA-code eruit zou moeten zien?
 
Als je een voorbeeld database post (gezipt) dan zal dat een stuk makkelijker gaan.
 
Bijgaand een voorbeeld.

Ter info. De tabel tblOrders moet je eigenlijk zien als de query die vanuit diverse tabellen de gegevens bij elkaar sprokkelt om de factuur te kunnen maken. De uiteindelijke bedoeling is dus dat de tabel tblFactuurVoorlopig wordt gevuld met de benodigde gegevens. In het rapport rptFacturenPrinten tref je nu linksboven (wordt niet geprint) het eerste factuurnummer-1 aan dat normaliter een verwijzing heeft naar een formulier maar nu dus even op deze wijze is geplaatst.

Ik hoop dat je hiermee wat kunt. Ik bedank je reeds nu voor de wijze waarop je met me wilt meedenken.
 

Bijlagen

  • Database2003.zip
    17,7 KB · Weergaven: 31
Je kan het laatste uitgegeven Factuurnummer opslaan in een tabel. Ik gebruik daar een tabel met de naam Param voor met de volgende velden ID, Value en Description. Alle text velden. In ID zet je LaatsteFactuurnummer, in Value 80172, in description moet je zelf weten.
Als je nu steeds de laatste factuurnummer in Param opslaat dan kan je die daar de eerste volgende keer dat je hem nodig hebt ophalen.

Enjoy!
 
Dank voor je reactie. Het is inderdaad een manier om het laatst gebruikte factuurnummer op deze wijze op te slaan.

Waar het me echter om ging is een stukje VBA waarmee ik kan zorgen dat (aan de hand van het laatste factuurnummer) een tabel wordt gevuld met de opvolgende te gebruiken factuurnummers die dan op één op andere wijze wordt gekoppeld met de query. Ik stel me daarbij voor dat voor elke record in de query (waar ordernr het unieke gegeven is) in een apart bestand dit ordernummer en het berekende opvolgende nummer wordt gegenereerd. Is dat een manier? Hoe doe ik dat dan?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan