Avatar billede Slettet bruger
02. august 2002 - 15:43 Der er 13 kommentarer og
2 løsninger

Sletning af gamle aktiviteter

Jeg prøver at slette de poster der er før idag så at sige.. hvorfor virker dette ikke?

dato = Record("dato")
id = Record("id")
if dato < Date then
  Sql2 = "DELETE * FROM aktivitet where id="+id
  Con.Execute (Sql2)
end if
Avatar billede Slettet bruger
02. august 2002 - 15:44 #1
har prøvet at udskifte "Date" med now skal lige siges =)
Avatar billede coltau Juniormester
02. august 2002 - 15:49 #2
Session.LCID = 1033 ' Vælg engelsk format
strDato = CStr(Date)

' Hvis Access så ...
strSQL = "delete from aktivitet where dato<#" & strDato & "#"

' Andre databaser så ...
strSQL = "delete from aktivitet where dato<'" & strDato & "'"
Avatar billede Slettet bruger
02. august 2002 - 15:52 #3
datoen står på denne måde i access: 15-07-2002 Altså på dansk... nogen idé om hvad koden er for dansk så?
Avatar billede coltau Juniormester
02. august 2002 - 16:00 #4
Datoformatet i en SQL-sætning skal altid være på engelsk (også selvom du ser det som dansk) - det er defor jeg sætter LCID til 1033

Hvis du ikke vil sætte LCID til 1033 kan du anvende denne linie

strDato = Month(Date) & "-" & Day(Date) & "-" & Year(Date)
Avatar billede Slettet bruger
02. august 2002 - 16:04 #5
Jeg vil gerne have sat det ind i en if sætning da det er en del af en løkke men nu hvor du siger og jeg kan se at den smider det væk med den sætning du har der hvorfor virker denne så ikke:

strDato = CStr(Date)
dato = Record("dato")
if dato < strDato then
Sql2 = "DELETE * FROM aktivitet where id="+id
Con.Execute(Sql2)
end if
Avatar billede Slettet bruger
02. august 2002 - 16:08 #6
Fejltype:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: '[string: "DELETE * FROM aktivi"]'
Avatar billede coltau Juniormester
02. august 2002 - 16:12 #7
Man skal ikke angive * i en delete-sætning

Sql2 = "DELETE * FROM aktivitet where id="+id
Sql2 = "DELETE FROM aktivitet where id="+id
Avatar billede Slettet bruger
02. august 2002 - 16:13 #8
Type mismatch: '[string: "DELETE FROM aktivite"]'


fatter det ikke...
Avatar billede Slettet bruger
02. august 2002 - 16:20 #9
Sådan ser det hele ud:

                          Sql = "SELECT * FROM aktivitet ORDER BY Dato ASC"
              Set Record =  Con.Execute(Sql)
              Do While Not Record.EOF
              Session.LCID = 1033
              strDato = CStr(Date)
              idnr = Record("id")
              datonr = Record("dato")
              if datonr < strDato then
              sql2 = "DELETE FROM aktivitet where id="+idnr
              Con.Execute(sql2)
              end if

Og her komme der så selve udskrivning af løkken..
Avatar billede coltau Juniormester
02. august 2002 - 16:20 #10
Hov - du anvender jo + i stedet for &

Sql2 = "DELETE FROM aktivitet where id=" & id
Avatar billede Slettet bruger
02. august 2002 - 16:26 #11
hehe så virker det lidt mere... (har arbejdet en del med ASP/jscript) i stedet =)

Men nu viser den først hele pivetøjet med de tidlige datoer til at starte med... derefter når man opdatérer sletter den hele db'en??????
Avatar billede Slettet bruger
02. august 2002 - 16:30 #12
Jeg byttede strDato = CStr(Date) ud med strDato = now og nu sletter den kun de datoer der er før idag, men først når jeg opdaterer 2 gange... 1. gang kommer alle datoer ud?
Avatar billede coltau Juniormester
02. august 2002 - 16:32 #13
Det må ligge i noget andet ... ?

Prøv lige denne:

            Sql = "SELECT * FROM aktivitet ORDER BY Dato ASC"
            Set Record =  Con.Execute(Sql)
            Do While Not Record.EOF
              idnr = Record("id")
              if Record("dato") < Date then ' Interne ASP datoformater
                sql2 = "DELETE FROM aktivitet where id="+idnr
                Con.Execute(sql2)
              end if
Avatar billede Slettet bruger
02. august 2002 - 16:33 #14
Tak for det =)
Avatar billede Slettet bruger
02. august 2002 - 16:34 #15
Den skal bare slette inden den kommer videre
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