[acces]Als veld.value = 0 niet weergeven in rapport

Pagina: 1
Acties:
  • 1.528 views sinds 30-01-2008
  • Reageer

  • Jk_W
  • Registratie: Februari 2003
  • Niet online

Jk_W

I Think...

Topicstarter
Ik heb een uitgebreide database gemaakt in Acces 2000 en heb hier veel queries, macro's pagina's en rapporten bij gemaakt, en dit alles via een programmaatje met elkaar verbonden.

Op deze manier is er een programma ontstaan waarin orders, factuurs en klantgegevens kunnen worden ingevoerd via een gebruiksvriendelijke interface.
So far so good, maar er kan ook door middel van een rapport automatisch een factuur worden opgesteld. Ook dit werkt perfect, maar nu komt mijn probleem:

Ik heb een veld "aantal" en een veld "prijs". Tevens heb ik een veld die "aantal" en "prijs" met elkaar vermenigvuldigd. Als ik geen standaardwaarde instel en de waarde van het veld "aantal" of "prijs" dus leeg is, geeft de berekening geen resultaat, omdat hij moet gaan rekenen met een leeg vak.

Nu heb ik de standaardwaarde op nul gezet, zodat de berkening goed verloopt, maar nu staan er als mensen maar 4 produkten bestellen 8 prijzen op nul en 8 aantallen op nul. Dit ziet er op de factuur zeer rommelig uit.

Nu is mijn vraag, is er een optie bij een rapport in Acces, dat je in kan geven dat als de waarde van een veld 0 (nul) is hij dit veld NIET weergeeft in het rapport, maar de waarde in de database wel gewoon nul blijft?

BVD

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Even los (nou ja, niet helemaal) van jouw probleem: je hebt toch zeker niet 8 regels plaats gemaakt voor orderregels he? En dat je dan gewoon pech hebt als je meer dan 8 artikelen verkoopt?

Waarom laat je het aantal regels niet dynamisch opbouwen aan de hand van het aantal regels dat je hebt, zoals gebruikelijk is bij een rapport? Op die manier heb je ten eerste niet het probleem dat je nu hebt, en ten tweede ben je veel flexibeler, ook naar de gebruiker toe.

Overigens kun je natuurlijk gewoon in de OnBeforePrint kijken wat de waarde is van je veld, en dan ervoor kiezen de regel al dan niet weer te geven.

[ Voor 4% gewijzigd door OZ-Gump op 01-07-2004 08:44 ]

My personal website


  • Jk_W
  • Registratie: Februari 2003
  • Niet online

Jk_W

I Think...

Topicstarter
OZ-Gump schreef op 01 juli 2004 @ 08:43:
Even los (nou ja, niet helemaal) van jouw probleem: je hebt toch zeker niet 8 regels plaats gemaakt voor orderregels he? En dat je dan gewoon pech hebt als je meer dan 8 artikelen verkoopt?

Waarom laat je het aantal regels niet dynamisch opbouwen aan de hand van het aantal regels dat je hebt, zoals gebruikelijk is bij een rapport? Op die manier heb je ten eerste niet het probleem dat je nu hebt, en ten tweede ben je veel flexibeler, ook naar de gebruiker toe.

Overigens kun je natuurlijk gewoon in de OnBeforePrint kijken wat de waarde is van je veld, en dan ervoor kiezen de regel al dan niet weer te geven.
In mijn voorbeeld was het zo dat als mensen 4 dingen bestelden, er 8 plaatsten op nul stonden. Dat zijn dus in totaal 12 mogelijke bestelprodukten. Dat is genoeg voor hier.

Zou jij voor mij een voorbeeld, of uitleg kunnen geven hoe ik dat OnBeforePrint moet instellen en waar ik het kan vinden?

  • Jk_W
  • Registratie: Februari 2003
  • Niet online

Jk_W

I Think...

Topicstarter
Ik heb de optie gevonden waarin ik kan aangeven wat hij moet doen net voor het afdrukken. De opdracht die hij dan uit moet voeren moet geschreven worden in VB.

De juiste code volgens mij is:

code:
1
2
3
4
5
6
7
8
9
Private Sub Details_Print(Cancel As Integer, PrintCount As Integer)

If factuur!f_aantal.Value = 0 Then
factuur!f_aantal.Visible = False
Else
factuur!f_aantal.Visible = False
End If

End Sub


Maar ik krijg hier steeds al een foutmelding bij de 2e regel (If regel) Waar ligt dit aan?

  • Jk_W
  • Registratie: Februari 2003
  • Niet online

Jk_W

I Think...

Topicstarter
Weet niemand de oplossing? Is er misscheien een work-around?

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
ik snap niet zo goed hoe je dat met die 8 velden heb gedaan. Op het moment dat iemand een product bestelt dan zit daar toch gewoon een aantal en een prijs aan verbonden - en dat is 1 record in je database. en 1 order vormt het geheel van het aantal produkten met hun hoeveelheid en prijs
ook een apart veld om de berekening in op te slaan lijkt me overbodig, want dat reken je gewoon ter plekke uit met de query waar je de order mee ophaalt

  • Jk_W
  • Registratie: Februari 2003
  • Niet online

Jk_W

I Think...

Topicstarter
Ik heb het bij die velden niet over velden in de database, maar velden in het rapport wat wordt opgesteld.

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
je vult dus in je rapport 8 velden op met waardes? ik neem dat je dat om opmaak redenen doet?

het lijkt met dat je dat dan beter op zo'n soort manier doet:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# pseudo code
x = 0
while (orders from database)
{
    print order aantal en prijs
    x = x + 1
}

if x < 8
{
    while x <= 8
    {
        print void;
        x = x + 1
    }
}

Verwijderd

Bij je tekstvak moet je de eigenschap Notatie invullen. Dit werkt voor numerieke velden. Notatie is <positieve waarde>;<negatieve waarde;nul
Bij Aantal: 0;-0;""
Bij Prijs: 0,00;0,00-;""

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
jk_warrior schreef op 01 juli 2004 @ 08:52:
In mijn voorbeeld was het zo dat als mensen 4 dingen bestelden, er 8 plaatsten op nul stonden. Dat zijn dus in totaal 12 mogelijke bestelprodukten. Dat is genoeg voor hier.
Waar heb ik dit eerder gehoord? :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

farlane schreef op 03 juli 2004 @ 13:02:
[...]


Waar heb ik dit eerder gehoord? :)
Yep....In programma's moet je altijd denken : "Als het kan, dan zal het ooit ook voorkomen". Never underestimate the stupidity of a user !

Verwijderd

Verwijderd schreef op 03 juli 2004 @ 14:56:
[...]

Yep....In programma's moet je altijd denken : "Als het kan, dan zal het ooit ook voorkomen". Never underestimate the stupidity of a user !
In other words: assumption is the mother of all fuckups!

Groot, heel groot uitprinten en boven je bureau hangen...

  • Jk_W
  • Registratie: Februari 2003
  • Niet online

Jk_W

I Think...

Topicstarter
Verwijderd schreef op 03 juli 2004 @ 12:50:
Bij je tekstvak moet je de eigenschap Notatie invullen. Dit werkt voor numerieke velden. Notatie is <positieve waarde>;<negatieve waarde;nul
Bij Aantal: 0;-0;""
Bij Prijs: 0,00;0,00-;""
Bedankt, op deze manier heb ik mijn probleem opgelost.
Pagina: 1