Avatar billede itumpe Nybegynder
04. februar 2009 - 15:54 Der er 17 kommentarer og
1 løsning

Kontrol af antal arbejdede timer efter klik på afkrydningsfelt

Jeg har en fortløbende formularer med følgende overskrifter:

ID  Tilføj/Fjern  Navn  Afdeling

Tilføj/Fjern er et afkrydningsfelt.

Når brugeren klikker på afkrydningsfeltet ud for en given medarbejder, skal følgende ske:

1) Systemet skal kontrollere, om personen har arbejdede timer i tabellen "Arbejdede Timer" under overskriften "Man Hours".

2) Hvis "Man Hours" for medarbejderen, hvis afskydsfelt er blevet klikket på, er nul, så tillad afklikning.

3) Hvis "Man Hours" for medarbejderen, hvis afskydsfelt er blevet klikket på, er større end nul, så tillad ikke afklikning og kom med besked "Medarbejderen har arbejdede timer og du kan ikke afklikke".

Hvordan griber jeg denne problematik an?
Avatar billede fdata Forsker
04. februar 2009 - 23:45 #1
I afkrydsningsfeltets FørOpdatering hændelse lægger du:

Private Sub DitFelt_BeforeUpdate(Cancel As Integer)
  If Me.DitFelt then
    If DCount("Man Hours","Arbejdede Timer","MedarbejderID=" & Me.ID) > 0 then
      MsgBox "Medarbejderen har arbejdede timer og du kan ikke afklikke"
      Cancel=True
    End If
  End If
End Sub

Ret selv diverse feltnavne, så de passer til din base.
Avatar billede itumpe Nybegynder
05. februar 2009 - 09:05 #2
Dette har modsatte effekt.

Nu kan jeg afklikke, men når jeg ænsker at klikke tilbage kommer beskeden, og jeg kan ikke få fluebenet tilbage.
Avatar billede itumpe Nybegynder
05. februar 2009 - 09:05 #3
Dette har modsatte effekt.

Nu kan jeg afklikke, men når jeg ænsker at klikke tilbage kommer beskeden, og jeg kan ikke få fluebenet tilbage.
Avatar billede mugs Novice
05. februar 2009 - 09:21 #4
Prøv at lægge koden i en kommandoknap og se, om den fungerer. Det er klart, at hvis feltet er låst, kan du ikke sætte markøren i det.
Avatar billede itumpe Nybegynder
05. februar 2009 - 09:32 #5
Jeg forstår ikke helt. Det er fluebenet, som jeg ønsker at styrre :-)
Avatar billede itumpe Nybegynder
05. februar 2009 - 09:32 #6
Jeg forstår ikke helt. Det er fluebenet, som jeg ønsker at styrre :-)
Avatar billede mugs Novice
05. februar 2009 - 09:47 #7
Ja - Men hvis feltet er deaktiveret kan du ikke få markøren til at lande i feltet og dermed heller ikke rette i det.
Avatar billede fdata Forsker
05. februar 2009 - 23:39 #8
Jeg tror, vi er ude i noget sprogforbistring her.

Jeg læste "Hvis "Man Hours" for medarbejderen ... er nul, så tillad afklikning" som "Tillad at feltet markeres, hvis antal timer er nul" - og det er det, koden gør.

Hvad mener du med termen "afklikning"?
Mener du sætte eller fjerne markeringen?

Prøv lige at beskrive hvad det er, du ønsker, på en lidt anden måde.

Hvad er reglerne helt præcist for at du må sætte hhv. slette markeringen?
Avatar billede itumpe Nybegynder
06. februar 2009 - 09:12 #9
Afkrydsningsfelterne i listen har som udgangspunkt fluebenet placeret. Dette betyder, at en medarbejder er knyttet til en afdeling.

Brugeren af systemet kan fjerne fluebenet på afkrydsningsfeltet for en medarbejder, hvis medarbejderen ikke længere skal være tilknyttet afdelingen.

MEN

Brugeren må IKKE kunne fjerne fluebenet hvis medarbejderen har arbejdet timer.

Jeg håber dette hjælper, ellers sig til.
Avatar billede itumpe Nybegynder
06. februar 2009 - 09:12 #10
Afkrydsningsfelterne i listen har som udgangspunkt fluebenet placeret. Dette betyder, at en medarbejder er knyttet til en afdeling.

Brugeren af systemet kan fjerne fluebenet på afkrydsningsfeltet for en medarbejder, hvis medarbejderen ikke længere skal være tilknyttet afdelingen.

MEN

Brugeren må IKKE kunne fjerne fluebenet hvis medarbejderen har arbejdet timer.

Jeg håber dette hjælper, ellers sig til.
Avatar billede mugs Novice
06. februar 2009 - 10:36 #11
Som jeg forstår det nu, skal det måles på antallet af arbejdede timer. Det kan gøres i formularens VedAktuel (Current) ved at opstille en betingelse med efterfølgende handling, hvis betingelsen er opfyldt, og en anden handling hvis betingelsen ikke er opfyldt:

If DCount("Man Hours","Arbejdede Timer","MedarbejderID=" & Me.ID) > 0 then
Me.afkrydsningsfelt.locked = True
Else:
Me.afkrydsningsfelt.locked = false
end if
Avatar billede fdata Forsker
06. februar 2009 - 19:00 #12
Aha. "Afklikke" betyder "fjerne markering".

Så kan du jo bruge mugs' udgave - eller bare vende betingelsen i min kode:

Private Sub DitFelt_BeforeUpdate(Cancel As Integer)
  If NOT Me.DitFelt then
    If DCount("Man Hours","Arbejdede Timer","MedarbejderID=" & Me.ID) > 0 then
      MsgBox "Medarbejderen har arbejdede timer og du kan ikke afklikke"
      Cancel=True
    End If
  End If
End Sub
Avatar billede mugs Novice
06. februar 2009 - 20:13 #13
Den der med den danske sprog er en svær ting. Hedder det, hvis feltet er afklikket:

- Falsk
- Nej
- -1
- Afklikket
Avatar billede fdata Forsker
06. februar 2009 - 21:49 #14
Tjah. Jeg er bange for at den generelle opfattelse af ordet "afklikket" er den modsatte af din.

Man vil kunne møde sætninger som "Hvis feltet er afklikket, så ..." eller "Sørg for at feltet er afklikket".

En mere korrekt formulering ville dog være at bruge Microsofts terminologi. Her taler man om at markere et felt eller sætte en markering. Man kunne også bruge udtrykket at "sætte et flueben".

Bemærk, at der i begge tilfælde er tale om at sætte og slette et-eller-andet. Så slipper man for den misforståelse, som forstavelsen "af-" kan medføre. Tænk på montere/afmontere eller isolere/afisolere. Og så den aktuelle klikke/afklikke. You see?

Hvordan gik det med opgaven? Er den på plads?
Avatar billede mugs Novice
06. februar 2009 - 21:58 #15
Jeg kan godt se din pointe i montere / afmontere etc.
Min bemærkning var nok mest ment som en generel opfordring til en bedre forklaring på det, man som bruger egentlig mener.

Her er udtrykkene "sætte et flueben" eller "sætte en markering" udmærkede uden mulighed for forveksling.
Avatar billede fdata Forsker
07. februar 2009 - 14:05 #16
Exactly my point. Vi er helt enige.
Avatar billede itumpe Nybegynder
09. februar 2009 - 10:44 #17
Tak for hjælpen Fdata. Du var på rette spor fra starten. Men også tak til dig mugs.
Avatar billede fdata Forsker
09. februar 2009 - 19:14 #18
Velbekomme. Takker for point ;o)
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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