---
title: "'End' förväntas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/160649-end-förväntas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "J07"
published: "2007-05-24T07:25:26.000Z"
updated: "2007-05-30T05:57:18.000Z"
replies: 15
views: 699
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/160649-end-förväntas"
---

# 'End' förväntas

## #1 — J07, 2007-05-24T07:25Z

Får detta felet. Har prövat med en xtra End if både innan ElseIf raden och efter ElseIf blocket men om jag lägger till End if så står det att function förväntas istället.

**Kompileringsfel i Microsoft VBScript (0x800A03F6)
'End' förväntas.
/stalbolaget/extranet/ssi/common_functions.ssi, line 129
ElseIf (Cstr(i_item) = "1b") Then**

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

## #2 — @nders, 2007-05-24T07:27Z

Du måste visa mycket mer kod, eftersom det är koden runtomkring som gör att det inte fungerar.

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

## #3 — headbug, 2007-05-24T07:27Z

Skicka med hela koden så kan vi förhoppningsvis hitta den felande biten åt dig!

/r Äsch :)

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

## #4 — J07, 2007-05-24T07:49Z

End förväntas och raden i fetstilt står då angiven också:

```
Function getPrice(i_item, i_selectedAltId, i_priceIndex)

 Dim myDate
 myDate = (RS_reportInfo.Fields.Item("weight_date").Value)   
   
 dim alt1, alt2, alt3, altValue
 dim price
 
 price = 0 
 '

 If (Cstr(i_item) = "1") Then
'
If myDate < CDate("2007-05-01") Then

  alt1 = 1
  alt2 = 2
  alt3 = 3
  '

  if (i_selectedAltId = 1) then
   altValue = alt1
  elseIf (i_selectedAltId = 2) then
   altValue = alt1 + alt2
  elseIf (i_selectedAltId = 3) then
   altValue = alt1 + alt3
  end if  
  
Else

  alt1 = 2
  alt2 = 2
  alt3 = 3
  '
  if (i_selectedAltId = 1) then
   altValue = alt1
  elseIf (i_selectedAltId = 2) then
   altValue = alt1 + alt2
  elseIf (i_selectedAltId = 3) then
   altValue = alt1 + alt3
  end if  

End if 

  If (hasValue(i_priceIndex)) then
   '

   price = round(CDbl(i_priceIndex) + altValue,0)
  End if
 End if

'--------------------------------------------------------------------------	

	[B]ElseIf (Cstr(i_item) = "1b") Then[/B]	
		'
		alt1 = 1
		alt2 = 3
		alt3 = 5
		'
	
		if (i_selectedAltId = 1) then
			altValue = alt1
		elseIf (i_selectedAltId = 2) then
			altValue = alt2
		elseIf (i_selectedAltId = 3) then
			altValue = alt3
		end if
		
		If (hasValue(i_priceIndex)) then
			'
			' Calculate price		
			price = round((CDbl(i_priceIndex) * 1) + altValue, 2)
		End if
```

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

## #5 — @nders, 2007-05-24T07:52Z

Koden är rätt hyggligt indenterad, men om du indenterar den ordentligt så ser du nog att du har ett end if som inte hör hemma där det ligger (den som ligger närmast ovanför den långa linjen.)

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

## #6 — J07, 2007-05-24T08:05Z

Tack det stämmer! men sen fick jag: Objekt krävs.: 'RS_reportInfo'
....men det är en annan historia

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

## #7 — Travoni, 2007-05-24T18:25Z

Detta :  

```
Dim myDate
myDate = (RS_reportInfo.Fields.Item("weight_date").Value)
```

Skulle jag inte haft med i funktionen.
Lägg in myDate här: **Function getPrice(i_item, i_selectedAltId, i_priceIndex, myDate)** och ta med den när du kallar på funktionen i stället. :)

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

## #8 — J07, 2007-05-29T09:33Z

Går det inte att ha: myDate = (RS_reportInfo.Fields.Item("weight_date").Value)  i en funktion? det verkar inte så när jag testar

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

## #9 — @nders, 2007-05-29T10:21Z

Det beror på hur funktionen ser ut, och var du skapar recordsetet.

