Avatar billede jine Nybegynder
17. marts 2002 - 18:11 Der er 21 kommentarer og
1 løsning

Automatísk slette post!

Hej Alle

Jeg leder efter et svar på om det er muligt slette en post i en tabel i en database automatisk efter 30 dage?

Hvis ja, hvordan?
Avatar billede erikjacobsen Ekspert
17. marts 2002 - 18:14 #1
Næh, men du kan jo bare nøjes med at vise dem
der er yngre end 30 dage. Om der så står flere
i databasen kan være ligegyldigt.
Avatar billede sblar Nybegynder
17. marts 2002 - 18:16 #2
Ja det er muligt (alt er muligt, næsten), men det kræver at posten har et datofelt. Prøv lige at forklare lidt mere om hvornår posten skal slettes; ved start af db, når bruger trykker en knap eller hvad?
Avatar billede sblar Nybegynder
17. marts 2002 - 18:17 #3
erikjacobsen> det er vel ikke altid ligegyldigt om databasen indeholder f.eks. 10000 poster der er overflødige :-)
Avatar billede jine Nybegynder
17. marts 2002 - 18:19 #4
Jeg har forestillet mig, at en bruger opretter en post og denne bliver registret på datoen. 30 dage senere skal denne så slettes automatisk!
Avatar billede sblar Nybegynder
17. marts 2002 - 18:29 #5
Okay, det du skal gøre er, i grove træk, din tabel skal indeholde et dato/klokkeslæt felt med standardværdi=Now(). Det gør at der aut. indsættes dags dato i posten når den oprettes. For at slette den igen efter 30 dage kunne man f.eks. lave en autoexec makro der udfører flg. kode: "DELETE FROM dintabel WHERE datofeltet <=" & (DateAdd('dd',-30,Now).

Hæng mig ikke op på syntaxen, men det er noget i den stil.
Avatar billede jine Nybegynder
17. marts 2002 - 18:41 #6
Hvordan laver jeg en autoexec makro? Det er ikke noget jeg har arbejdet med før.
Avatar billede mugs Novice
17. marts 2002 - 19:00 #7
Du laver makroen sådan:

Åbn din db i databasevinduet, vælg fanen makro og ny makro. I vinduet handlinger vælger du den handling du vil afspille, i vinduet handlingsargumenter vælger du navnet på din forespørgsel. Når du lukker makrovinduet, skal du døbe din makro ved navnet Autoexec.
Når Access åbner, vil den søge efter en makro med det navn, og hvis den findes vil den blive åbnet og afspillet.

Hvis du vil have et eksempel med sletteforesprøgsel og makro må du lægge din e-mail.
17. marts 2002 - 19:01 #8
du laver en makro, som indeholder handlingen "KørSQL". I Handlingsargumentet forneden skriver du:
DELETE FROM dintabel WHERE datofeltet <=" & (DateAdd('dd',-30,Now)

Herefter gemmer du makroen og kalder den "autoexec"

Hver gang du starter databasen, vil den køre makroen og den vil så bede dig bekræfte at du vil køre handlingsforespørgslen, hvilket det skal klikke Ja/ok til.
Avatar billede henrik13 Nybegynder
17. marts 2002 - 19:01 #9
Lav en makro du giver navnet Autoexec. Og derinde går du i punket åbn forespørgsel.
VH Henrik
17. marts 2002 - 19:02 #10
hej Mugs-> jeg er ved at blive sløv på mine gamle dage :o)
17. marts 2002 - 19:03 #11
jine-> hvis du ikke vil klikke OK hver gang, du starter databasen, kan du lave din makro med disse handlinger:
AngivAdvarsler = Nej
KørSQL = DELETE FROM dintabel WHERE datofeltet <=" & (DateAdd('dd',-30,Now)
AngivAdvarsler = ja

/Thomas
Avatar billede jine Nybegynder
17. marts 2002 - 19:09 #12
Problemet er, at databasen skal ligge på et websted og jeg ikke vil download den for at opdatere, men at det skal ske automatisk - jeg er ikke klar over om det er det som thomasjepsen foreslår??
Avatar billede mugs Novice
17. marts 2002 - 19:11 #13
Hej Thomas -> Denne dag vil gå over i historien som den første dag, hvor jeg kom med et korrekt svar før dig. Og så hele 52 sek :o)

Jeg vil medgive dig, at dit svar er det mest korrekte, idet det er mere elegant end mit. Jeg svarede med en makro, fordi spørgeren lader til at være begynder i den ædle "Access-kunst". Næste step i min testdb ville have været en VBA kode med eller uden advarsler.

52 sek!! Jeg skal bare nyde en god whisky ved sengetid!!!
Avatar billede mugs Novice
17. marts 2002 - 19:18 #14
Det er netop hvad vi foreslår. Hvis du følger thomasjepsen's svar vil du aldrig opdage, at poster der opfylder kriterierne bliver slettet.

Jeg er stadig parat med en testdb.
Avatar billede jine Nybegynder
17. marts 2002 - 19:25 #15
Til mugs -->Du skal velkommen til at sende testdb'en til jine@int.tele.dk.
Du mener ikke, at thomasjepsen løsning vil komme til at virke??
Avatar billede mugs Novice
17. marts 2002 - 19:30 #16
Jo - thomasjepsen's løsning virker fint, og mit forslag er faktisk magen til, blot har jeg lavet det i en makro, hvorimod Thomas er gået et skridt videre. Men jeg fornemmer, at du ikke er særlig velbevandret i Access, så lad at tage et skridt asd gangen.

Testdb er sendt.
Avatar billede jine Nybegynder
17. marts 2002 - 19:40 #17
Jeg kigger på det og vender tilbage!
Avatar billede mugs Novice
17. marts 2002 - 19:46 #18
OK - prøv at oprette en post og sæt datoen til 2002-02-14. Luk db og åbn den igen, og du vil se at posten er væk.
Avatar billede mugs Novice
17. marts 2002 - 19:51 #19
jine > Jeg skylder dig at sige, at jeg er på kursus fra MAN morgen og derfor kan ikke besvare evt. spørgsmål før sent TOR aften. Dette gælder naturligvis også dit andet spørgsmål vedr. billeder.
Avatar billede erikjacobsen Ekspert
17. marts 2002 - 20:36 #20
Hej, det er bare mig igen.... :)

Jo, det er da ligegyldigt med for mange poster i databasen.
Det er i hvert fald så ligegyldigt, at man ikke skal have besvær
med at gå ind og slette dem hver dag. En gang om måneden,
eller en gang om året må være nok - afhængigt af
omstændighederne.
17. marts 2002 - 21:06 #21
Erik-> Hvad mener du med 'besvær'? Hvis du laver en Autoexec-makro, så skal du da aldrig selv tænke på noget!!!
Avatar billede sblar Nybegynder
02. maj 2002 - 15:10 #22
Hvorfor afviser du mit svar når du accepterer thomasjepsen's?
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