---
title: "jämföra uppdragsnummer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/140148-jämföra-uppdragsnummer"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2006-01-01T16:24:43.000Z"
updated: "2006-01-09T23:23:08.000Z"
replies: 7
views: 526
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/140148-jämföra-uppdragsnummer"
---

# jämföra uppdragsnummer

## #1 — devotion, 2006-01-01T16:24Z

:h 

Hehe.. bara jag igen....

Följande kod loopar ut information från en tabell och skriver till en annan.

```
'Loopa ut informationen för de uppdragen som skall slås ihop
For i = 1 To Request.Form("checkTask").Count
		
'Hämta information från vart och ett av uppdragen
iTaskId = cLng(request.form("checkTask")(i))
		
'SQL-fråga för att hämta uppdraget i databasen
sSQL = "SELECT * FROM tblTask WHERE Id = " & iTaskId & " ORDER BY ID"
Set objRS = objConn.Execute(sSQL)		
		

'Tilldela värden till variablerna
sTaskNr = objRS("TaskNr")

'Göra jämförelser mm

'Skriva till databasen
sSQL = "UPDATE ..."

Next
```

Om uppdragsnumrena är samma dvs sTaskNr är lika så fungerar det ju fint.

Men man kan ju sammanfoga olika uppdrgasnumemr dvs sTasknr skiljer sig.

Nu till frågan.
Hur skulle man kunna jämföra sTaskNr i loopen och om de skiljer sig skriva ett nytt nummer efter loopen

```
For i ....

sTaskNr = to2005099
sTaskNr = to2005100

'aha olika uppdragsnummer skapa en ny variabel to2005099_ny

'Skriv in informationen i databasen
sSQL = UPDATE..."

Next

'Skriv in det nya uppragsnumret till databasen

sSQL = "UPDATE..."
```

Hoppas ni fattar...

Tack på förhand

Mvh
henrik

**Edit** för komplett kod se; <http://www.webforum.nu/showthread.php?p=1137341#post1137341>

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

## #2 — @nders, 2006-01-02T19:40Z

> Hoppas ni fattar...

Jag förstår nog inte riktigt. Exakt vad är problemet? Vilka uppdragsnummer är det du vill jämföra?

Mvh

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

## #3 — devotion, 2006-01-08T21:44Z

hmmmmm....

Är jag så dålig på att förklara???

Henrik

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

## #4 — emission, 2006-01-08T23:25Z

```
'Loopa ut informationen för de uppdragen som skall slås ihop
iCount=Request.Form("checkTask").Count
TaskIdList=""
'Egentligen kan man hämta en färdig kommaseparerad sträng från request.form("checkTask"), men då får vi ingen typkontroll. Man skulle kunna använda en regexp också.
For i = 1 To iCount
   TaskIdList=TaskIdList &  cLng(request.form("checkTask")(i))
   if i<iCount then TaskIdList=TaskIdList & ","
Next
		
'SQL-fråga för att hämta uppdrage[b]n[/b] i databasen
sSQL = "SELECT * FROM tblTask WHERE Id IN (" & TaskIdList & ")"
Set objRS = objConn.Execute(sSQL)		
		
'Behandla hela klabbet på en gång. Ännu hellre, om möjligt, genom att göra "UPDATE blablabla WHERE Id IN ..."
```

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

## #5 — devotion, 2006-01-09T19:20Z

Aha!
Jag är nog dålig på att förklara...  :r  men du har givit mig lite ideér ia af och det är bra...

Jag har använt mig av delar av din kod....

```
	'Loopa ut informationen för de uppdragen som skall slås ihop
	iCount=Request.Form("checkTask").Count
	
	'Nollställa sTaskNrList
	sTaskNrList=""

	For i = 1 To iCount
		
		'Hämta information från vart och ett av uppdragen
		iTaskId = cLng(request.form("checkTask")(i))
				
		'SQL-fråga för att hämta uppdraget i databasen
		sSQL = "SELECT * FROM tblTask WHERE Id = " & iTaskId & " ORDER BY ID"
		Set objRS = objConn.Execute(sSQL)		
		
		'Avgöra om uppdraget har samma uppdragsnummer
		sSQL = "SELECT TaskNr FROM tblTask WHERE Id = " & iTaskId
		Set objRS2 = objConn.Execute(sSQL)
		
		sCompereTaskNr = "" & objRS2("TaskNr")
		
		objRS2.Close
		Set objRS2 = Nothing
					
		sTaskNrList = sTaskNrList & sCompereTaskNr
		if i < iCount then sTaskNrList = sTaskNrList & ","

		'Tilldela värden till variablerna
```

Resultatatet blir en Kommaseparerad lista på **TaskNr** i variabeln **sTaskNrList**

då känns det som jag kommit lite på vägen...

Följdfrågan blir då:

Går det att göra något med variabeln sTakNrList? Dvs kan man göra en jämförelse..

att

```
Om de kommaseparerade värdena är lika then variabeln blnDifferentTaskNr = False
```

Förstår ni vad jag är ute efter?   :)

Mvh
henrik

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

## #6 — Peter S, 2006-01-09T22:51Z

Använd split() och sedan (typ):

```
dim arr, i
arr = split(replace(sTaskNrList, " ", ""), ",")

if ubound(arr) > 0 then
  dim equal
  equal = true

  for i = 1 to ubound(arr)
    if arr(0) <> arr(i) then
      equal = false
      exit for
    end if
  next

  if not equal then
    'värdena ej lika
  else
    'värdena lika
  end if
end if
```

  :)

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

## #7 — devotion, 2006-01-09T23:19Z

Hej!  :)  

Dåså, då kanske vi kan avsluta den här tråden...

Tack för all hjälp. tipps och ideér...

Det visade sig att lösningen inte var så svår, jo det är klart, Peter S kod hade jag inte klurat ut.... Men den kommaseparerade strängen fanns redan i koden... Men tack emission! Du fick mig att tänka till...

Lösningen ser ut så här:
I FOR NEXT delen som loopar igenom alla uppdrag ligger denna koden:

```
'Bygga en kommaseparerad sträng med de sammanslagna uppdragsnumrena 
sTaskJoined = sTaskJoined & sTaskNr & ", "
```

Denna strängen använder jag sedan eftter loopen för att kontrollera om de olika uppdragen i strängen är lika eller olika.

```
	'Skapa kommaseparerad sträng med uppdragsnummer, samt ta bort det sista kommat.
	if len(sTaskJoined) > 2 then sTaskJoined = left(sTaskJoined, len(sTaskJoined)-2)
	
	dim arr
	arr = split(replace(sTaskJoined, " ", ""), ",")

	blnDifferentTaskNr = False
	
	if ubound(arr) > 0 then
	  for i = 1 to ubound(arr)
		if arr(0) <> arr(i) then
		  blnDifferentTaskNr = True
		  exit for
		end if
	  next
	end if
```

värdet på blnDifferentTaskNr kan jag sedan använda vidare i min kod...

Det här var ett sätt att göra det på... Har någon synpunkter eller ideer lyssnar jag gärna

Mvh
henrik

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

## #8 — Peter S, 2006-01-09T23:23Z

Då kan vi förenkla en aning:

```
sTaskJoined = sTaskJoined & sTaskNr & "," 

	'Skapa kommaseparerad sträng med uppdragsnummer, samt ta bort det sista kommat.
	if len(sTaskJoined) > 2 then sTaskJoined = left(sTaskJoined, len(sTaskJoined)-2)

	dim arr
	arr = split(sTaskJoined, ",")

	[b]blnDifferentTaskNr = False[/b]
	
	if ubound(arr) > 0 then
	  for i = 1 to ubound(arr)
		if arr(0) <> arr(i) then
		  blnDifferentTaskNr = True
		  exit for
		end if
	  next
	end if

	'använd blnDifferentTaskNr
```

  :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/140148-jämföra-uppdragsnummer
