Waarde toevoegen aan een veld.

Status
Niet open voor verdere reacties.

tonp60

Gebruiker
Lid geworden
29 jul 2009
Berichten
136
Hallo,

Ik ben een database aan het maken waarbij enkele velden herberekend moeten worden als een ander veld een bepaalde waarde heeft. Het lijkt mij het makkelijkst om dit te doen in een query. In een formulier heb ik iets als onderstaand script gebruikt. Al deze velden bevinden zich in dezelfde tabel.
Code:
    If Me.txtDagmaatbreedteBovenInmm > Me.txtDagmaatbreedteOnderInmm Then
    Me.txtGrootsteDagmaatbreedteInmm.Value = Me.txtDagmaatbreedteBovenInmm
ElseIf Me.txtDagmaatbreedteBovenInmm < Me.txtDagmaatbreedteOnderInmm Then
    Me.txtGrootsteDagmaatbreedteInmm.Value = Me.txtDagmaatbreedteOnderInmm
End If
Nu wil ik een vergelijking maken met velden die niet in dezelfde tabel staan. Ik maak een query waarin ik beide tabellen opneem.
Als ik dan het formulier open waarvan de bron de genoemde query is kan ik niets invullen.
Ik heb bij het verlaten van het veld Me.Railboveninmm de volgende code geplaatst:
Code:
If Me.Dealernaam.Value = "Dealer" Then
Me.RailbovenInmm.Value = Me.DagmeetbreedteBoveninmm. Value + "50"
End If

Gebruik ik dezelfde code in een rapport dan krijg ik de melding dat ik gaan waardes kan toevoegen aan een veld.
Wat doe ik niet goed?

Groet,
Ton
 
Dag Ton,

* Herberekenen van de waarde kan je gemakkelijk in een query via een IIF functie doen.
* Als je een formulier opent gebaseerd op een niet-aanpasbare query kan je inderdaad niets aanpassen. Check de query eens: bevat ze alle velden die verplicht ingevuld moeten worden (PK of andere constraints). Er mag ook geen aggregatie zijn (som, gemiddelde, …).
* in een rapport kan je alleen gegevens tonen (en afdrukken), geen gegevens wijzigen. Om dat te doen heb je formulieren.

vrGroeten
 
Hallo NoellaG,

Ik heb de query gecheckt en alles werkt nu, althans ik kan gegevens invullen. De vergelijkingen zoals ik die gebruik in VBA kan ik ook gebruiken in de query met IIF? en die plaats ik dan in het hoofdstukje Criteria?
 
je kan een berekend veld aanmaken in de query in de zin van:

fldBerekendeMaat:Iif(DagmaatbreedteBovenInmm > DagmaatbreedteOnderInmm;DagmaatbreedteBovenInmm;DagmaatbreedteOnderInmm)

De berekende waarde wordt nergens opgeslagen, maar is wel bruikbaar op een formulier.
 
Is er ook nog een manier om de berekende waarde wel op te slaan. Ik gebruik die namelijk in een rapport.
 
Wat heeft een rapport te maken met een opgeslagen waarde? Als de berekening in je query zit, is het toch ook goed? Vermijd redundantie in je database.
 
In de basisquery van je rapport kan je toch hetzelfde berekende veld toevoegen? De enige reden om de berekening op te slaan is het moment dat je berekening zo complex wordt dat je de melding 'to complex to perform' krijgt. Dan kan je het resultaat van de basisquery met berekeningen in een tijdelijke tabel opslaan en vandaar de verdere bewerkingen uitvoeren.
 
NoellaG bedankt voor je reactie. Hier kan ik iets mee.

Een reactie zoals OctaFish geeft heeft voor mij geen enkele waarde. Ik dacht dat een forum was om mensen te helpen en niet om ze te kleineren.
 
Als je er zo over denkt, dan trek ik mij met alle plezier terug uit dit draadje. Inderdaad: de bedoeling is om mensen te helpen, en dat doe ik ook. Sterker nog: noella geeft exact hetzelfde antwoord (vergelijk dit
Als de berekening in je query zit, is het toch ook goed? Vermijd redundantie in je database.

met
In de basisquery van je rapport kan je toch hetzelfde berekende veld toevoegen?
En zoek dan eens rustig de verschillen. Maar je hebt helemaal gelijk hoor, ik help veel liever mensen die mijn hulp wél waarderen. En jij staat dus nu niet meer in dat lijstje.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan