Avatar billede terib Nybegynder
04. december 2003 - 06:14 Der er 10 kommentarer og
2 løsninger

Prisfald og arkivering

Hej - Jeg har en varetabel der hedder Varer. Indeholder bl.a. et felt med stkpris. Hvis jeg gerne vil trække 5% fra alle varer der koster mere end 100 kr, hvordan gør jeg så lige det ?

OG hvordan får jeg arkiveret alle ordre der er ældre end eks. 1 januar 2003 til en anden tabel og fjernet dem fra ordretabellen?
Avatar billede krasmussen Nybegynder
04. december 2003 - 07:06 #1
Du kan bruge en opdateringsforespørgsel og her sætte som kriterie, at prisen skal være større end 100.- datoen mindre end 010103 osv. osv.
Avatar billede mugs Novice
04. december 2003 - 07:11 #2
Tag en kopi af din ordretabel og kald den ARKIVTABEL og slet alle poster, kør derefter denne:

DoCmd.RunSQL "INSERT INTO ARKIVTABEL SELECT ORDRETABELLEN.felt2,felt1,dato FROM ORDRETABELLEN Where ORDRETABEL.dato < #2003-01-01#"
Avatar billede jobba Nybegynder
04. december 2003 - 07:11 #3
Det første spørgsmål:
Lav en forespørgsel med et felt indeholdende denne feltkode:
Minus5Prc: Iif(stkpris>100;stkpris*0,95;stkpris)
Jeg har dog ikke testen den, så prøv den lige af.

Andet spørgsmål:
Der skal du bruge to forespørgsler. En opdateringsforespørgsel, som kopiere posterne over i en anden tabel, med en kriterie som beskriver poster ældre en 1 januar 2003. Den anden skal være en sletforespørgsel, som sletter poster med samme kriterie. Hvordan denne kriterie opbygges ved jeg ikke helt, da dato-felter ikke lige er det jeg arbejder mest med. men prøv noget med ordredato>'01-01-2003' eller er det ordredato>'%01-01-2003%'
Avatar billede mugs Novice
04. december 2003 - 07:14 #4
Slet poster i ordretabellen med denne:

DoCmd.RunSQL "DELETE FROM ORDRETABEL Where ORDRETABEL.dato < #2003-01-01# "
Avatar billede mugs Novice
04. december 2003 - 07:15 #5
jobba -> Datoer i SQL skal omsluttes af #
Avatar billede jobba Nybegynder
04. december 2003 - 07:20 #6
Ja det skal nok passe. Datofelter er som sagt, ikke det jeg bruger hver dag :)
Avatar billede terib Nybegynder
04. december 2003 - 09:28 #7
Hej - Takker for forslagene. Jeg har lige afprøvet den første med at opdatere prisen, men får det ikke til at virke ?
Prøver nu den næste.
Avatar billede mugs Novice
04. december 2003 - 12:20 #8
Opdatering af pris som et udtryk i en forespørgsel:

Minus5Prc: IIf([stkpris]>100;[stkpris]*0,95;[stkpris])
Avatar billede terib Nybegynder
04. december 2003 - 17:07 #9
Til mugs - den fik jeg til at virke, men jeg skal have ændret stkprisen i tabellen, så det er nødt til at være en opdateringsforespørgsel.
Til din orientering så virker de andre forslag med dato SUPER tak
Avatar billede terry Ekspert
04. december 2003 - 21:31 #10
UPDATE Varer SET stkpris = stkpris*0.95 WHERE stkpris > 100
Avatar billede terry Ekspert
04. december 2003 - 21:32 #11
and that can also be done in a DoCmd.RunSQL
Avatar billede terib Nybegynder
04. december 2003 - 22:03 #12
Tak for hjælpen - mugs og Terry havde de "rigtige" svar
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