doorlopend formulier

Status
Niet open voor verdere reacties.

HankMegens

Gebruiker
Lid geworden
1 sep 2015
Berichten
86
Hallo,

Ik heb een doorlopend formulier dat het de onderdelen van een vereninging weergeeft.
Men kan de records wijzigen en toevoegen.
Ik heb hier een rekenveld toegevoegd, dat het aantal leden van het onderdeel van de vereniging aangeeft.
Echter in dit formulier wordt onderaan een nieuw record getoond. Dit geeft natuurlijk een #fout bij het rekenveld.
Ik heb NZ geprobeerd, maar dit lost de melding niet op.
Enig idee hoe ik deze #fout melding kan voorkomen?

Dit staat in mijn rekenveld
Code:
=Nz(DCount("onderdeelID";"Tlidonderdeel";"onderdeelID = " & [onderdeelID]);0)

DCOUNTprintscreen.jpg
 
Misschien iets als
Code:
=IIF(NOT IsNull(ONDERDEEL) ; [COLOR=#333333]Nz(DCount("onderdeelID";"Tlidonderdeel";"onderdeelID[/COLOR]) ; 0))
 
Nog veel beter: vermijd die onzinnige rekenvelden. Berekeningen maak je in queries. En het houdt je database compatible met andere systemen.
 
Bedankt voor de tips

@Peter
Als ik mijn code vervang door die van jouw, krijg ik een melding dat de expressie langer is dan 2048 tekens.
Enig idee doe dit kan?

Hank
 
Ik heb nog even geen idee. Lijkt me duidelijk minder tekens :D
Kan je eventueel een voorbeeld database (zonder privacygevoelige gegevens) posten?
 
Begin in ieder geval met de query die onder het formulier hangt te posten. Zonder dat berekend veld uiteraard, want echt: dat is niet nodig om te gebruiken.
 
Een database met een paar dummy records was wel handiger geweest. Of wil je ons extra aan het werk zetten door eerst records in te moeten kloppen?
 
Het was inderdaad makkelijker geweest wat nep-data mee te geven. Het toevoegen was nog een heel gedoe omdat ik niet kon vinden hoe je een lid koppelt aan een onderdeel.
Hoe dan ook, het werkt nu. Ik kan niet reconstrueren wat er mis is gegaan.
Overigens zou je op het formulier ook de eigenschap toevoegingen toestaan op nee kunnen zetten. Dan ben je die regel sowieso kwijt. Zo vaak komt het denk ik niet voor dat er een onderdeel bijkomt. Dat kan je dan ook op een ander formulier regelen.

Veder moet je ook nog aan je relaties werken. Het aanzetten van het vinkje referentiële integriteit afdwingen is een MUST. In de database die ik ontving stonden records in Tlidonderdeel met AdresID's (rare naam trouwens) die niet meer bestaan in de ledentabel.
Ook was het mogelijk een lid meer dan één keer aan een onderdeel te koppelen. Dat is vast ook niet de bedoeling.
Beide zaken heb ik gecorrigeerd.
 

Bijlagen

  • ledenadminleegPS.zip
    81,6 KB · Weergaven: 21
Peter,

Idd beter wat nepdata gedaan.
Het is een project dat nog lang niet af is, dus het kan inderdaad zijn dat er zaken niet of niet goed werken.
Bedankt iig.

Hank
 
Of je hangt dus, mijn oplossing, een query onder het formulier en dan krijg je dit:
PHP:
SELECT Tonderdelen.onderdeelID, Tonderdelen.onderdeel, Tonderdelen.datumbegin, Tonderdelen.datumeinde, Tonderdelen.actief, Count(Tlidonderdeel.onderdeelID) 
AS Aantal FROM Tonderdelen INNER JOIN Tlidonderdeel ON Tonderdelen.onderdeelID = Tlidonderdeel.onder
En dan gebruik je het veld Aantal uiteraard voor de telling op je formulier.
 
Eén regel vergeten te plakken:
PHP:
SELECT Tonderdelen.onderdeelID, Tonderdelen.onderdeel, Tonderdelen.datumbegin, Tonderdelen.datumeinde, Tonderdelen.actief, Count(Tlidonderdeel.onderdeelID) AS Aantal
FROM Tonderdelen INNER JOIN Tlidonderdeel ON Tonderdelen.onderdeelID = Tlidonderdeel.onderdeelID
GROUP BY Tonderdelen.onderdeelID, Tonderdelen.onderdeel, Tonderdelen.datumbegin, Tonderdelen.datumeinde, Tonderdelen.actief;
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan