Som in rapport, gegevens type komt niet overeen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • BJanssen78
  • Registratie: September 2020
  • Laatst online: 20-10-2020
Hoi Allemaal,

ik ben een redelijke ervaren gebruiker van Access, maar heb het al lange tijd niet meer gebruikt.

Mijn probleem.
Ik heb een rapport gebouwd waar ik een extra tekst veld heb toe gevoegd, deze berekend met een if waarde een uitkomst en zet deze om in tijd.
Dit werkte niet zoals ik wilde, en heb dit met 2 extra kolommen in een Query opgelost.

Ik krijg nu netjes de tijd te zien die ik wil, maar nu komt het.
Onderaan het rapport wil ik deze kolom opgeteld hebben zodat ik een totaal aantal uren heb.

Maar nu krijg ik de fout melding "gegevenstype komen niet overeen"

Hoe los ik dit nu op.

Kolom1 in de Query bevat : CS: IIf([Zelf gelost]=Waar;[Pallets]*(1,5/(24*60));"") Dit werkt.
Kolom2 in de Query bevat : CS2: Format([CS];"Korte tijdnotatie") ook dit werk.

Op het rapport
Een tekstvak met [CS2] dit werkt.
Rapport einde een Tekstvak met =Som([CS2]) en dit werkt niet.

Alle hulp is welkom,
Met vriendelijke groet,
Ben

Beste antwoord (via BJanssen78 op 08-10-2020 06:15)


  • Belindo
  • Registratie: December 2012
  • Laatst online: 15:58

Belindo

▶ ─🔘─────── 15:02

Probeer het eens met null in plaats van "" in je eerste formule

Coding in the cold; <brrrrr />

Alle reacties


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse â…¢ ja!

(overleden)
Kolom2 is tekst. Tekst kun je niet optellen. Tel kolom1 op en format die hetzelfde als kolom2

[ Voor 9% gewijzigd door RobIII op 27-09-2020 10:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • BJanssen78
  • Registratie: September 2020
  • Laatst online: 20-10-2020
Oke,
dat makes sense....
Maar dat lukt me dus niet, anders had ik het met 1 kolom gedaan.
Hoe kan ik de formule in kolom 1 gebruiken en toch een tijd notatie laten weergeven.

Want in het rapport word niet verwezen naar CS, maar wel naar CS2, en die geeft wel de tijd notatie weer.

Acties:
  • 0 Henk 'm!

  • BJanssen78
  • Registratie: September 2020
  • Laatst online: 20-10-2020
als ik kolom 1 optel, krijg ik dezelfde fout melding

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 15:58

Belindo

▶ ─🔘─────── 15:02

Probeer het eens met null in plaats van "" in je eerste formule

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • BJanssen78
  • Registratie: September 2020
  • Laatst online: 20-10-2020
Top het werkt

Acties:
  • +1 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 15:58

Belindo

▶ ─🔘─────── 15:02

Mooi, en dan nu de educatie (hoort er ook bij, dat je begrijpt wat er gebeurt):

In deze formule
code:
1
IIf([Zelf gelost]=Waar;[Pallets]*(1,5/(24*60));"")
wordt er indien 'waar' een nummer gegenereerd (de uitkomst van
code:
1
[Pallets]*(1,5/(24*60))
).

Wanneer 'Niet Waar' wordt er 'niets' gegenereerd, maar door het gebruik van de dubbele quotes ("") wordt deze 'niets' als tekst gezien. Zolang er ook maar één keer 'niet waar' voorkomt, wordt die hele kolom gezien als type 'text'. En op een type 'text' kolom kun je geen berekeningen doen (behalve dingen als count).

Door 'null' te gebruiken in plaats van de dubbele quotes, wordt er ook 'niets' gegenereerd, maar nu zonder de specificatie dat het 'text' is. Daarom bevat je kolom nu, naast 'null', alleen nummers, en wordt de kolom gezien als type 'number'. En dán kun je wel berekeningen doen zoals SUM en AVERAGE.

TLDR; je kunt geen som uitrekenen voor
code:
1
100 + 200 + "groen" + 300
, maar wel voor
code:
1
100 + 200 + null + 300

Coding in the cold; <brrrrr />

Pagina: 1