Avatar billede 49jensen Nybegynder
19. oktober 2008 - 18:43 Der er 27 kommentarer og
1 løsning

Reset tæller med anden tæller

Jeg har problemer med kode som skal erstatte "If TlrL Opdateres.
Hvis TlrL tæller fra f.eks. 23 til 24 skal TlrITEM resættes til 1.

DoCmd.SetWarnings False
  "If TlrL Opdateres" Then
    DoCmd.RunSQL "UPDATE TællerITEM SET Nr=1"
  Else
    DoCmd.RunSQL "UPDATE TællerITEM SET Nr=Nr+1"
  End If
  DoCmd.SetWarnings True
Avatar billede terry Ekspert
19. oktober 2008 - 18:51 #1
Not sure what your trying to do but this is wrong

"If TlrL Opdateres" Then
Avatar billede terry Ekspert
19. oktober 2008 - 18:51 #2
what is?

"TlrL Opdateres"
Avatar billede terry Ekspert
19. oktober 2008 - 18:53 #3
I think you need to explain in more detail
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 19:22 #4
No it is not code. What I mean is - If "CounterL"(TlrL) changes from ex. 23 to 24, "CounterITEM"(TællerITEM) should reset to "1". "If TlrL Opdateres" is my wording and should be replaced by code.
Avatar billede w13 Novice
19. oktober 2008 - 19:27 #5
Terry>> Som jeg forstår det, skal Nr tælles 1 op, men når den når 24, skal den starte forfra fra 1.
Avatar billede w13 Novice
19. oktober 2008 - 19:27 #6
Og eksemplet er kun pseudo-kode.
Avatar billede w13 Novice
19. oktober 2008 - 19:29 #7
Måske det kan laves med noget modulus?
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 19:38 #8
No! "TællerItem" skal resættes til 1, hvis "TællerL" skifter fra f.eks.23-24 eller 2-3.Med andre ord skifter værdi.Eksempel "If TlrL Opdateres" er pseudo, som skal er erstattes med rigtig kode.
Avatar billede w13 Novice
19. oktober 2008 - 19:41 #9
Jamen.. så forstår jeg det heller ikke. Vi mangler nok at se mere af dit system eller blive sat ind i det.

Du ændrer jo med +1. Så vil den jo skifte værdi? Så skal du vel bare sætte den til 1 der i stedet.
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 19:51 #10
Ja, "TællerITEM" skal resættes til 1 når "TællerL" skifter værdi.Der er tale om 2 forskellige tællere som bliver aktiveret ved ved forskellige hændelser.
Avatar billede w13 Novice
19. oktober 2008 - 20:04 #11
Hmm. Ok. Så det lyder for mig, som om, du skal lytte på feltet TællerL på en eller anden vis.
Avatar billede terry Ekspert
19. oktober 2008 - 20:05 #12
når "TællerL" skifter værdi

Where does this happen, in a form?

If so then in the TællerL fields after update event you can update TællerItem


DoCmd.RunSQL "UPDATE TællerITEM SET Nr=1"


But when should this happen?
DoCmd.RunSQL "UPDATE TællerITEM SET Nr=Nr+1"
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 20:17 #13
"TællerL" is in a form(A) "after insert". "TællerItem" is also in a form(B) "after insert"

Disse coder er indsat i "before insert"
Form A  -  Tlr = DLookup("Nr", "TællerL")
          Me.[LOG NO] = Tlr

Form B  -  Tlr = DLookup("Nr", "TællerITEM")
          Me.[Item no] = Tlr
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 20:22 #14
This is the code for form A "after insert":
DoCmd.SetWarnings False
  If Tlr = 9999999 Then
    DoCmd.RunSQL "UPDATE TællerL SET Nr=1"
  Else
    DoCmd.RunSQL "UPDATE TællerL SET Nr=Nr+1"
  End If
  DoCmd.SetWarnings True
and same frame for form B
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 20:35 #15
Det er rigtigt, "TællerL" styrer reset af "TællerITEM"
Hvis "TællerL" ændrer værdi resættes "TællerITEM" til "1".
Avatar billede terry Ekspert
19. oktober 2008 - 22:00 #16
You should try giving us the FULL story from the start, thi swill help use find a solution.
There has been no mention of different forms, and now we see code where Llr has to be 9999999 before it gets reset to 1.

Explain which tables/fields you have and what needs to get updated under which circumstances.

