[Access] #fout bij subform totalen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Yagermeister
  • Registratie: December 2001
  • Laatst online: 18-09 17:03

Yagermeister

Bedrijfsprutser on call

Topicstarter
De titel is een beetje cryptisch waarvoor mijn excuus.

Het gaat om het volgende:

Voor mijn broer ben ik een kleine db aan het maken waarmee die zijn voorraad kan controleren van zijn artikelen. Ik heb hiervoor een mooi artikel form gemaakt waar alles goed instaat. Daaraan heb ik een inkoop en verkoop query subform hangen waar die artikelen instaan welke hij ingekocht/verkocht heeft.

Bij de in/verkoop subform heb ik een extra text veld gezet waarmee ik Som([Aantal]) bereken. Deze waarde haal ik naar het hoofdform via =[Forms]![Artikelen]![Sub_inkoop_query].[Form]![SomInkoop]. Dit werkt allemaal prima, echter als ik een artikel heb waar geen in/verkoop heb geeft hij #Fout aan.

Nu heb ik gekeken om dit weg te halen en kwam ik op oa. http://www.everythingacce...back-onto-the-main-report uit waar ze
code:
1
=IIf([Sub1].[Report].[HasData], Nz([Sub1].[Report].[txtTotal], 0), 0)

als oplossing gebruiken in een textveld op het hoofdreport.

Dit heb ik aangepast naar
code:
1
=IIf([Sub_inkoop_query].[Form].[HasData], Nz([Sub_inkoop_query].[Form].[SomInkoop], 0), 0)

echter krijg ik een foutmelding dat de syntax ongeldig is.

Nu heb ik verder gezocht voor een andere oplossing waaronder:
code:
1
2
3
= NZ ( Som([aantal]), 0 )
of
iif ( Som([aantal]) = Null, "0", Som([aantal]) )

maar alles wat ik invul komt steeds terug naar de syntax is ongeldig.

Weet iemand wat ik fout doe of waar de fout zit? Ik heb buiten het bovenstaande ook via vba dit geprobeerd op te lossen maar ook daar krijg ik steeds foutmeldingen. Mijn kennis van access is dan niet super maar niks lijkt te werken wat ik ook probeer.

Ik hoop dat ik het een beetje duidelijk uitgelegd heb wat het probleem is.

-Te huur


Acties:
  • 0 Henk 'm!

Verwijderd

Vervang de komma "," eens door een puntkomma ";".

[ Voor 19% gewijzigd door Verwijderd op 29-04-2010 12:49 ]


Acties:
  • 0 Henk 'm!

  • Marko_J
  • Registratie: Maart 2010
  • Laatst online: 15-03-2024
Je moet inderdaad puntkomma's gebruiken voor parameters:


code:
1
=IIf([veld]=x;waarde of formule als waar; waarde of formule als onwaar)


Vraag: staat het veld waar je het subtotaal in uitrekent wel in de voettekst van het subformulier?

Die #Fout waarde is volgens mij niet nodig, maar als je hem niet opgelost krijgt, zou je hem zo kunnen omzeilen:


code:
1
=IIf(IsError([veld met som-waarde]);0;[veld met som-waarde])

Acties:
  • 0 Henk 'm!

  • Yagermeister
  • Registratie: December 2001
  • Laatst online: 18-09 17:03

Yagermeister

Bedrijfsprutser on call

Topicstarter
Mijn dank is groot, gisteravond had ik de bovenstaande dingen op het subform losgelaten maar dit werkte nog steeds niet. Toen heb ik vanmorgen eens het subform op een andere view gezet om te zien wat er gebeurde en toen viel het me op dat er totaal geen waarde instond.

Met dat in mijn gedachten heb ik de bovenstaande IIf(iserror) gepakt en aangepast naar:
code:
1
2
3
=IIf(IsError([Forms]![Artikelen]![Sub_verkoop_query].[Form]![SomVerkoop]);0;[Forms]![Artikelen]![Sub_verkoop_query].[Form]![SomVerkoop])
en
=IIf(IsError([Forms]![Artikelen]![Sub_inkoop_query].[Form]![SomInkoop]);0;[Forms]![Artikelen]![Sub_inkoop_query].[Form]![SomInkoop])

Deze 2 heb ik echter op het hoofdform gezet en viola nu komt er mooi een 0 te staan bij geen waarde.

Nogmaals mijn dank is groot.


ps. Dat van , naar ; snap ik niet echt waarom ze op internet zelf doodleuk , gebruiken in plaats van het goede ineens.

