rapport: gegevens samen houden

Status
Niet open voor verdere reacties.

J.-L.

Gebruiker
Lid geworden
15 aug 2005
Berichten
52
Heb een rapport gemaakt dat volgende data weergeeft:

gegroepeerd per ActID staan de titels van de activiteiten,
daaronder moeten alle doelen weergegeven worden die (via een subformulier) aan deze ActID werden gekoppeld (in het rapport staan deze bij details)

alles wordt in het rapport weergegeven, maar ik had liever dat de ActID en haar doelen steeds op dezelfde bladzijde van het rapport getoond zouden worden

nu kan het zijn dat onderaan op de pagina de ActID getoond wordt, en dat de doelen op de volgende bladzijde getoond worden

is er een mogelijk om in het rapport aan te geven dat deze gegevens samen op dezelfde bladzijde moeten getoond worden, en dat, indien dit niet mogelijk, het geheel (ActID en doelen) naar de volgende bladzijde moet gezet worden?

alvast bedankt.
 

Bijlagen

  • rapport-probleem.jpg
    rapport-probleem.jpg
    93 KB · Weergaven: 76
ga met je muiscursor in ontwerpstand in het vak van koptekst staan en selecteereigenschappen.
nieuwe pagina: Voor sectie
nieuwe kolom: geen
bijeenhouden: ja


misschien kom je zo wat verder
 
Heb een beetje met deze eigenschappen gespeeld, en krijg nog niet het gewenste resultaat. Op deze manier begint er steeds een nieuwe pagina.

Probleem is ook dat koptekst en details moeten samengehouden worden
 
bij eigenschappen van het rapport moet staan:

Paginakoptekst: Alle pagina's
 
Probleem is nog steeds niet opgelost:

Het is dus de bedoeling dat koptekst en details steeds worden samengehouden.
Er mag slechts een nieuwe pagina begonnen worden wanneer deze twee niet meer samen op de bladzijde kunnen.
 
Post je mdb en vertel even in welk rapport het probleem zit.
 
Is het mogelijk om de database rechtstreeks te mailen naar u, gezipt is ze nog te groot om als bijlage naar het forum te sturen.
Alvast bedankt.
 
Een van de doelstellingen van het forum is dat iedereen iets kan leren van de vragen die gesteld worden. Dat lukt natuurlijk niet meer als we elkaar rechtstreeks gaan mailen.

Heb je je mdb al gecomprimeerd (deze optie zit onder menu extra, database opties)? Dat maakt een mdb meestal flink wat kleiner.

Vervolgens kun je ook de onderdelen die niets met jou probleem te maken hebben er even uithalen en dan nogmaals comprimeren.
 
Geen enkel probleem, het was niet de bedoeling om de db niet op het forum te zetten.
Ik probeer er wat dingen uit te halen om te toch gepost te krijgen.
 
Is gelukt, in bijlage kan je de database vinden.

Probleem situeert zich in rptWeekoverzichtActiviteiten.
Als je dit rapport opent, moet je "1" ingeven. Dan krijg je een rapport waarop het probleem te zien is. Onderaan staat activiteit 7, deze zou in zijn geheel naar de volgende bladzijde moeten gaan.

Bijkomend stelt zich nog volgend probleem:
Op het frmActiviteiten heb ik volgende 2 knoppen gemaakt:
- nieuw record toevoegen
- record dupliceren (werkt via module en toevoegquery, daar er ook records van een subformulier moeten gedupliceerd worden)

Deze twee knoppen werken perfect, maar indien ik eerst een record dupliceer en nadien een ander nieuw record wil aanmaken, worden de velden uit het gedupliceerde record mee overgenomen en moet ik deze handmatig terug leegmaken om zo een heel nieuwe record in te vullen. (dit gebeurt niet wanneer ik eerst het formulier sluit, terug open en dan een nieuw record aanmaak)

Op welke manier kan ik ervoor zorgen dat bij het gebruiken van de knop 'nieuw record' eerst de gegevens van het gedupliceerde record gewist zijn?

Ik probeerde het al door een macro te maken (formulier sluiten, formulier terug openen en nieuw record maken). Zo lukte het wel, maar ik werk liever niet met een macro. Is dit op te lossen met een code die ik in VBA plaats voor "DoCmd.GoToRecord , , acNewRec"?

Alvast bedankt.
 

Bijlagen

Voor het rapport.
Ga naar Groeperen en Sorteren voor de koptekst(ActID) en zet de eigenschap Bijeenhouden van het veld ActID op 'Hele groep'.

