Avatar billede bbkdk Seniormester
16. september 2014 - 14:54 Der er 5 kommentarer og
1 løsning

Lås for ændring af felt i Access

Jeg har en database, hvor der i en enkeltformular er et felt "Cvr".
Denne formular åbnes fra en forespørgsel, hvor brugeren bliver bedt om at indtaste "Cvr".
Hvis der er oprettet en eller flere poster med det aktuelle Cvr, bliver disse vist i formularen.
Hvis ikke kommer der en tom formular, hvor der så kan oprettes en ny post.
Men hvis der er poster i tabellen med det angivne cvr, må brugeren ikke kunne rette i feltet "Cvr" i formularen.
Det er efter min opfattelse noget med noget VBA, der skal lægges på "Ved aktuel" - er det det korrekte sted at anbringe koden?

If [Cvr] = " "
Me.Cvr.Locked = False
Else
Me.Cvr.Locked = True
End If

En anden mulighed kunne være at låse feltet, hvis det i Id-feltet er angivet, at der er tale om en ny post. Men hvordan skal koden så se ud?
Avatar billede MSchlamovitz Mester
16. september 2014 - 15:16 #1
Du kan teste på, om det er en ny record således:

If Me.Dirty then
  Me.Cvr.Locked = False
Else
  Me.Cvr.Locked = True
End If

Du bør teste kombinationerne af .Locked og .Enabled - fx

If Me.Dirty then
  Me.Cvr.Locked = False
  Me.Cvr.Enabled = True
Else
  Me.Cvr.Locked = True
  Me.Cvr.Enabled = False
End If
Avatar billede claes57 Ekspert
16. september 2014 - 18:13 #2
du kunne - hvis det skal være lidt avanceret - når cvr udfyldes. Kendes det ikke så slår du op i
http://www.cvr.dk/Site/Forms/PublicService/DisplayCompany.aspx?cvrnr=
med cvrnummer, og via den hentede side aflæser du data, som fyldes i de ønskede rubrikker.
Bare et forslag til brugervenligt interface.
Avatar billede terry Ekspert
16. september 2014 - 18:17 #3
Use Dcount in the forms on current event to see if the cvr exists and only do that if the records is not a new record


If Not Me.NewRecord Then

  If DCount(....  ) > 0 Then

    Me.CVR.Enabled = False
  Else
    Me:CVR.Enabled = True
  Endif


End If
Avatar billede bbkdk Seniormester
17. september 2014 - 11:21 #4
Tak til alle tre

Jeg har anvendt Terrys forslag, og det virker perfekt. jeg har dog slettet linien:
DCount ....
da den ikke anvendes. Resten af koden tester vel bare, om der er tale om en ny post - er det tilfældet kan Cvr indberettes. Åbnes formularen med Cvr udfyldt deaktiveres feltet. Og det var netop min mening ...

Øh - hvad skulle der i øvrigt stå i parentesen, hvis den skulle udfyldes?

Tak til claes57 for en henvisning til, hvorledes man slår op i Cvr-registret - det virker.

Jeg har ikke fået testet dit forslag MSchlamovitz, den ser rigtig ud. Skal den kode også sættes på Ved aktuel?

Kunne jeg fordels points med 40 til Terry og 10 til hver af jer andre?
Jeg vil gerne give flere points, men kan det lade sig gøre, efter at spørgsmålet et oprettet?
Og hvordan får jeg lige givet points - det har jeg altid besvær med?
Avatar billede terry Ekspert
17. september 2014 - 16:54 #5
You split the points as you like.

Before you can give points you need answers from us, and heres mine.
Avatar billede terry Ekspert
18. september 2014 - 17:42 #6
thanks
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester