[Access] Referentiële integriteit afdwingen - subform?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 39944

Topicstarter
Hey,
Mijn 2e vraag die ik helaas moet stellen op dezelfde avond over Access.

3 tabellen (tblLeerlingen / tblVerkochtteBoeken / tblBoeken) Primaire sleutel in tblLeerlingen ligt op het veld "LL#" en in tblVerkochtteBoeken ook, in tblBoeken heeft het veld "isbn" de Primaire sleutel.
Relaties:
* tblLeerlingen.LL# --> tblVerkochtteBoeken.LL#
* tblVerkochtteBoeken.isbn --> tblBoeken.isbn
Bij beide relaties staat referentiële integriteit aan om fouten in de DB te voorkomen. Maar ik heb dit pas later gedaan. na het maken van alle nodige formulieren, query's en rapporten. Ook die andere 2 vinkjes heb ik aangezet over het wijzigen en verwijderen van records.

Okee, dat was de achtergrond info. In principe werkt dit goed, maar ik heb een formulier waar leerling gegevens worden ingevuld en in het subformulier worden de boeken ingevoerd die deze leerling besteld. Werkt ook goed op zich, MAAR, nu komt het, als ik de leerlinggegevens leeglaat en alleen boeken invul en dan het form sluit staan toch die boeken in de tabel tblVerkochtteBoeken zonder LL#. Deze zijn dus nooit meer terug te vinden en mogen helemaal niet in de db terechtkomen.

Als ik rechtstreeks in de tabel tblVerkochtteBoeken een record wil aanmaken waar ik LL# leelaat krijg ik een foutmelding. Hetzelfde gebeurd als ik het subformulier los open, (dus niet als subformulier). Dan werkt het dus ook goed. Het lijkt dus of het een eigenschap is van het subformulier dat het niet helemaal goed gaat.

Ik dacht slim te zijn en een verwijderquery te maken die gerund wordt zodra het formulier wordt gesloten. Dat werkt wel, maar is geen mooie oplossing, want je krijgt 2 keer een vraag. Er wordt nu een verwijder query gedraaid; doorgaan??? En de 2e: Er worden x records verwijderd. Zeker weten?
Zoiets.

Iemand een oplossing? Bedankt weer.

Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 11:57

Crazy D

I think we should take a look.

Ik heb in Access niet zo veel ervaring, maar het lijkt me dat ie ook vanuit de form een error moet geven. Heb je niet toevallig ergens een On Error Resume Next staan, waardoor de error misschien wel optreedt, maar dat je die niet ziet?
Maak anders eens 1 van de forms opnieuw, en kijk of Access het dan wel afvangt (nu je database goed is). Als ie het dan ook niet afvangt, weet je dat je aan het coden moet ;) En als ie met de nieuwe form wel een error geeft, kun je kijken wat de verschillen zijn tussen de huidige en de nieuwe form.

Exact expert nodig?


Acties:
  • 0 Henk 'm!

  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

je kan die error messages onderdrukken met set warnings = false (of iets dergelijks, weet het niet exact meer). Let wel op dat je na het runnen van de verwijder query de warnings op true zet, anders krijg je nooit meer een foutmelding.

Je kan natuurlijk ook onder de knop sluiten checken of alle gegevens zijn ingevoerd en zo niet, dan niet afsluiten, maar melding geven dat gegevens leerling nog niet ingevuld zijn.

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.