Avatar billede newetta Nybegynder
12. oktober 2000 - 20:26 Der er 17 kommentarer og
1 løsning

Delete problem

Jeg selecter med :

strSQL = \"SELECT * FROM hvalpe WHERE foedt <  \'\" & Date() - 56 & \"\'\"

og samtideig skal alle poster der er ældre end de 56 dage slettes men hvordan ??
Avatar billede ldanielsen Nybegynder
12. oktober 2000 - 20:31 #1
Prøv:

strSQL = \"SELECT * FROM hvalpe WHERE foedt < \'\"&DateAdd(\"D\",-56,Date())\"\'\"

Du skal fortælle om det er minus 56 dage, år, minutter eller hvad det nu kan være
Avatar billede ldanielsen Nybegynder
12. oktober 2000 - 20:32 #2
Nåh, de skal slettes (eller forhåbentlig bare sælges :o) )

strSQL = \"DELETE hvalpe WHERE foedt < \'\"&DateAdd(\"D\",-56,Date())\"\'\"
Avatar billede newetta Nybegynder
12. oktober 2000 - 20:37 #3
Det er næsten ok men den viser kun :
21/10/2000
3/8/2000

og ikke :
12/9/2000
12/10/2000

Avatar billede newetta Nybegynder
12. oktober 2000 - 20:39 #4
og det er ok med select da der var ged i den jeg selv havde lavet,
så jeg manglede både en til at vise dem der var yngre end 8 uger og en som slettede dem der var ældre..
Avatar billede newetta Nybegynder
12. oktober 2000 - 20:42 #5
og 3/8/2000 er da mere end 56 dage siden i min kalender ;-}

Ps.: jeg har ændret < til >
Avatar billede ldanielsen Nybegynder
12. oktober 2000 - 21:18 #6
Jeg kan ikke helt følge med i dine datoer, men er vi ude i datoformat problemet *gys*.

Så lav selv strengen så den kan forstås

skaeringsDato = DateAdd(\"D\",-56,Date())
datostreng = month(skaeringsDato)&\"/\"&day(skaeringsDato)&\"/\"&year(skaeringsDato)

strSQL = \"SELECT * FROM hvalpe WHERE foedt < \'\"&skaeringsDato&\"\'\"

PS: Der manglede et & i begge de SQL-er jeg har sendt før - undskyld :-|
Avatar billede ortrak Nybegynder
12. oktober 2000 - 22:15 #7
er det en access eller en MS-SQL dbase?

/ortrak
Avatar billede newetta Nybegynder
13. oktober 2000 - 10:44 #8
det er en Access 2000 db
Avatar billede newetta Nybegynder
13. oktober 2000 - 11:00 #9
-->Idanielsen

Jeg er helt ude på den glatte is her ;-) når jeg sætter det du har lavet ind så sker der følgende

Så viser det :

12/10/2000 ok
18/8/2000  for gammel
1/10/2000 ok
13/1/2000 for gammel
12/9/2000 ok

men ikke :
19/8/2000 Skal vises
20/8/2000 Skal vises
3/8/2000 ok
3/8/2000 ok
Avatar billede newetta Nybegynder
13. oktober 2000 - 11:37 #10
Der er i db en record for hver eneste dag siden 8/1/2000 MM/DD/ÅÅ

Se resultat på

http://www.newfoundland.dk/dogshows/puppies/temp.asp?land=denmark

jeg bruger :

skaeringsDato = DateAdd(\"D\",-56,Date())
datostreng = month(skaeringsDato)&\"/\"&day(skaeringsDato)&\"/\"&year(skaeringsDato)

strSQL = \"SELECT * FROM hvalpe WHERE foedt < \'\"&datostreng &\"\'\"

jeg er lidt i tvivl om hvordan datoen skal stå
skal det være 01/01/2000 eller 1/1/2000 ?
Avatar billede ldanielsen Nybegynder
13. oktober 2000 - 11:43 #11
Isen bliver glat når man siger 19/8/2000.

Det læses efter min opfattelse: d 8. i 19. 2000

Da jeg check\'ede sidst var der kun 12 måneder i året.

Datofromatet er afhængigt af hvilket sprog der er valgt i kontrolpanelet på serveren, under \"Regional settings\". Også valuta- og talformater afhænger af dette, og det er noget shit!

Det du skal, er at give Access datoen i det format den er indstillet til at forstå, og det kan være bl.a.:

DD-MM-YYYY
MM/DD/YYYY

og altså åbenbart også:
DD/MM/YYYY

Prøv dette:
Lav en midlertidig tabel med et par kolonner, blot til at teste i.
Definer en af kolonnerne som \"Dato og klokkeslæt\"
Giv den kolonne standardværdien \"Date()\"
Gem tabellen, åbn den igen i dataarkvisning, og se hvilken dato der dukker og i nye rækker

I min står der 10/13/2000, for min viser Amerikansk datoformat
Avatar billede newetta Nybegynder
13. oktober 2000 - 12:22 #12
den viser : 13/10/2000
Avatar billede newetta Nybegynder
13. oktober 2000 - 12:26 #13
PS jeg \"sidder ikke på serveren\" men har hotel hos Golden Planet.
Avatar billede bongis Nybegynder
13. oktober 2000 - 12:38 #14
<--LYTTER-->
Avatar billede ldanielsen Nybegynder
13. oktober 2000 - 12:46 #15
Sorry, der var IGEN en fejl i min kode, det er ikke særlig sjovt for modtageren.

Med forbehold for fejl skal du bruge:

skaeringsDato = DateAdd(\"D\",-56,Date())
datostreng = day(skaeringsDato)&\"/\"&month(skaeringsDato)&\"/\"&year(skaeringsDato)

strSQL = \"SELECT * FROM hvalpe WHERE foedt < \'\"&datostreng &\"\'\"

Og for st være sikker: Hvis dato1 < dato2, så ligger dato1 før dato2. Jeg forstår nemlig ikke din måde at præsentere resultaterne på, det der med skal vises, ok og for gammel.

Pyt med om du sidder på serveren, men hvis du udvikler på egen lokal server, og den ikke er indstillet som den hos Golden Planet, så vil du få problemer med dette jævnligt.
Avatar billede newetta Nybegynder
13. oktober 2000 - 12:53 #16
Jeg prøver det lige...

Resultaterne skal vises i den rækkefølge de er født i med først født først.
og de der er ældre end 8 uger (56 dage) skal slettes.

Og jeg udvikler direkte på serveren.
Avatar billede newetta Nybegynder
13. oktober 2000 - 13:01 #17
Jeg har opgivet men du får dine point som tak for kampen ;-)
Avatar billede sone Nybegynder
13. oktober 2000 - 13:24 #18
Endnu en gang...

  strSQL = \"DELETE hvalpe WHERE foedt < \'\"&DateAdd(\"D\",-56,Date())\"\'\"

Syntaksen for DELETE er:

  DELETE FROM tablename ...

Man kan IKKE slettet et enkelt felt med DELETE, så det giver ikke mening at skrive feltnavne inden FROM.

God weekend  ;-)
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
Kurser inden for grundlæggende programmering

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