Voor het formulier.
Je zet bij het dupliceren de formulierwaarden in variabelen die je op module niveau gedeclareerd hebt (bijvoorbeeld MijnVakID).
De variabelen blijven hun waarde houden zolang je formulier actief is.
Onder eigenschap Bij Aanwijzen van je formulier vul je de velden op je formulier met de waarden uit die variabelen. De variabelen worden alleen nergens geschoond, dus die blijven gewoon de waarde houden die ze kregen bij het dupliceren.
Dat is de oorzaak dat bij een nieuw record deze velden gevuld worden als je daarvoor een duplicering gedaan hebt.
 
Al bedankt, rapport-probleem is inderdaad opgelost.

Idd, er moet een opschoning gebeuren. Kan dit met een eenvoudige code of denk je dat ik de opbouw van de database hiervoor moet aanpassen?
 
Je hebt toch code onder de knop van toevoegen. Maak daar de variabelen die boven in de module staan even leeg, dan is je probleem opgelost.
 
Is het op deze manier dat je bedoelt?:

DoCmd.GoToRecord , , acNewRec

Me.VakID = " "
Me.KlasgroepID = " "
Me.ActTitel = " "
Me.ActOmschrijving = " "
Me.ActDidMateriaal = " "
Me.ActAlgEvaluatie = " "
BlnDupliceren = False

(want deze manier geeft de foutmeling "u hebt een ongeldige waarde opgegeven voor dit veld")
 
Nee, het gaat om deze variabelen boven in de module van je formulier:
Dim MijnVakID As Long
Dim MijnKlasgroepID As Long
Dim MijnActTitel As String
Dim MijnActOmschrijving As String
Dim MijnActDidMateriaal As String
Dim MijnActAlgEvaluatie As String

Als je die variabelen een waarde geeft (wat dus gebeurt bij dupliceren) behouden die deze waarde tot het formulier afgesloten wordt.
Je moet dus als eerste onder je nieuwe record knop deze variabelen even leeg maken.
 
Het enige dat ik nu heb toegevoegd is:

"BlnDupliceren = False"

Nu krijg is bij nieuw record allemaal lege velden.
Op het eerste zicht dus een goede oplossing. Kan je mij uitleggen waarom deze oplossing werkt, of zag ik iets over het hoofd?
 
Even naar zoeken in de code onder je formulier naar BlnDupliceren levert het volgende op:

Als je dupliceert:
********************************************************************************
Private Sub cmdActiviteitDupliceren_Click()
'On Error GoTo Err_cmdActiviteitDupliceren_Click

DoCmd.SetWarnings False

OudeActID = Me.ActID
MijnVakID = Me.VakID
MijnKlasgroepID = Me.KlasgroepID
MijnActTitel = Nz(Me.ActTitel, " ")
MijnActOmschrijving = Nz(Me.ActOmschrijving, " ")
MijnActDidMateriaal = Nz(Me.ActDidMateriaal, " ")
MijnActAlgEvaluatie = Nz(Me.ActAlgEvaluatie, " ")
BlnDupliceren = True
********************************************************************************

Bij gebeurtenis bij Aanwijzen:
********************************************************************************
Private Sub Form_Current()
If Me.NewRecord Then
If BlnDupliceren Then
Me.VakID = MijnVakID
Me.KlasgroepID = MijnKlasgroepID
Me.ActTitel = MijnActTitel
Me.ActOmschrijving = MijnActOmschrijving
Me.ActDidMateriaal = MijnActDidMateriaal
Me.ActAlgEvaluatie = MijnActAlgEvaluatie

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

NieuweActID = Me.ActID
DoCmd.OpenQuery "qryActiviteitDupliceren"
Me.Refresh
Me.KeuzeActiviteitZoeken = Me.ActID
End If
End If
********************************************************************************
Uit de Access Help:
De gebeurtenis Aanwijzen (Current) vindt plaats wanneer de focus naar een record wordt verplaatst (zodat die record de huidige record wordt), wanneer het formulier wordt vernieuwd of wanneer opnieuw een query voor het formulier wordt uitgevoerd.
********************************************************************************
 
Als ik het dus goed begrijp, wordt het hele dupliceren ongedaan gemaakt door:

"BlnDupliceren = False"

Wordt er dus niet naar de variabelen verwezen die een waarde hadden en wordt er ook niet naar het subformulier gekeken.

(Ben nog redelijk nieuw met access...)
 
Ja, alleen heeft dit weinig met access te maken, maar met de wijze waarop degene die dit gemaakt heeft het geprogrammeerd heeft.
 
Bartuls zei:
Ja, alleen heeft dit weinig met access te maken, maar met de wijze waarop degene die dit gemaakt heeft het geprogrammeerd heeft.

Heb de database zelf geprogrammeerd, maar voor het dupliceerstuk heb ik hulp moeten inroepen. Vandaar dat ik hier de werking niet van begrijp.

Kan je me concreet doorgeven hoe jij het probleem zou opgelost hebben, zodat ik hieruit de code ook kan leren. Hoe had ik dit met de variabelen moeten doen?

Al bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan