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

Carsten (05.04.2004, 22:52)
Jeg har en database, hvor autonummering er primærnøgle og felt 1.
Felt 2 er til personnummer og felt 12 er et "ja/nej-felt" om journalen
er afsluttet.
Da en person kan have flere journaler, men kun en aktiv kan dette felt
ikke svares nej til dubletter.

Jeg kunne godt tænke med at når et personnummer tastes i en formular,
så tjækkes det at der ikke findes det samme perssonnummer, hvor
journalen ikke er afsluttet.

Hvordan laves dette?

Jeg havde forstillet mig en macro som søger efter personnummeret og
betingelsen er "ja/nej" is null, og så skal macroen annullere
hændelsen og poppe et vindue op.
Jeg kan sagens søge personnummeret, og indsætte betingelsen, men
hvilken komando "tjækker" kun om forespørgslen giver resultat eller
ej?? uden at returnere noget.

Carsten.
Morten Snedker (06.04.2004, 06:44)
> Jeg kunne godt tænke med at når et personnummer tastes i en formular,
> så tjækkes det at der ikke findes det samme perssonnummer, hvor
> journalen ikke er afsluttet.
> Hvordan laves dette?


På formen indsætter du denne funktion:

'---
Function ContinueEnterData(PrsNr As String) As Boolean
Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * From Tabelnavn WHERE Personnummer='"
& Me.UbundetFeltnavn & "' AND JaNejFelt=False;"

If rs.EOF and rs.BOF Then
ContinueEnterData=True
Else
ContinueEnterData=False
End If

rs.close
db.close
set rs = nothing
set db = nothing

End Function
'---

Et ubundet felt, hvor du indtaster personnummeret. På dette felts hændelse
EfterOpdatering kan du så have:

'---
If ContinueEnterData(Me.UbundetFeltnavn) = True Then
MsgBox "Ingen uafsluttet journal på personnummer"
Else
MsgBox "Det blev fundet en uafsluttet journal på personnummeret"
End If
'---
Henry Sønderskov Madsen (06.04.2004, 18:17)
carsten.laursen (Carsten) skrev:
[..]
>og så skal macroen annullere
>hændelsen og poppe et vindue op.
>Jeg kan sagens søge
>personnummeret, og indsætte
>betingelsen, men
>hvilken komando "tjækker" kun om
>forespørgslen giver resultat eller
>ej?? uden at returnere noget.
>Carsten.


Kan du ikke beskrive lidt mere hvad du vil, skal db starte den
record hvor journalen ikke er afsluttet eller stoppe.
ja og nej feltet skal helst ikke være null for så er det hverken
ja eller nej.
MVH HSM
Henry Sønderskov Madsen (07.04.2004, 21:51)
carsten.laursen (Carsten) skrev:
>Jeg har en database, hvor
>autonummering er primærnøgle og felt 1.
>Felt 2 er til personnummer og felt
>12 er et "ja/nej-felt" om journalen
>er afsluttet.
>Da en person kan have flere
>journaler, men kun en aktiv kan dette felt
>ikke svares nej til dubletter.
>Carsten.


Du kan i vb skrive.

Private sub person_nummer_beforeupdate(cancel as integer)
dim svar as string
svar = me![person nummer]
if not isnull(dlookup("[journalnr]","journaltabel","[er afsluttet] =
false _
and [person nummer] = '" & svar & "'")) then msgbox("person nummeret
er aktiv")
end sub

vigtig du skal skrive nøjagtig det står for ellers virker det ikke.

Journalnr skal du ændre til det feltnavn der autonummer
journaltabel skal være den tabel du bruger
og [er afslutte] er det feltnavn du bruger til ja og nej

der kan laves flere funktioner hertil men må jeg vide lidt mere.

Med venlig hilsen
HSM
Lignende emner