---
title: "Jämföra...."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/59209-jämföra"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "DiDjo"
published: "2002-11-15T19:23:15.000Z"
updated: "2002-11-17T19:42:11.000Z"
replies: 30
views: 497
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/59209-jämföra"
---

# Jämföra....

_Sida 1 av 2._

## #1 — DiDjo, 2002-11-15T19:23Z

Hejsan hoppsan.... Hur jämför man 2 kollumner??? Jag skulle vilja jämföra när man loggar in och ut och sen spara det i en annan kollumn! I minuter alltså! Skulle gjärna vilja ha en färdig kod! Jag är inte så bra på att göra egna ibland!
Kollumnen som sparar tiden när man loggar in heter "datum" och när man loggar ut heter "datumut"

Permalänk: https://www.webforum.nu/p/59209

## #2 — DiDjo, 2002-11-15T19:48Z

???Går det att göra över huvudtaget???

Permalänk: https://www.webforum.nu/p/855573

## #3 — LarsG, 2002-11-15T19:50Z

Du skall inte spara den typen av beräkningar i en kolumn. Utför dom när du behöver det.

```
q = "select datum,datumut from login where username = '" & replace(Username,"'","''") & "'"
set rs = connect.execute(q)
if  not rs.eof then
    response.write username & " har varit inloggad i " &_
datediff("n",cdate(rs("datum")),cdate(rs("datumut")) & _
" minuter"
end if
```

Permalänk: https://www.webforum.nu/p/855575

## #4 — DiDjo, 2002-11-15T20:04Z

mmm men den skriver väl bara ut hur länge man är online just då??? Jag vill spara de varje gång så får man en total online tid! Men jag tar denna med  :D tackar!

Permalänk: https://www.webforum.nu/p/855581

## #5 — DiDjo, 2002-11-15T20:13Z

Med din kod LarsG fick jag detta fel:

```

Microsoft VBScript runtime error '800a000d' 

Type mismatch: '[string: "2002-11-15 20:34:09 "]' 

/statestik.asp, line 192
```

Ska väl spara in och utloggnings tiden på ett annat sätt än now()

Permalänk: https://www.webforum.nu/p/855584

## #6 — LarsG, 2002-11-15T20:18Z

Ja, det var ju en olikfärgad häst

```
connect.execute "update t " & _
" set online = online + datediff('n',datum,#" & datumut &  _
"#),datumut = #" & datumut & _
"# where username = '" & replace(username,"'","''") & "'"
```

Vacker Access-kod som kan användas vid utloggning. Kom bara i håg att lägga in 0 för kolumnen online när du skapar nya användare.

Permalänk: https://www.webforum.nu/p/855587

## #7 — DiDjo, 2002-11-15T20:27Z

i din senare kod vart felet:

```
Microsoft JET Database Engine error '80040e07' 

Syntax error in date in query expression 'online + datediff('n',datum,##)'. 

/signout.asp, line 11
```

Så här la jag in koden...

```

<!--#include file="conn.asp"-->
<%
username = Request.Cookies("username")

Set rsuser = Server.CreateObject("ADODB.Recordset")
rsuser.open "users WHERE username = '" & username & "'", conn, 3, 3
rsuser("onoff") = false
rsuser("datumut") = Now
rsuser.Update
conn.execute "update users " & _
" set online = online + datediff('n',datum,#" & datumut &  _
"#),datumut = #" & datumut & _
"# where username = '" & replace(username,"'","''") & "'"
  rsUser.close
  set rsUser = nothing
  conn.close
  set conn = nothing
  
  'Set the cookie to nothing
Response.Cookies("username") = ""
Response.Cookies("level") = ""
  
  
Response.Redirect("index.asp")

%>
```

I din första kod vart felet:

```

Microsoft VBScript runtime error '800a000d' 

Type mismatch: '[string: "2002-11-15 21:25:13 "]' 

/statestik.asp, line 192
```

På den gissar jag på att jag ska spara tiden annurlunda än now()

Permalänk: https://www.webforum.nu/p/855593

## #8 — LarsG, 2002-11-15T20:50Z

Det skall räcka med denna kod, det behövs inget recordset alls.

```
conn.execute "update users " & _
" set online = online + datediff('n',datum,now())," &  _
" datumut = now() " & _
" where username = '" & replace(username,"'","''") & "'"
```

Permalänk: https://www.webforum.nu/p/855604

## #9 — DiDjo, 2002-11-16T16:12Z

Så här vart felet:

