---
title: "Update"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/88446-update"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "hatti"
published: "2003-10-14T08:38:47.000Z"
updated: "2003-10-14T13:02:03.000Z"
replies: 7
views: 286
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/88446-update"
---

# Update

## #1 — hatti, 2003-10-14T08:38Z

Har problem med att göra en update det som finns i fältet förs´vinner men inget nytt läggs till vad gör jag för fel??

\<!-- #include file="adovbs.inc" --\>

\<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("forumet.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select \* From personligt Where ID=" &Request.QueryString("id")
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet("description") = Request.Form("description")
		

	RecSet.Update
RecSet.Close

Connect.Close

Set RecSet = nothing
Set Connect = nothing

Response.Redirect "forum.asp"

%\>

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

## #2 — @nders, 2003-10-14T08:41Z

Tja, det kan vara så att du har angett fel formulärfält vid uppdateringen eller att du glömt att sätta metoden till post i formuläret.

Använd \[kod\]-taggar när du postar kod, så blir den lättare för oss att läsa.

Mvh

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

## #3 — hatti, 2003-10-14T09:06Z

löste det hade satt formulärfältet efter textboxen lite klantigt men det var tackvare dig jag märkte det tack

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

## #4 — m_soderlund, 2003-10-14T09:08Z

Förutom @nders svar, så kan följande kod vara att föredra:

```
<!-- #include file="adovbs.inc" --> 

<% 
Function fix(str)
str = Replace(str,"'","''")
fix = str
End Function

Dim Connect, SQL
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("forumet.mdb")&";" 

SQL = "UPDATE personligt SET description = '" & fix(Request.Form("description")) & "' WHERE Id = " & fix(Request.Querystring("id"))

Connect.Execute(SQL)

Connect.Close  : Set Connect = nothing 
Response.Redirect "forum.asp" 
%>
```

Jag använder inget Recordset, vilket är bättre för prestandan, plus att jag eliminerar eventuella felmeddelanden som kan komma av att det finns '.tecken i description från formuläret, samt i querystringen. :)

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

## #5 — Engine^, 2003-10-14T09:10Z

Ett annat sätt att göra samma uppdatering på

```
<!-- #include file="adovbs.inc" --> 

<% 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("forumet.mdb") 

Uppdatera = "UPDATE personligt SET description = '" & Replace(Request.Form("description"), "'", "''") & _
            "' WHERE ID = " & Request.QueryString("id")

Connect.Execute Uppdatera, , adExecuteNoRecords

Connect.Close 
Set Connect = nothing 

Response.Redirect "forum.asp" 
%>
```

Använder du den här metoden, så bör du få ett tydligare felmeddelande om det är frågan det är fel på. Det ska dock fungera lika bra att använda *Recordset.Update*.

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

## #6 — m_soderlund, 2003-10-14T09:17Z

Engine^s kod är att föredra, men använd min funktion *fix* på description. :) Det blir lättare i slutändan när du sen uppdaterar fler fält, då slipper man skriva Replace(.....) en massa gånger, och kan återanvända fix().
Dessutom kan det vara bra att kolla ifall om Id är numeriskt, annars blir det ett felmeddelandet till. Och slutligen - att inkludera hela adovbs.inc för en konstant är väl inte så bra, varför inte bara lägga till 128 i stället för adExecuteNoRecords och skippa inkluderingen av adovbs.inc? ;)

```
<%
Function fix(str)
str = Replace(str,"'","''")
fix = str
End Function

Dim Connect, Uppdatera, Id

Id = Request.Querystring("id")
If Not IsNumeric(id) Then
Response.Write("Id måste vara numeriskt")

Else
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("forumet.mdb") 

Uppdatera = "UPDATE personligt SET description = '" & fix(Request.Form("description")) WHERE ID = " & id

Connect.Execute Uppdatera,, 128

Connect.Close : Set Connect = nothing 

Response.Redirect "forum.asp" 
End If

%>
```

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

## #7 — niko, 2003-10-14T11:26Z

Att definiera om den inbyggda funktionen [Fix](http://msdn.microsoft.com/library/en-us/script56/html/vsfctInt.asp?frame=true) kan ge rätt så svårfunna buggar den dag man kommer på att inkludera den i annan kod. Mindre lyckat namn, alltså.

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

## #8 — m_soderlund, 2003-10-14T13:02Z

> **niko skrev:**
>
> Att definiera om den inbyggda funktionen [Fix](http://msdn.microsoft.com/library/en-us/script56/html/vsfctInt.asp?frame=true) kan ge rätt så svårfunna buggar den dag man kommer på att inkludera den i annan kod. Mindre lyckat namn, alltså.

Ajdå, det var inte så lyckat. Tack för uppmärksamheten! :)

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

---

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