---
title: "Update datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10223-update-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "fredrik99"
published: "2001-06-23T09:20:00.000Z"
updated: "2001-06-24T15:56:00.000Z"
replies: 13
views: 321
page: 1
pages: 1
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/10223-update-datum"
---

# Update datum

## #1 — fredrik99, 2001-06-23T09:20Z

Jag använder denna kod för att uppdatera en datumpost. Men datumen i posten uppdateras inte.

```
<%
Set RSs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM admin WHERE ID = " & session("id") & " "
RSs.Open SQL, Connection, adOpenStatic, adLockOptimistic

RSs("datum_senast") = getdate()
RSs.Update
RSs.Close
%>
```

Någon?

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

## #2 — PatrikB, 2001-06-23T09:37Z

När man använder sig av uppdatering genom ADODB.Recordset, vilket inte är det optimala vid uppdatering, så måste man använda sig av .UpdateBatch istället för .Update

.Update lägger till en ny post
.UpdateBatch uppdaterar det fältet/posten som recordsetet befinner sig på

cya,
PatrikB

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

## #3 — fredrik99, 2001-06-23T10:11Z

Vilket är det optimala? Gärna med något exempel.

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

## #4 — fredrik99, 2001-06-23T11:20Z

Ändrade lite, men får det inte att funka ändå :(

```
SQL = "UPDATE admin SET datum_senast = #" & now & "#  and antal_logg = (antal_logg + 1) and inloggad = true WHERE id = '" & session("id") & "'"
Connection.execute SQL
```

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

## #5 — @nders, 2001-06-23T11:30Z

borde inte id vara ett talfält i tabellen? då skall du inte ha apostrofer runt. annars kan man ju fråga sig om det verkligen finns ett värde i session("id")?

får du något felmeddelande?

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

## #6 — fredrik99, 2001-06-23T11:46Z

Koden ser som följande:

```
<% response.buffer = TRUE %>
<!--#include file="functions.inc"-->
<%
If Session("fornamn")="" Then

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "admin"
 	
SQLStmt = "SELECT * FROM admin Where user = '" & FixaTecken(Request.Form("user")) & "' AND passw = '" & FixaTecken(Request.Form("passw")) & "'"
Set RS = Connection.Execute(SQLStmt)

If RS.EOF Then

Session("fel") = "Du har angivit ett felaktigit lösenord"
Response.Redirect("default.asp")

Else

Session("id") = RS("id")
Session("fornamn") = RS("fornamn")
Session("efternamn") = RS("efternamn")	
Session("user") = RS("user")
Session("passw") = RS("passw")
Session("level") = RS("level")

RS.Close
		
SQL = "UPDATE admin SET datum_senast = #" & now & "#  and antal_logg = (antal_logg + 1) and inloggad = true WHERE id = '" & session("id") & "'"
Connection.execute SQL

Connection.Close	
Response.Redirect "access.asp"
End If
End If
%>
```

Jag får detta felmsg:
Feltyp:

```
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/0/html/admin_test/formcheck.asp, line 29
```

rad 29:

```
Connection.execute SQL
```

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

## #7 — PatrikB, 2001-06-23T12:03Z

Ändra följande:

```
WHERE id = '" & session("id") & "'"
```

till detta:

```
WHERE id = " & session("id")
```

antar att id är av typen räknare/tal i en access db och då ska inga enkelfnuttar finnas runt värdet. Enkelfnuttar endast runt text-värden.

cya,
PatrikB

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

## #8 — @nders, 2001-06-23T12:03Z

> borde inte id vara ett talfält i tabellen? då skall du inte ha apostrofer runt.

alltså:

```
SQL = "UPDATE admin SET datum_senast = #" & now & "# and antal_logg = (antal_logg + 1) and inloggad = true WHERE id = " & session("id")
```

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

## #9 — fredrik99, 2001-06-23T12:24Z

Nu funkar det till en "liten del", inget felmsg kommer upp :) men inget förs in i databasen :(

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

## #10 — PatrikB, 2001-06-23T16:27Z

Testa denna:

```
SQL = "UPDATE admin SET datum_senast = #" & now & "#, " & _
	"antal_logg = antal_logg + 1, " & _
	"inloggad = true WHERE id = " & session("id")
```

@nders:
Såg det jag oxå ... men fredrik uppmärksammade det inte .... =(

cya,
PatrikB

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

## #11 — fredrik99, 2001-06-23T17:20Z

Nu funkar det :)
Tack så mycket Patrik och Anders :-)

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

## #12 — Herman, 2001-06-23T20:14Z

> När man använder sig av uppdatering genom ADODB.Recordset, vilket inte är det optimala vid uppdatering, så måste man använda sig av .UpdateBatch istället för .Update
> .Update lägger till en ny post
> .UpdateBatch uppdaterar det fältet/posten som recordsetet befinner sig på

Fel, det är inte alls på det viset. Anledningen till att det inte fungerar för fredrik99 är ngt annat. Troligen hur Recordsetet öppnas.

Lägga till nya poster görs med metoden rs.AddNew

Prova:

```
RSs.Open SQL, Connection, adOpenDynamic, adLockOptimistic
```

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

## #13 — PatrikB, 2001-06-24T10:08Z

Jo, visst läggs de till med .AddNew MEN tillägget sker inte förrän du kör .Update
Om du nu vill uppdatera en post som redan finns i recordsetet kan du inte använda dig av .Update utan måste använda dig av .UpdateBatch som uppdaterar den post du står på i recordsetet.

cya,
PatrikB

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

## #14 — emission, 2001-06-24T15:56Z

Nope, det stämmer inte.

UpdateBatch används om du har modifierat flera rader i recordset, utan att köra en Update. Update uppdaterar bara den rad som pekaren står på.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/10223-update-datum
