---
title: "Uppdatera textfält"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/163818-uppdatera-textfält"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "devotion"
published: "2007-08-24T22:17:40.000Z"
updated: "2007-08-26T06:47:27.000Z"
replies: 10
views: 477
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/databaser-sql/163818-uppdatera-textfält"
---

# Uppdatera textfält

## #1 — devotion, 2007-08-24T22:17Z

Hej!

Jag har en kod som ser ut så här:

```
sNote = "Priset justerades med: " & ConvertToDecimal(nPercent) & "%, " & Date & " /" & Application.CurrentUser.Sign & VbCrLf & ""
	sSQL = "UPDATE [tblArticle] SET [Price] = [Price] * " & fPercentValue & ", [Modified] = GETDATE(), [Note] = [Note] + '" & sNote &"'"
```

Dvs jag vill lägga till en rad i \[Note\] vid uppdatering. Note är av typen "Text"

Det går inte, utan jag får felmeddelande enligt biogad bild.

Använder SQL-server

Kan man inte göra så? :)  

Och hur ska man göra istället?

Mvh
Henrik

Bilagor:

- [sql_fel001.jpg](https://www.webforum.nu/a/15717.jpg)

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

## #2 — @nders, 2007-08-25T04:58Z

Google har några olika förslag, här kommer det första:

<http://www.thescripts.com/forum/thread546477.html>

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

## #3 — devotion, 2007-08-25T06:22Z

> **@nders skrev:**
>
> Google har några olika förslag, här kommer det första:
> 
> <http://www.thescripts.com/forum/thread546477.html>

Jag hade faktiskt sökt....

Men hur gör jag för att göra en sql-fråga av:

```
DECLARE @ptrval varbinary(16)
 
 
SELECT @ptrval = TEXTPTR(LOGG)
FROM GAMES
WHERE ID = 21
 
UPDATETEXT GAMES.LOGG @ptrval NULL NULL 'your text'
```

och göra det som min kod var tänkt att göra?

Mvh
Henrik

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

## #4 — @nders, 2007-08-25T06:29Z

Göra en SQL-fråga av? Det är ju en SQL-fråga?
Gör först en update på de övriga fälten du vill uppdatera, kör sedan en modifierad variant av denna kod för att uppdatera ditt textfält.

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

## #5 — devotion, 2007-08-25T07:06Z

> **@nders skrev:**
>
> ... kör sedan en modifierad variant av denna kod för att uppdatera ditt textfält.

Ja, det var det jag undrade över, även om jag uttryckte mig lite oklart...  :)

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

## #6 — @nders, 2007-08-25T07:15Z

Jag har inte använt UPDATETEXT mer än vid något tillfälle tidigare (jag brukar inte använda textfält på detta vis), men jag hade provat något sånt här:

```
DECLARE @ptrval varbinary(16)
 
SELECT @ptrval = TEXTPTR(Note)
FROM tblArticle
WHERE ID = 4711
 
UPDATETEXT tblArticle.Note @ptrval NULL NULL 'det du vill lägga till'
```

Som du ser är det inte så mycket jag ändrat - det hade du nog fixat själv. ;)

[Mer läsning om UPDATETEXT](http://msdn2.microsoft.com/en-us/library/ms189466.aspx)

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

## #7 — devotion, 2007-08-25T19:27Z

Nu har jag pillat vidare lite...

Jag har följande kod:

```
Set Conn=CreateObject("ADODB.Connection")
	Conn.Open Application.sDbConnectionString
	'sSQL=	"DECLARE @ptrval varbinary(16)" &  vbcrlf _
			'& "SELECT @ptrval = TEXTPTR(Note) FROM tblArticle "
	'Conn.Execute sSQL
	'sSQL="UPDATETEXT tblArticle.[Note] @ptrval NULL NULL" & sNote		
	'Conn.Execute sSQL
	sSQL = "UPDATE [tblArticle] SET [Price] = [Price] * " & fPercentValue & ", [Modified] = GETDATE()"
	Conn.Execute sSQL
	Set Conn=Nothing
```

Jag har kommenterat bort lite saker...

Men, först tänkte jag ju bara ändra alla priser i tabellen genom att göra ett påslag med:

```
sSQL = "UPDATE [tblArticle] SET [Price] = [Price] * " & fPercentValue & ", [Modified] = GETDATE()"
```

Men nu, ska jag ju bevara det som står i \[Note\] och lägga på sNote...

Måste inte jag inte loopa igenom alla poster då?

Mvh
Henrik

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

## #8 — @nders, 2007-08-26T06:19Z

> Måste inte jag inte loopa igenom alla poster då?

Jo, det får du nog göra om du ska använda updatetext.

(Hela sql-blocket ska exekveras som en fråga - dela inte upp det.)

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

## #9 — devotion, 2007-08-26T06:29Z

> **@nders skrev:**
>
> (Hela sql-blocket ska exekveras som en fråga - dela inte upp det.)

Jag trodde nog det...

Är lite ringrostig....  :h 

Loopar med Recordset? Du får gärna sparka in mig på rätt spår...

Hur blir det då med det första i SQL-blocket. Ska det köras varje gång?

Mvh
Henrik

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

## #10 — @nders, 2007-08-26T06:34Z

> Hur blir det då med det första i SQL-blocket. Ska det köras varje gång?

Tja, jag antar det... Du hämtar ju en pekare till textblocket för den specifika posten - så du borde vara tvungen att skaffa dig en ny pekare för varje post.

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

## #11 — devotion, 2007-08-26T06:47Z

hmmm.... :e  

Har fått det att funka med en post...

```
Set Conn=CreateObject("ADODB.Connection")
	Conn.Open Application.sDbConnectionString
	sSQL=	"DECLARE @ptrval varbinary(16)" &  vbcrlf _
			& "SELECT @ptrval = TEXTPTR(Note) FROM tblArticle " &  vbcrlf _
			& "UPDATETEXT tblArticle.[Note] @ptrval NULL NULL '" & sNote & "'" & vbcrlf _	
			& "UPDATE [tblArticle] SET [Price] = [Price] * " & fPercentValue & ", [Modified] = GETDATE()"
			'msgBox sSQL
	Conn.Execute sSQL
	Set Conn=Nothing
```

Då är det bara loopningen kvar...  :)  

Mvh
Henrik

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/163818-uppdatera-textfält
