infostabil > edb.* > edb.database.ms-access

Carsten (21.04.2004, 16:12)
Access '97

Jeg har skrevet om dette før. Men databasen er nu ændret væsentlig.

Jeg har en database med en hovedtabel som hedder Grundoplysninger,
hvor autonummering er primærnøgle og felt 1.
Felt 2 er til personnummer og hedder CPR og er et tekstfelt.
Felt 12 er et datofelt for journalens afslutning og feltet hedder
outdato.

Af hensyn til statistik findes alle poster i hovedtabellen.

Man indberetter i formularere.
Formularen hedder grundoplysninger, og felterne hedder det samme som i
tabelen, det er det access gør når man opretter formulare.

En person kan have flere journaler, (poster) men kun EN aktiv, dvs.
kun en hvor outdato er "blank" (null).

Det gøre ikke noget at der flere "poster" hvor man har indberettiget
en outdato.

Med andre ord:
Hvordan gør jeg, når et personnummer tastes i en formular kun må
accepteres, hvis der IKKE findes andre poster med samme personnummer
som ikke er afsluttet, dvs. hvor outdato stadigvæk er "blank" (null).
Der må gerne være flere poster med samme personnummer men så skal
journalen og posten i databasen også være registreret afsluttet ved at
der er indberettiget data i outdato feltet.

Hvordan laves dette?

Jeg havde forstillet mig en macro/hændelsesproceduer som søger efter
personnummeret. Og hvis personnummeret findes accepteres indtastningen
kun hvis sagen har data i outdatofeltet. Ellers skal et vindue
fortæller at der er uekspederet journaler på pgl. og den indtastede
post skal annulleres (ligesom der sker hvis man taster 2 gange på
Esc.)

Jeg er ikke "nørd" til dette. Så en programering jeg kan
klippe/klistre ind i formularens hændelsesfaner ville være fedt.
Allerede nu køre en hændelse som tjækker CPR på modolus.
Men forskellige hændelser kan jo kaldes i en macro.

Det er dansk access '97 jeg er i besiddelse af.

På forhånd tak :-)

Hilsen
Carsten.
Torben Borre Larsen (21.04.2004, 19:14)
carsten.laursen (carsten) skriver:
>Hvordan gør jeg, når et personnummer tastes i en formular kun må
>accepteres, hvis der IKKE findes andre poster med samme personnummer
>som ikke er afsluttet, dvs. hvor outdato stadigvæk er "blank" (null).


Du kan prøve at lave en makro - eller VBA - i feltet Personnummer
FørOpdatering:
I makroens betingenlse skriver du noget i den stil med:

DCount("[Personnumer]";"[Din Data
tabel]";"[Personnummer]=Forms!DinAkutuelleFormularsNavn![Personnummer] AND
OutData =Forms!DinAkutuelleFormularsNavn![OutData]")=null
Denne betingelse tjekker om der er flere personnumre, som har det
indtastede personnummer OG omOutData er null.

Hvis betingelsen finder en person hvor OutData er null har du en
Ikke-afsluttet sag, og kan ikke oprette en ny. Derfor skal makroen
AnnullereHændelsen og stoppe makroens videre kørsel.

Det er taget fra "hukommelsen" så du må prøve dig frem med syntaks og de
rigtige tabel/formular navne.

Held og lykke - og kom igen, hvis det driller -:)
Lignende emner