---
title: "2 funktioner"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/128655-2-funktioner"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SannyW"
published: "2005-05-21T15:05:41.000Z"
updated: "2005-05-22T17:47:45.000Z"
replies: 9
views: 325
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/128655-2-funktioner"
---

# 2 funktioner

## #1 — SannyW, 2005-05-21T15:05Z

Hej!

Har två funktioner som borde gå att få till en, problemet är att jag inte fattar hur jag skall göra. Har letat i forumet men hjärnan får inte ihop 1+1 idag.

```
Function sNamn(dMonth,iCounter)
  If dMonth = 1 And iCounter = 1 Then sNamn = "Namnsdag"
```

 

```
Function cNamn(dMonth,iCounter)
  If dMonth = 1 And iCounter = 1 Then cNamn = "Citat"
```

 

Detta funkar INTE men tanke mässigt skulle det väl se ut så här:

```
Function sNamn, cNamn(dMonth,iCounter)
  If dMonth = 1 And iCounter = 1 Then 
      sNamn = "Namnsdag" 
      cNamn = "Citat"
```

Hoppas någon har tid och lust att hjälpa mig med ovanstående, får gärna förklara också. 

Tack på förhand.

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

## #2 — Mc Fetto, 2005-05-21T15:10Z

har du inte bara missat 

```
End if
```

som en sista rad?

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

## #3 — SannyW, 2005-05-21T15:27Z

Nä, får följande fel:

Kompileringsfel i Microsoft VBScript (0x800A03ED)
'(' förväntas.

Function sNamn,cNamn(dMonth,iCounter)

Om jag gör två funktioner av dem som ovan separat så funkar det, men inte då jag försöker slå ihop dem.

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

## #4 — Guffa, 2005-05-21T15:29Z

En funktion kan bara ha ett namn och ett returvärde. Vad är det du försöker åstadkomma egentligen, hur hade du tänkt att använda den?

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

## #5 — SannyW, 2005-05-21T15:38Z

Detta funkar:

```
Function sNamn(dMonth,iCounter)
  If dMonth = 1 And iCounter = 1 Then sNamn = "Nyårsdagen" 
  If dMonth = 1 And iCounter = 2 Then sNamn = "Svea"
End Function

Function cNamn(dMonth,iCounter)
  If dMonth = 1 And iCounter = 1 Then cNamn = "Alla vägar bär till rom." 
  If dMonth = 1 And iCounter = 2 Then cNamn = "Jag har märkt att mäniskor som kommer sent ofta är bra mycket gladare än de som får vänta på dem"
End Function
```

Sedan skriver jag ut det på en annan sida med:

```
Dim dDate, dYear, dMonth, iCounter, sOutput, sOutput2
Dim sOutput3

dDate = Date()

dMonth = Month(dDate)
iCounter = Day(dDate)

  If CInt(Month(Date) & Day(Date)) = CInt(dMonth & iCounter) Then
  
  sOutput =  sNamn(dMonth,iCounter) & "<br>" & VbCrLf
  sOutput2 = sNamn(dMonth,iCounter+1) & VbCrLf
  sOutput3 =  cNamn(dMonth,iCounter+1) & VbCrLf

End If
```

Men jag tycker det blir lite onödigt att behöva skriva "samma" information 2 ggr.

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

## #6 — Guffa, 2005-05-21T16:35Z

Du kan göra en subrutin där du sätter värdena:

Sub GetDayInfo(dMonth, iCounter, sNamn, cNamn)

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

## #7 — SannyW, 2005-05-22T02:12Z

Har knåpat lite men är inte riktigt med på hur Guffa menar att jag skall kunna använda sNamn och cNamn.

Fått fram följande:

```
<%
Sub GetDayInfo(dMonth, iCounter)

  If dMonth = 5 And iCounter = 22 Then 

	sNamn = "Nyårsdagen" 
	oNamn = "Alla vägar bär till rom"

  End if

End Sub

dDate = Date()

dMonth = Month(dDate)
iCounter = Day(dDate)

GetDayInfo dMonth,iCounter

Dim sNamn, oNamn

Response.write sNamn
Response.write "<br>"
Response.write oNamn

%>
```

Nu funkar det som skall vara samma dag, men möjligheten att också visa morgondagens t ex sNamn funkar inte. Alltså iCounter+1

Går detta att lösa?

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

## #8 — SannyW, 2005-05-22T02:26Z

Har hittat en lösning, men det känns som det finns ett bättre sätta att lösa problemet.....kommentera gärna om det borde lösas annorlunda.

skrev till efter sista Response.write:

```
GetDayInfo dMonth,iCounter+1
Response.write sNamn
Response.write "<br>"
Response.write oNamn
```

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

## #9 — Guffa, 2005-05-22T14:33Z

Nu använder du globala variabler som du sätter värden på i subrutinen. Det är inte så bra eftersom det blir spaghettikod.

Att anropa subrutinen med iCounter+1 fungerar inte alls bra. Ifall det vore den 31:e maj så skulle du anropa subrutinen med datumet den 32:a maj... Skicka in datumet i subrutinen istället. Använd DateAdd för att lägga på en dag, så får du ett korrekt datum.

```
<%
Sub GetDayInfo(ByVal datDay, ByRef strName, ByRef strSaying)
	Dim lngMonth, lngDay

	lngMonth = Month(datDay)
	lngDay = Day(datDay)

	If lngMonth = 5 And lngDay = 22 Then 
		strName = "Nyårsdagen" 
		strSaying = "Alla vägar bär till rom"
	End If
End Sub

Dim strName, strSaying

GetDayInfo Date(), strName, strSaying
Response.Write strName
Response.Write "<br>"
Response.Write strSaying

GetDayInfo DateAdd("d", 1, Date()), strName, strSaying
Response.Write strName
Response.Write "<br>"
Response.Write strSaying
%>
```

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

## #10 — SannyW, 2005-05-22T17:47Z

Tack för hjälpen Guffa, du har ju så rätt i det du säger om datumen och iCounter+1. Din omskrivning funkar perfekt och varit till stor hjälp. 

Passar även på att tacka för intressant läsning på 

[Guffa.com](http://guffa.com.loopiadns.com/Programming_article.asp)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/128655-2-funktioner
