Avatar billede kieldjen Nybegynder
25. marts 2002 - 10:26 Der er 8 kommentarer og
1 løsning

Addere efterfølgende poster

Hej

Jeg har en tabel med 3 felter:

Karnr  tid  pause
1      6:00 00:00
2      6:30 00:00
3      7:00 00:00
4      7:30 00:00
osv

Er det muligt at man ved indtastning af data i pause feltet adderer de efterfølgende poster i tids feltet med denne tid alá

Karnr tid  pause
1    6:00  00:00
2    6:30  00:30
3    7:30  00:00
4    8:00  00:00

Jeg benytter off 2000.
25. marts 2002 - 10:34 #1
Du kan jo lave en opdateringsforespørgsel, som opdatere alle tider med det antal minutter, som er angivet i Pause. På feltets EfterOpdatering, kan du køre følgende kode:

Dim SQLStr as String
SQLStr = "Update DinTabel Set Tid = Dateadd('n', Minute(#" & Me!Pause & "#), Tid) Where Karnr = " & Me!Karnr & " And Tid > #" & Me!Tid & "#"
Currentproject.Activeconnection.Execute SQLStr

(Det er skrevet direkte her, så der kan forekomme småfejl, men så skriver du bare lige tilbage)

/Thomas
Avatar billede kieldjen Nybegynder
25. marts 2002 - 15:26 #2
Hej thomasjepsen

Der er lige en hage ved dit foreslag. Som jeg forsøger at vise i eksemplet er det kun fra karnr 3 og fremefter at tiden skal justeres.

Bortset fra det var tiden uændret ved kørsel.

PS jeg HAR ændret til Currentproject.Connection.Execute
25. marts 2002 - 15:31 #3
Hej kieldjen,

Ja, det kan jeg godt se. Så prøv den her:

Dim SQLStr as String
SQLStr = "Update DinTabel Set Tid = Dateadd('n', Minute(#" & Me!Pause & "#), Tid) Where Karnr > " & Me!Karnr
Currentproject.connection.Execute SQLStr


PS: Ja selvfølgelig skal den ikke hedde Activeconnection :o)
Avatar billede kieldjen Nybegynder
25. marts 2002 - 15:43 #4
Hej Thomas

Du er skrap!!

Inden jeg fyrer pointene af til dig er der lige en ting:

Hvis jeg nulstiller pause - sker der ingenting.
Kan du også knække den.
25. marts 2002 - 15:48 #5
Hmm, det er jo sådan set korrekt nok. Derved vil koden kægge 0 minutter til og det bliver jo....det samme.

Problemet er lidt, at du gemmer Pause som dato. I stedet burde det være et heltal. Derved ville du kunne skrive -30 i pause hvorefter det hele bliver rykket tilbage.

HVIS du vælger at lave Pause om til et heltal, skal koden laves lidt om:
Dim SQLStr as String
SQLStr = "Update DinTabel Set Tid = Dateadd('n', " & Me!Pause & ", Tid) Where Karnr > " & Me!Karnr
Currentproject.connection.Execute SQLStr
Avatar billede kieldjen Nybegynder
25. marts 2002 - 16:01 #6
Jeg synes nu ikke at det gør nogen forskel....
Avatar billede kieldjen Nybegynder
25. marts 2002 - 16:10 #7
Skal vi lade den "simre" og hvis du kommer på en løsning, så lad mig endelig høre. Det væsentligste er løst....
25. marts 2002 - 16:14 #8
Nej, men det gør at du kan snyde den ved at skrive -30 og bagefter skrive 0.
Så skulle Tid være på plads.

Ideen mad at lade Tid styre af Pause er ikke så god. I stedett bør man lave f.eks. en knap hvor brugeren kan indsætte pause på et vist antal minutter. Men det kræver stadig noget styring, som jeg ikke kender systemet godt nok til at kunne vurdere eller give bud på.

/Thomas
Avatar billede kieldjen Nybegynder
25. marts 2002 - 16:21 #9
Du har ret. Den så jeg ikke

Om det er en knap eller felt er egentlig ikke problemet. jeg skal bare have skubbet tiden foran mig ligesom i hverdagen :-)

Tak for hjælpen
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