I övrigt: du kan förkorta

```
RS_reportInfo.Fields.Item("weight_date").Value
```

till:

```
RS_reportInfo("weight_date")
```

Parenteserna runt uttrycket är också onödiga.

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

## #10 — J07, 2007-05-29T11:17Z

Detta är en funktion som är inkluderad som ssi fil till en annan sida.
Något blir fel när datum ska kollas...verkar som weight_date ignoreras?

```
Function getPrice(i_item, i_selectedAltId, i_priceIndex)
 Dim myDate
 myDate = RS_reportInfo("weight_date")
   
 dim alt1, alt2, alt3, altValue
 dim price
 
 price = 0 

 If (Cstr(i_item) = "1") Then

If myDate < CDate("2007-05-01") Then

  alt1 = 1
  alt2 = 2
  alt3 = 3

  if (i_selectedAltId = 1) then
   altValue = alt1
  elseIf (i_selectedAltId = 2) then
   altValue = alt1 + alt2
  elseIf (i_selectedAltId = 3) then
   altValue = alt1 + alt3
  end if  
  
Else

  alt1 = 2
  alt2 = 2
  alt3 = 4

  if (i_selectedAltId = 1) then
   altValue = alt1
  elseIf (i_selectedAltId = 2) then
   altValue = alt1 + alt2
  elseIf (i_selectedAltId = 3) then
   altValue = alt1 + alt3
  end if  

End if 

  If (hasValue(i_priceIndex)) then

   price = round(CDbl(i_priceIndex) + altValue,0)
  End if
```

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

## #11 — voigtann1, 2007-05-29T11:22Z

för att en funktion "kan" inte innehålla någon data(missuppfattar inte mig nu någon)
Men en funktion för mig är en "mall" eller har en funktion att göra. Nu försöker du lägga in ett Recordset "weight_date" vilket inte din funktion känner till alls vad det är för något.

Jag hade ändrat din funktion:

```
Function getPrice(i_item, i_selectedAltId, i_priceIndex[b],myDate[/b])
```

och inkludera RS_reportInfo("weight_date") i parametern "myDate

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

## #12 — headbug, 2007-05-29T11:22Z

/r oj ok såg voigts svar...

Jag tor du måste göra en convert på myDate också, har för mig att vbscript struntar i typen på wheight_date. Skriv alltså

```
myDate = CDate(RS_reportInfo("weight_date"))
```

och håll tummarna :)

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

## #13 — @nders, 2007-05-29T11:22Z

Jag tycker det känns konstigt att du ropar på recordset som inte skapas i funktionen. Har du deklarerat (med dim) recordsetet innan du kör funktionen? Får du något felmeddelande? Vad innehåller *weight_date*?

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

## #14 — Travoni, 2007-05-29T11:23Z

Du måste deklarera ditt recordset utanför funktionen, och det är garanterat inte bra i detta fall speciellt om du har din databasanslutning öppen. Därför så borde du lägga värdet utanför, och ta med det när du kallar på funktionen.

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

## #15 — J07, 2007-05-29T11:58Z

Om jag lägger detta i asp filen :

```
 <%
Dim RS_reportInfo
Dim RS_reportInfo_numRows

Set RS_reportInfo = Server.CreateObject("ADODB.Recordset")
RS_reportInfo.ActiveConnection = MM_DSN_s_STRING
RS_reportInfo.Source = "SELECT *  FROM rep"
RS_reportInfo.CursorType = 0
RS_reportInfo.CursorLocation = 2
RS_reportInfo.LockType = 1
RS_reportInfo.Open()

RS_reportInfo_numRows = 0

Dim myDate
 myDate = CDate(RS_reportInfo("weight_date"))
 %>
```

..och sen inkluderar ssi filen där jag kollar med 

```
If myDate < CDate("2007-05-01") Then
```

Men jag får sammma resultat som tidigare....If myDate ignoreras fortfarande

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

## #16 — voigtann1, 2007-05-30T05:57Z

Ge oss mer kod... ditt flöde är för mig mycket oklart.. du ger en ½ skriven funktion.. myDate i din ssi fil är den bara där eller du ta även in det i din funktion?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/160649-end-förväntas