In your comment 19/10-2008 20:22:41 there is nothing which resets TællerITEM which you refer to in your comment 19/10-2008 20:35:32
Avatar billede terry Ekspert
19. oktober 2008 - 22:00 #17
Llr = Tlr
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 23:15 #18
I will try
TblA with field "LOG NO" which is updated by FormA field "LOG NO" which is updated by TællerL.
TblB with field "ITEM" which is updated by FormB field "ITEM" which is updated by TællerITEM.
Everytime you open a new record in TblA the field "LOG NO" will increase with 1.( 1-2-3.....)
Everytime you open a new record in TblB the field "ITEM" will increase with 1.( 1-2-3-4....)As long as you don´t open a new record in TblA. If you open a new record in TblA, the field "ITEM" should reset to "1". (TællerITEM should be reset)
Avatar billede 49jensen Nybegynder
19. oktober 2008 - 23:48 #19
The figures 9999999 could as well be 100,the code comes from another place and should not be used here. I only want to reset TællerITEM to "1" if I open a new record in TblA.
Avatar billede 49jensen Nybegynder
24. oktober 2008 - 10:24 #20
Har jeg skrevet noget forkert eller udtrykt mig forkert eller skal der flere point på bordet siden jeg ikke hører mere.
Avatar billede terry Ekspert
24. oktober 2008 - 10:41 #21
sorry, I dont seem to have received any mails from your comments d.19.

I'm getting confused.
You refer to a field "LOG NO" which is updated by TællerL, are these two fields (in tblA) the same field?
and the same for the field ITEM which is updated by TællerITEM. Are these the same field?

I understand
"Everytime you open a new record in TblA the field "LOG NO" will increase with 1.( 1-2-3.....)
Everytime you open a new record in TblB the field "ITEM" will increase with 1.( 1-2-3-4....)As long as you don´t open a new record in TblA. If you open a new record in TblA, the field "ITEM" should reset to "1". (TællerITEM should be reset)"

but where does TællerL and TællerITEM come into this?
Avatar billede 49jensen Nybegynder
24. oktober 2008 - 15:32 #22
TællerL and Tæller are Tables.(TblTællerL and TblTællerItem.
As explained earlier the FrmA (source TblA) have a field LOG NO. Everytime I open FrmA and enter data the LOG NO will increase with 1 ( code in "hændelser" with TblTællerL as source).
The FrmB (source TblB)have a field ITEM. Everytime I open FrmB and enter data the ITEM will increase with 1 ( code in "hændelser" with TblTællerITEM as source).
As it is now, the TællerL will count op to 9999999 before it resets to 1 the sam e for TællerITEM.
What I am after is a piece of code to replace the excisting part of code ( "count until 9999999 before reset to 1")
The TællerITEM should "look" at TællerL. If TællerL increase (FrmA open and activated) the TællerITEM should reset to 1.
Avatar billede terry Ekspert
24. oktober 2008 - 15:53 #23
itmust be becuase its almost the weekend, but I'm finding ithard to understand all of these forms/fields. Is it possible for you to send an example of your dB so i cna see for myself?

ekspertenATsanthell.dk
AT = @
Avatar billede 49jensen Nybegynder
24. oktober 2008 - 16:06 #24
Ok, I will make up a sample in another db, and send it to you.
I will come back.
Avatar billede 49jensen Nybegynder
24. oktober 2008 - 16:38 #25
I have mailed db.
Avatar billede terry Ekspert
24. oktober 2008 - 20:10 #26
I have received your mail will look at it tomorrow
Avatar billede terry Ekspert
27. oktober 2008 - 18:10 #27
.
Avatar billede 49jensen Nybegynder
27. oktober 2008 - 19:07 #28
Endelig svar.
Den oprindelige kode some er indsat i FrmB skal deles i 2 DoCmd sætninger

Oprindelig sætning:
DoCmd.SetWarnings False
If Tlr = 9999999  Then
    DoCmd.RunSQL "UPDATE TællerITEMSET Nr=1"
  Else
    DoCmd.RunSQL "UPDATE TællerITEM SET Nr=Nr+1"
  End If
  DoCmd.SetWarnings True

DoCmd sætning 1: (tællerfunktion)
Denne kode skal indsættes i FrmB under ”before insert”.
  DoCmd.SetWarnings False
    DoCmd.RunSQL "UPDATE TællerITEM SET Nr=Nr+1"
  DoCmd.SetWarnings True

DoCmd sætning 2:(Reset funktion)
Updateringskoden skal indsættes i FrmA under ”before insert”.
DoCmd.SetWarnings False
  DoCmd.RunSQL "UPDATE TællerITEM SET Nr=1"
DoCmd.SetWarnings True
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