Avatar billede tavlen Nybegynder
01. maj 2007 - 09:25 Der er 6 kommentarer og
1 løsning

summering og overførsel til post 2

Hej har følgende formel fra en tekstboks i post 1 som skal videre føres til post 2 i en anden tekstboks:

=![Drftdageugen1] + [Drftdageforr1]

i VBA virker denne kode, så data fra tekstboksen [Drftdageugen1] + [Drftdageforr1] post1 overføres til tekstboks [Drftdageforr1] i post2:

Private Sub Form_Current()

Dim rs As DAO.Recordset
If Me.NewRecord Then
Set rs = Me.Recordset.Clone
rs.MoveLast

Me.Drftdageforr1.DefaultValue = rs![Drftdageugen1] + [Drftdageforr1]

rs.Close
End If

End Sub

problemet er, at hvis jeg skifter mellem post 1 og post 2, flere gange. bliver tallet højere og højere for post 2, da den lægger værdien fra [Drftdageugen1] sammen med [Drftdageforr1].

kan det lade sig gøre at denne summering kun kommer til at ske en enkelt gang? sådan at jeg kan gå tilbage til gamle poster uden at værdierne hele tiden ændres.

mvh

Niels
Avatar billede fdata Forsker
01. maj 2007 - 19:20 #1
Dit reelle problem er at du beregner et nyt felt.
Du bør i stedet tage udgangspunkt i at opsamle data i stedet, altså oprette et felt i din formular, som henter "forrige" data. Jeg kan ikke helt gennemskue din løsning; men det ender med noget i stil med:

I formularen lægger du en tekstboks, f.eks. ForrigeUge
I formularens VedAktuel hændelse lægger du

  ForrigeUge = <beregnes her>
  Me.ForrigeUge = DLookup("Drftdageugen1","DinTabel","UgeNr=" & ForrigeUge) + DLookup("Drftdageforr1","DinTabel","UgeNr=" & ForrigeUge)

Du skal nok pynte med lidt fejlkontrol osv.
Så kan du rette løs i gamle data. Feltet beregnes dynamisk hele tiden.
Avatar billede fdata Forsker
01. maj 2007 - 19:21 #2
... der gik lige ged i klippe/klistre her. Det korrekte er

I formularen lægger du en tekstboks, f.eks. ForrigeUge
I formularen lægger du en variabel, f.eks. ForrigeUgeNr
I formularens VedAktuel hændelse lægger du

  ForrigeUgeNr = <beregnes her>
  Me.ForrigeUge = DLookup("Drftdageugen1","DinTabel","UgeNr=" & ForrigeUgeNr) + DLookup("Drftdageforr1","DinTabel","UgeNr=" & ForrigeUgeNr)
Avatar billede tavlen Nybegynder
02. maj 2007 - 12:20 #3
Hvad menes med variabel og hvordan laver jeg den?:
I formularen lægger du en variabel, f.eks. ForrigeUgeNr.

Kan du evt forklare det igen udfra følgende:

har 3 tekstbokse:

tekstboks1, tekskstboks2 og tekstboks3.

i  tekstboks3 sker følgende i udtryksgeneratoren: = [ tekstboks1]+[tekskstboks2]

dette udtryk skal videreføres til tekstboks2 når man skifter til næste post. Men jeg skal kunne gå tilbage til gamle poster uden at beregningen fortsætter.

Mvh

Tavlen
Avatar billede fdata Forsker
02. maj 2007 - 22:19 #4
Nu ved jeg jo ikke, om jeg har forstået dig helt korrekt eller hvordan dine data er organiseret; men vi antager at du har et ID felt og et ugenummer i din post.
Jeg antager desuden at
- tekstboks1 er dine værdier fra tabellen
- tekstboks2 er værdien fra den forrige post
- tekstboks3 er den beregnede sum

Formularens VedAktuel hændelse bliver så noget i stil med (eksempel):

Private Sub Form_Current()
  If Me.NewRecord Then
    Me.tekstboks2 = Null
  Else
    If Me.Id = 1 Then        ' Den allerførste
      Me.tekstboks2 = 0
    Else
      Me.tekstboks2 = DLookup("tekstboks1", "DinTabel", "Uge=" & Me.Uge - 1)
    End If
    Me.Refresh
  End If
End Sub

NB: Det er klart, at man ikke bare kan se på udtrykket "Uge - 1". Det vil jo gå galt ved årsskiftet; men her må du være kreativ og finde en metode til at udpege posten, som ligger lige før den aktuelle.
Avatar billede fdata Forsker
07. maj 2007 - 21:42 #5
Du har nu oprettet et nyt spørgsmål om samme emne (lidt på kant med reglerne) - hvor du spørger om DLookup kan bruges!?!
Hvad sker der? Er vi færdige i denne tråd?
Avatar billede tavlen Nybegynder
09. maj 2007 - 09:51 #6
nej er bare lidt ny med det her, sorry!
Avatar billede fdata Forsker
09. maj 2007 - 22:22 #7
Øøøh. Vi er ikke færdige - og du har afvist svaret!?!
Forklar lige igen: Arbejder du videre med min løsning? Eller er spm. lukket?
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