[Acces 2003]Referentiële integriteit en Forms

Pagina: 1
Acties:

  • Xtinction
  • Registratie: Maart 2000
  • Laatst online: 25-07 11:10

Xtinction

el cheapo gamer

Topicstarter
Nou ik ben dus momenteel bezig een database te maken met devolgende inhoud

1: een tabel met alle opdrachtnemers en hun infomatie zoals telefoon/email/adres
2: Een tabel met woningadressen, en door welke opdrachtnemers deze geholpen worden. Er zijn 6 verschillende fields waarin deze opdrachtnemers genoemd worden, zoals opdrachtnemer klimaat, CV, bouw ed.

Ik heb een 6 relaties aangemaakt tussen de opdrachtnemers tabel en de fields in de woningtabel waar deze ingevuld behoren te worden

Mijn probleem: Ik wil dat mensen geen nieuwe namen mogen verzinnen voor bedrijven (dit vooral om spellingsfouten te voorkomen). Nou werkt dit in de tables prima, probeer ik daar iets in te voeren in de woningtabel wat geen record heeft in de opdrachtnemerstabel krijg ik netjes een error. Echter, als ik in een form ga werken, kan ik gewoon invullen wat ik wil en wordt de relationele integriteit opzij gezet. Waarom is dit en hoe kan ik het verhelpen, moet ik daar een bep validatieregel voor intikken oid?

Alvast bedankt

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Je kunt op je forms die velden laten invullen met bijv een combobox, dan heb je dat probleem al niet. Daarbij kun je op formulieren ook aangeven dat je geen records mag toevoegen, dat wil ook nog wel eens helpen.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Verwijderd

Je kan toch ook gewoon in de eigenschappen van het betreffende veld zeggen: Vergrendeld: 'Ja'.

Dat lijkt mij een prima oplossing!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Xtinction schreef op donderdag 12 oktober 2006 @ 16:27:
[...] Er zijn 6 verschillende fields waarin deze opdrachtnemers genoemd worden, zoals opdrachtnemer klimaat, CV, bouw ed.

Ik heb een 6 relaties aangemaakt tussen de opdrachtnemers tabel en de fields in de woningtabel waar deze ingevuld behoren te worden
Dit klinkt niet helemaal tof. Waarschijnlijk is het een beter idee om een aparte koppeltabel te maken waarbij je een bepaald type relatie vastlegt tussen een woning en een opdrachtnemer.
en wordt de relationele integriteit opzij gezet. Waarom is dit en hoe kan ik het verhelpen, moet ik daar een bep validatieregel voor intikken oid?
Een formulier kan nooit de de relationele integriteit overrulen. Wat je waarschijnlijk in je formulier doet is een nieuw record in de opdrachtnemerstabel aanmaken doordat je het naamveld in je opdrachtnemerstabel bewerkt en niet het relatieveld in je tabel woningen. De gebruikelijke oplossing is idd werken met comboboxen, gebonden aan het opdrachtnemer veld in woningen.

Vergrendelen van het veld is onzin voor een invoeg/cq bewerk formulier.

[ Voor 3% gewijzigd door Lustucru op 12-10-2006 18:25 ]

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


  • Xtinction
  • Registratie: Maart 2000
  • Laatst online: 25-07 11:10

Xtinction

el cheapo gamer

Topicstarter
Dank voor de hulp bij voorbaat :)

Die combobox heb ik gemaakt, daarom zou het technisch gezien ook niet fout kunnen gaan, maar, stel je nou voor dat iemand iets uit de combobox kiest en er per ongeluk een teken achteraan tikt (we're talking stressed ambtenaren here), dan krijg ik dus geen error...en die wil ik wel

Vergrendelen is idd geen optie voor een invulformulier

  • PromoX
  • Registratie: Februari 2002
  • Laatst online: 24-07 09:39

PromoX

Flying solo

Aangeven dat alleen de waarden uit de keuzelijst geaccepteerd worden? Dan krijgt de gebruiker een melding als er waarde ingetypt wordt die niet in de keuzelijst staat en kan deze niet opgeslagen worden.

And I'm the only one and I walk alone.


  • Xtinction
  • Registratie: Maart 2000
  • Laatst online: 25-07 11:10

Xtinction

el cheapo gamer

Topicstarter
Jaa dat was em, wat suf zeg, ik zou zweren dat ik dat vakje al eens had aangevinkt. Mss was dat voordat ik em referentieel integer had gemaakt oid.

Werkt iig, kan een slotje op :)

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

offtopic:
slotjes zijn gereserveerd voor 'slechte topics' niet voor topics waarin een antwoord gegeven wordt
:)
Anyhow,ik betwijfel of het nu werkt zoals het zou moeten. Als je je combobox aan het juiste veld zou binden, moet er sowieso een fout gegenereerd worden bij het opslaan van het record. Voordeel nu is wel dat de fout eerder optreedt en makkelijker afgewikkeld kan worden met combobox_notinlist()

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


  • Xtinction
  • Registratie: Maart 2000
  • Laatst online: 25-07 11:10

Xtinction

el cheapo gamer

Topicstarter
Ik denk zelf dat het te maken heeft met het feit dat ik de boxjes eerst gecreeerd had toen er nog geen referentiele integriteit bestond, ik had het "Opdrachtnemers" bestand toen nog niet tot mijn beschikking.

Die tekst boxes heb ik later veranderd in combo boxes via de eigenschappen, daarna referentiele integrititeit geregeld en uiteindelijk dus die "mustbe in list"dinges aangzet.

Ik denk dat als je direct begonnen zou zijn met een referentieel integere data source, dat access die "must be in list"optie automatisch aanzet.

Ik hoop dat je het volgt, is een beetje en warverhaal, magoed het formulier doet nu iig wel wat ik wil :)
Pagina: 1