Avatar billede timmwillum Nybegynder
07. december 2004 - 23:48 Der er 6 kommentarer og
1 løsning

Problemer med opdatering af dato

Hej alle sammen

Jeg har et problem med at opdatere min access db datofelt. Jeg skriver følgende, som giver fejl:

Set rs2 = conn.Execute("UPDATE tbHits SET Date = " & date() & " WHERE UserId=" & nr & ";")

Har også prøvet med ekstra gnyffer sådan:

    Set rs2 = conn.Execute("UPDATE tbHits SET Date = '" & date() & "' WHERE UserId=" & nr & ";")

Jeg har både prøvet at sætte feltet til et tekstfelt og datofelt, men det går i fisk hver gang, og jeg får "Syntax error in UPDATE statement".

Det skal siges, at det virker fint med opdatering af talfelter. Fx således:

dim tal
tal = 898
Set rs2 = conn.Execute("UPDATE tbHits SET Hits2 = " & tal & " WHERE UserId=" & nr & ";")
Avatar billede sjap Praktikant
08. december 2004 - 00:31 #1
Prøv med et par havelåger:

Set rs2 = conn.Execute("UPDATE tbHits SET Date = #" & date() & "# WHERE UserId=" & nr & ";")
Avatar billede sjap Praktikant
08. december 2004 - 00:35 #2
Måske skal datoen også formateres til amerikansk datoformat

Set rs2 = conn.Execute("UPDATE tbHits SET Date = #" & Format(date(), "m/d/y") & "# WHERE UserId=" & nr & ";")

Hvis jeg ikke huske helt forkert.
Avatar billede terry Ekspert
08. december 2004 - 08:19 #3
when setting/inserting dates then you should use '' and not # which is used when selecting. Its very likley the date format which is giving problems though and I prefer to use
Format(date(), "yyyy-mm-dd")
Avatar billede timmwillum Nybegynder
08. december 2004 - 20:17 #4
Tak for svarene ... som desværre ikke hjælper :-(

Jeg har prøvet at lave formatet på datofeltet om i db - forskellige formater. Og tilsvarende tilpasset formatet i asp-koden med en funktion således:

function DKdato(datDato)
    ' **** dags dato på dansk ****
    DKdato = day(datDato) & "-" & month(datDato) & "-" & year(datDato)
    end function


Herefter opdaterer jeg db med følgende:

    Set rs2 = conn.Execute("UPDATE tbHits SET Date = '" & DKdato(date())  & "' WHERE UserId=" & nr & ";")


Jeg har efterfølgende fået ovennævnte til at virke, hvis jeg laver feltet om til et tekstfelt ... men jeg ville jo helst arbejde med et datoflet, så jeg efterfølgende har mulighed for at "regne" på datoerne.

Nogle gode idéer ellers ...???
Avatar billede terry Ekspert
08. december 2004 - 20:28 #5
Try hardcoding the date until you find which format works!
and place date in[] [date] is a reserved word!


you set tal to 898 but then use nr in the SQL!!! is this correct?

("UPDATE tbHits SET [Date] = '2004-12-08' WHERE UserId = " & tal )
Avatar billede timmwillum Nybegynder
08. december 2004 - 21:19 #6
Hej igen Terry

Du skal ikke lade dig forvirre af "tal". Det var bare en mellemfaldende løsning i et desperat forsøg på at få skidtet til at virke.

MEN ... gæt hvad. Dit sidste forslag virkede. Tænk at jeg har brugt al den tid forgæves, bare fordi jeg ikke huskede på en af grundreglerne ... "hold dig væk fra reserverede ord".

Jeg har efterfølgende ændret Date til HitsDate i min db, og nu virker det både med og uden hardcoding.

Mange tak for din hjælp (også tak til sjap for forsøget)
Avatar billede terry Ekspert
08. december 2004 - 21:22 #7
selv tak
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