```
Microsoft JET Database Engine error '80040e10' 

No value given for one or more required parameters. 

/signout.asp, line 11
```

Permalänk: https://www.webforum.nu/p/858855

## #10 — LarsG, 2002-11-16T16:27Z

Då är det något kolumnnamn som inte stämmer med din tabelldefinition. (Jag gissade när jag skrev frågan.)

Permalänk: https://www.webforum.nu/p/858863

## #11 — DiDjo, 2002-11-16T16:57Z

jo! Jag skapade en ny som heter online! Av typen numbers! (Då blir de ju 0 när en ny kommer dit!) Datum finns och datumut! Alla i tabellen users! Username finns också! Jag använder mig inte utav ID!

Permalänk: https://www.webforum.nu/p/858889

## #12 — LarsG, 2002-11-16T17:02Z

Ok

Om du testar

```
q = "update users " & _
" set online = online + datediff('n',datum,now())," &  _
" datumut = now() " & _
" where username = '" & replace(username,"'","''") & "'"
response.write "SQL:" & q 
response.end
```

att köra resultatet av utskriften direkt i Access, vad ger det?

Permalänk: https://www.webforum.nu/p/858893

## #13 — DiDjo, 2002-11-16T17:02Z

hmmmm jag provade att ändra från users till user... då gick de... Men då sa den:

```
Microsoft JET Database Engine error '80040e14' 

Syntax error in UPDATE statement. 

/signout.asp, line 11
```

Raden:

```
conn.execute "update user " & _
```

Permalänk: https://www.webforum.nu/p/858894

## #14 — LarsG, 2002-11-16T17:17Z

Vad blir resultatet av utskriften?

Det kan vara ett problem med reserverade ord, t.ex. user navänds i många dialekter. För att undvika sådant så kan man använda följande syntax

```

update [user] set ...
```

Permalänk: https://www.webforum.nu/p/858898

## #15 — DiDjo, 2002-11-16T17:18Z

aha! Du hade skrivit en tråd mellan! Men jag provade detn skrev ut så här;

```
SQL:update users set online = online + datediff('n',datum,now()), datumut = now() where username = 'KeNNy'
```

En vit sida bara med den texten!

Permalänk: https://www.webforum.nu/p/858899

## #16 — LarsG, 2002-11-16T17:35Z

Jo, eftersom det ligger response.end efteråt så avslutas sidan där.

fungerar den frågan direkt i Access?

Permalänk: https://www.webforum.nu/p/858909

## #17 — DiDjo, 2002-11-16T17:45Z

OJ!!!!!!!! Mitt fel! Hade visst inte laddat upp den modifierade db! Förlåt :(

Men nu är rätt uppe! Den skrev inte in något! Den står fortfarande på 0! Och jag var inne i en minut och 24 sec!

Permalänk: https://www.webforum.nu/p/858914

## #18 — LarsG, 2002-11-16T17:59Z

Du kan ju testa om det är någon post som uppdateras

```
q = "update ..."
connect.execute q,rows,128
if  rows = 1 then
    response.write "1 post uppdaterades "
elseif rows = 0 then
   response.write "Inga poster uppdaterades "
else
   response.write Rows & " poster uppdaterades "
end if
```

En annan sak som du kan kontrollera är om online innehåller null eller 0. Om det ligger null i kolumnen så förblir det null även om man lägger till ett värde.

Du kan hantera det i din updatesats

```
q = "update users " & _
" set online = iif(online is null,0,online) + datediff('n',datum,now())," &  _
" datumut = now() " & _
" where username = '" & replace(username,"'","''") & "'"
```

Permalänk: https://www.webforum.nu/p/858925

## #19 — DiDjo, 2002-11-16T18:07Z

Med den första koden sa den:

```
Microsoft JET Database Engine error '80040e14' 

Syntax error in query. Incomplete query clause. 

/signout.asp, line 13
```

Den andra var precis som innan! Inget hände!
Jag vet att den uppdaterar posterna! För utloggnings tiden ändras och om de e online lr inte!

Permalänk: https://www.webforum.nu/p/858933

## #20 — LarsG, 2002-11-16T18:30Z

Jaha, hur ser värdena i kolumnen datum ut? Uppdateras dom riktigt  vid inloggning eller ligger det null i kolumnen?

Permalänk: https://www.webforum.nu/p/858942

---

Tråden på webben: https://www.webforum.nu/amne/asp/59209-jämföra  
Nästa sida: https://www.webforum.nu/amne/asp/59209-jämföra/page2.md
