Toon posts:

[access] formulier laten checken of record al voorkomt

Pagina: 1
Acties:
  • 232 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
hoe kan ik in access in een formulier laten checken of een record al voorkomt? dus wanneer ik op record opslaan moet hij de foutmelding geven, persoon X met geboortedatum Y is reeds opgenomen in ons bestand ...

[ Voor 5% gewijzigd door Verwijderd op 01-02-2005 22:02 ]


Verwijderd

Hoe ziet je datamodel eruit? Je zou een query kunnen uitvoeren in de trant van:

code:
1
2
3
4
SELECT COUNT(id)
FROM persoon
WHERE [naam]=naam
AND [GBDatum]=GBDatum;


Als er dan een getal groter dan 0 uitkomt zit de persoon er al in.

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 01 februari 2005 @ 22:03:
Hoe ziet je datamodel eruit? Je zou een query kunnen uitvoeren in de trant van:

code:
1
2
3
4
SELECT COUNT(id)
FROM persoon
WHERE [naam]=naam
AND [GBDatum]=GBDatum;


Als er dan een getal groter dan 0 uitkomt zit de persoon er al in.
hoe ik het in SQL moet uitvoeren, dat is geen enkel probleem, het gaat me puur erom welke handelingen ik in access moet verrichten om de input zeg maar te laten valideren en testen of het al een bestaande record is

redudantie voorkomen lijkt me toch een van de grondbeginselen van een goede database...

[ Voor 8% gewijzigd door Verwijderd op 01-02-2005 22:07 ]


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Verwijderd schreef op dinsdag 01 februari 2005 @ 22:06:
redudantie voorkomen lijkt me toch een van de grondbeginselen van een goede database...
Sorry, maar bij het lezen van deze zin i.c.m. Access kon er bij mij alleen maar een glimlach van af. (Durfde niet hardop te lachen)

Maar als een persoon met een geboortedatum maar 1 keer mag voorkomen, leg je daar database gewijs toch een Primary key of unieke index over heen? Dan geeft je Access formulier waarschijnlijk ook wel een foutmelding. Hoe je die kunt customizen weet ik niet, maar dat mag ook niet al te moeilijk zijn.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
Nick_S schreef op dinsdag 01 februari 2005 @ 23:58:
[...]


Sorry, maar bij het lezen van deze zin i.c.m. Access kon er bij mij alleen maar een glimlach van af. (Durfde niet hardop te lachen)

Maar als een persoon met een geboortedatum maar 1 keer mag voorkomen, leg je daar database gewijs toch een Primary key of unieke index over heen? Dan geeft je Access formulier waarschijnlijk ook wel een foutmelding. Hoe je die kunt customizen weet ik niet, maar dat mag ook niet al te moeilijk zijn.
is access zo slim? ik werk nu met een unieke ID voor een werknemer waar ik de key op heb staan, maar zal meer keys eens toevoegen..
ik heb gewoon nog even te weinig ervaring en scholing gehad in access om te ontdekken wat wel en niet kan, access kan ook zoveel...

[ Voor 8% gewijzigd door Verwijderd op 02-02-2005 01:43 ]


Verwijderd

Dat heeft alleen nut als je van je PK een composite key maakt op naam en geboortedatum. Je moet dan je unieke id weggooien en relaties maken op naam en geboortedatum, wat in mijn ogen niet heel mooi is.

Als je op het formulier een knop aanmaakt, met daaraan programmacode met een if statement, dat controleert op eerder genoemde query, en bij een positief een DoCmd.save oid geeft? Dat zou moeten werken.

Verwijderd

Verwijderd schreef op woensdag 02 februari 2005 @ 01:52:
Dat heeft alleen nut als je van je PK een composite key maakt op naam en geboortedatum. Je moet dan je unieke id weggooien en relaties maken op naam en geboortedatum, wat in mijn ogen niet heel mooi is.

Als je op het formulier een knop aanmaakt, met daaraan programmacode met een if statement, dat controleert op eerder genoemde query, en bij een positief een DoCmd.save oid geeft? Dat zou moeten werken.
Access kan gewoon meerdere unieke keys aan. Dus een secundaire key op de combinatie van Naam, geboortedatum zorgt ervoor dat die combinatie uniek is, ongeacht of het nu je PK is of niet :)

Controleren door code in het formulier is wat mij betreft echter meestal af te raden. Alle formulieren waar dit record in bewerkt kan worden moeten dan deze controle uitvoeren. Vooral als je later deze controle wilt veranderen ben je hier niet blij mee. Ook ben je niet beschermd tegen slimmerikken die de tabel gewoon op het scherm zetten en daarin gaan lopen editen.

  • Boss
  • Registratie: September 1999
  • Laatst online: 15-05 17:35

Boss

+1 Overgewaardeerd

Nick_S schreef op dinsdag 01 februari 2005 @ 23:58:
[...]
Sorry, maar bij het lezen van deze zin i.c.m. Access kon er bij mij alleen maar een glimlach van af. (Durfde niet hardop te lachen)
En hiervan lag ik dubbel! :*)

Volgens mij is het wel/niet hebben van redundantie toch echt afhankelijk van de ontwerper van de database, en niet zozeer van de gekozen omgeving.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Boss schreef op woensdag 02 februari 2005 @ 11:41:
[...]


En hiervan lag ik dubbel! :*)

Volgens mij is het wel/niet hebben van redundantie toch echt afhankelijk van de ontwerper van de database, en niet zozeer van de gekozen omgeving.
lijkt mij ook, en in hoeverre je de omgeving beheerst :) dat is dus nu even mijn probleem met access, te weinig ervaring..

Verwijderd

Komt het bij jou niet voor dat twee verschillende personen met dezelfde naam en geboortedatum in de database kan worden geregistreerd? Lijkt mij van wel. Dus dan is het niet echt betrouwbaar om te controleren op naam en geboortedatum.

Maar goed,

je kan dit controleren met Dlookup.

http://office.webforums.n...?t=5598&highlight=dlookup

kijk hier maar eens naar een voorbeeld.

Suc6,

Groeten'.

Verwijderd

Topicstarter
Het is gelukt!

[ Voor 96% gewijzigd door Verwijderd op 05-02-2005 15:25 ]

Pagina: 1