Constraint op entiteit niveau in Access ?

Pagina: 1
Acties:

  • Frenkpie
  • Registratie: Juli 2000
  • Laatst online: 18-08 10:31

Frenkpie

"Crocs Rule !"

Topicstarter
Ik ben in Access voor een school project een Tracking & Tracing programma aan het maken, het is functioneel gezien vrijwel af, alleen ik ben nu bezig met het invoeren van een aantal constraints.

Nu wil ik een constraint invoeren dat "Controledatum" van entiteit "Controle" > "Leverdatum" van de entiteit "Product"

Is dit mogelijk in Access? Zo ja.. hoe?

(ik heb het dus over een constraint tussen twee attributen uit twee verschillende entiteiten)

[ Voor 14% gewijzigd door Frenkpie op 23-03-2006 21:54 ]


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Ja bij het opstellen van een query kan je de onderliggende SQL bekijken. Hierin kan je de JOIN clause aanpassen. Dus bijvoorbeeld:
code:
1
INNER JOIN Controle On Controle.Controledatum > Product.Leverdatum

Er is een grote helaas .. dit kan Access niet visualiseren. Je bent hierna dus gebonden aan de SQL code (waar Access een grote lange string van maakt .. don't get me started).

Een tweede optie is om de constraint niet via een JOIN constraint op te lossen, maar in de WHERE clause. Dus
code:
1
WHERE Controle.Controledatum > Product.Leverdatum

Dat kan je uiteraard wel gewoon in de visuele design omgeving instellen. Nadeel is dat dit in sommige constructies (aanzienlijk) langzamer is. Ik zou voor deze optie gaan, zolang je geen performance problemen hebt.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-08 12:58

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Een cross-table constraint op tabelniveau kun je vergeten. Weliswaar kun je in de tabeleigenschappen constraints instellen over meerdere velden die ook nog een deel van de ingebouwde functies gebruiken maar daar zit helaas dlookup of een query niet bij.

Als je een formulier gebruikt heb je wel volop mogelijkheden om je data te valideren door formuliervalidatie of in het before_update event van het veld zelf.

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


  • Frenkpie
  • Registratie: Juli 2000
  • Laatst online: 18-08 10:31

Frenkpie

"Crocs Rule !"

Topicstarter
oke duidelijk, ik ga wat proberen ! thnx