[ Voor 7% gewijzigd door Yagermeister op 30-04-2010 09:41 . Reden: Toevoeging ]

-Te huur


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Yagermeister schreef op vrijdag 30 april 2010 @ 09:40:
ps. Dat van , naar ; snap ik niet echt waarom ze op internet zelf doodleuk , gebruiken in plaats van het goede ineens.
Omdat op het internet ook mensen uit andere landen actief zijn. :P
Afhankelijk van je landinstellingen is
- het lijst (of parameter) scheidingsteken ';' of ','
- het scheidingsteken voor duizendtallen '.' of ','
- het decimaalteken ',' of '.'
- je datumnotatie dag maand jaar, maand dag jaar, jaar, maand, dag of nog exotischer varianten.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • Marko_J
  • Registratie: Maart 2010
  • Laatst online: 15-03-2024
Fijn dat het werkt :)

Er zijn meer van dat soort Is-functies die uitkomst kunnen bieden; IsNull, IsDate. De uitslag van die tests is altijd een boolean; true / false. Met name IsNull gebruik ik vaak.

Acties:
  • 0 Henk 'm!

  • Yagermeister
  • Registratie: December 2001
  • Laatst online: 18-09 17:03

Yagermeister

Bedrijfsprutser on call

Topicstarter
Lustucru schreef op vrijdag 30 april 2010 @ 11:27:
[...]

Omdat op het internet ook mensen uit andere landen actief zijn. :P
Afhankelijk van je landinstellingen is
- het lijst (of parameter) scheidingsteken ';' of ','
- het scheidingsteken voor duizendtallen '.' of ','
- het decimaalteken ',' of '.'
- je datumnotatie dag maand jaar, maand dag jaar, jaar, maand, dag of nog exotischer varianten.
Ik snap wat je bedoelt maar dat is niet eigenlijk wat ik bedoel. Als men weet dat ; het scheidingsteken is voor access dan ga je toch niet , gebruiken onafhankelijk van zijn instellingen. Dat noem ik gewoon slordig zijn met gegevens. Bij alles van die website wordt , gebruikt en het lijkt me toch sterk dat access in een andere taal wel , accepteerd als scheidingsteken.

-Te huur


Acties:
  • 0 Henk 'm!

  • NTAuthority
  • Registratie: Juli 2006
  • Laatst online: 20-09 15:56
Yagermeister schreef op vrijdag 30 april 2010 @ 15:59:
en het lijkt me toch sterk dat access in een andere taal wel , accepteerd als scheidingsteken.
De Microsoft Office-programma's zijn altijd erg afhankelijk van de taalinstellingen, en waarschijnlijk is dat dus ook het geval.

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Yagermeister schreef op vrijdag 30 april 2010 @ 15:59:
Ik snap wat je bedoelt maar dat is niet eigenlijk wat ik bedoel. Als men weet dat ; het scheidingsteken is voor access dan ga je toch niet , gebruiken onafhankelijk van zijn instellingen. Dat noem ik gewoon slordig zijn met gegevens. Bij alles van die website wordt , gebruikt en het lijkt me toch sterk dat access in een andere taal wel , accepteerd als scheidingsteken.
Schrijf je nu echt dat je het maar slordig vindt dat die rot-Amerikanen er geen rekening mee willen houden dat er ook eens een Hollander code komt copy-pasten? :X

Als je weet dat ';' het scheidingsteken is in de standaard Nederlandse instellingen dan ga je toch niet ',' voorbeelden van een Amerikaanse site klakkeloos overnemen. Dat noem ik gewoon dom knippen en plakken. Bij alles van die website wordt ','gebruikt dus je mag de conclusie trekken dat access bij andere taalinstellingen de ',' wel accepteert als scheidingsteken.

En als je het dan nog niet gelooft zet je je landinstellingen een keer op engels(vs) 8)7

[ Voor 9% gewijzigd door Lustucru op 30-04-2010 16:31 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

Verwijderd

Inderdaad is de komma als scheidingsteken de normaalste zaak van de wereld. Ook als je in VBA gaat werken, zul je zien dat je een komma ipv een punt-komma zult moeten gebruiken in bijv arrays.

Neemt niet weg dat ik het zou toejuichen als we eens, ooit, in de verre toekomst, wereldwijd één standaard voor datum- en tijdsnotaties, lijstscheidingstekens, decimaal- en duizendtaltekens, maateenheden e.d. zouden afspreken én consequent gebruiken.
Pagina: 1