Avatar billede jensen363 Forsker
16. september 2009 - 09:12 Der er 5 kommentarer og
1 løsning

Kryptisk opdateringsforespørgsel

I en Indextabel, skal jeg benytte en opdateringsforespørgsel til at ændre een eller flere indextal ud fra nogle kriterier som er følgende :

Min tabel indeholder et felt [Year Total] og det er i forhold til denne værdi jeg skal have opdateret [Target]

Mit kriterie indtastes i [Status] og er :

  K = Keep
  V = Value Change
  P = Percent Change
  Z = Set to zero

Når bruger aktiverer opdateringsforespørgslen, bliver denne promptet for Key Status, og sættes denne til K, skal der ikke promptes for manuel indtastning af [Type 100 :] men derimod indsættes værdien fra [Year Total] ... hvis Key status er V skal der derimod promptes ....

UPDATE IndexTable
SET IndexTable.Status = [Key Status  K, V, P or Z : ], IndexTable.Target = IIf([IndexTable]![Status]='K',[IndexTable]![Target]=[IndexTable]![Year Total],[Type 100 : ]);

Jeg bliver promptet hele tiden ????
Avatar billede terry Ekspert
16. september 2009 - 10:42 #1
Havent looked so closely at the SQL but isnt it because the IIF is looking at the old value of status.

This isnt tried but you could try this.


UPDATE IndexTable
SET IndexTable.Status = [Key Status  K, V, P or Z : ], IndexTable.Target = IIf([Key Status  K, V, P or Z : ]='K',[IndexTable]![Target]=[IndexTable]![Year Total],[Type 100 : ]);
Avatar billede jensen363 Forsker
16. september 2009 - 10:54 #2
Hi Terry

I tested something simular earlier, whit the same result ... I get prompted both times :-(
Avatar billede terry Ekspert
16. september 2009 - 10:59 #3
Any chance of seeing an exampel of the dB?

ekspertenATsanthell.dk
AT = @
Avatar billede jensen363 Forsker
16. september 2009 - 13:19 #4
On the way :-)
Avatar billede jensen363 Forsker
23. september 2009 - 08:40 #5
Hi Terry

You were right, my ambitions were a bit to high.

I ended up with this :

Private Sub CPercent_AfterUpdate()

    Me.Target.Value = (Me.CPercent * Me.Year_Total) / 100

End Sub

Private Sub Target_AfterUpdate()

    Me.CPercent.Value = (Me.Target / Me.Year_Total) * 100

End Sub

This will do, as it covers three of the four cases :-)
Avatar billede terry Ekspert
23. september 2009 - 12:21 #6
Thanks.

I think its possible with the suggest I gave, but if your happy with what you have the great.
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