Avatar billede zeusdk Nybegynder
01. april 2002 - 14:47 Der er 6 kommentarer og
1 løsning

Update (Access)

Hej

Sætningen...
strSQL = "UPDATE NYHEDSBREV set navn = '" & navn & "'

...skaber følgende fejl:
Invalid class string

Hvordan skrives update-sætningen, så brugerens navn og tidspunkt opdateret?

function nyhedsbrev_tilmeld (email, navn)
    strSQL = "select * from NYHEDSBREV WHERE EMAIL = '" & email & "'"
    set rs = Conn.execute(strSQL)
    if rs.EOF then
          Session.LCID = 1030
          strSQL = "INSERT INTO NYHEDSBREV (navn, email, dato) VALUES ('" & navn & "','" & email & "','" & Now() & "')"
        set rs = Conn.execute(strSQL)
          response.write("<br><br> Indsat (ny bruger)")
    else
        strSQL = "UPDATE NYHEDSBREV set navn = '" & navn & "', dato = '" & Now() & "' WHERE email = '" & email
        set rs = Conn.execute(strSQL)
          response.write("<br><br>Opdateret (eksisterende bruger)")
    end if
    Conn.close
end function
Avatar billede zeusdk Nybegynder
01. april 2002 - 14:52 #1
Undskyld - der blev lige cuttet lidt af min tekst. Der skulle i stedet have stået (i 3. øverste linie):

Sætningen...
strSQL = "UPDATE NYHEDSBREV set navn = '" & navn & "', dato = '" & Now() & "'
Avatar billede coltau Juniormester
01. april 2002 - 14:56 #2
Du mangler nogle plinger og så skal der # omkring datofelter og så skal datoen formateres efter MM-DD-YYYY. Linien LCID = 1030 virker ikke på SQL-sætninger.

function FDate(V)
  FDate = Month(V) & "-" & day(V) & "-" & Year(V)
end function

function nyhedsbrev_tilmeld (email, navn)
    strSQL = "select * from NYHEDSBREV WHERE EMAIL = '" & email & "'"
    set rs = Conn.execute(strSQL)
    if rs.EOF then
          strSQL = "INSERT INTO NYHEDSBREV (navn, email, dato) VALUES ('" & navn & "','" & email & "',#" & FDate(Now) & "#)"
        set rs = Conn.execute(strSQL)
          response.write("<br><br> Indsat (ny bruger)")
    else
        strSQL = "UPDATE NYHEDSBREV set navn = '" & navn & "', dato = #" & FDate(Now) & "# WHERE email = '" & email & "'"
        set rs = Conn.execute(strSQL)
        response.write("<br><br>Opdateret (eksisterende bruger)")
    end if
    Conn.close
end function
Avatar billede zeusdk Nybegynder
01. april 2002 - 14:59 #3
>Linien LCID = 1030 virker ikke på SQL-sætninger.
Den har da virket fint indtil nu, men tak alligevel :-)

Du glemte forresten at trykkke svar.
Avatar billede zeusdk Nybegynder
01. april 2002 - 14:59 #4
Den har da virket fint indtil nu.... altså på insert-sætningen.
Avatar billede coltau Juniormester
01. april 2002 - 15:17 #5
Linien: LCID = 1030 laver normalt ged i SQL-sætninger til Access netop fordi den formatere Now som DD-MM-YYYY - men Access vil altid have datoer i SQL-sætninger formateret efter MM-DD-YYYY derfor funktionen FDate.

Hvis du har en Acces-database der virker med formatet dd-mm-yyyy i Access så tror jeg at der er mange på eksperten der genre vil vide hvordan du får Acces til at acceptere det format. :-)
Avatar billede zeusdk Nybegynder
01. april 2002 - 15:33 #6
Med hjælp fra dig blev de manglede plinger indsat, og sætningen virker nu:
strSQL = "UPDATE NYHEDSBREV set navn = '" & navn & "', dato = '" & Now() & "' WHERE email = '" & email & "'"

Mht. now() så fandt jeg koden på:
http://www.eksperten.dk/spm/189380
Avatar billede coltau Juniormester
01. april 2002 - 16:18 #7
Ja de snakker og snakker - men hold lige øje med om det er det rigtige udtræk du får når du henter data fra DB'en på baggrund af dato. Det er kun et godt råd.
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