---
title: "Ogiltigt proceduranrop eller argument.: 'Mid'"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12826-ogiltigt-proceduranrop-eller-argument-mid"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "mikul"
published: "2001-11-24T21:31:00.000Z"
updated: "2001-11-26T00:33:00.000Z"
replies: 28
views: 1326
page: 1
pages: 2
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/12826-ogiltigt-proceduranrop-eller-argument-mid"
---

# Ogiltigt proceduranrop eller argument.: 'Mid'

_Sida 1 av 2._

## #1 — mikul, 2001-11-24T21:31Z

hej.
jag får detta felmedelandet:
Körningsfel i Microsoft VBScript fel '800a0005' 
Ogiltigt proceduranrop eller argument.: 'Mid' 
/asp/UploadScript2.asp, rad 15 

när jag kör följande kod:

```
'##### Mickes stuff #####
	
	Function namn(str)
		Dim pos, fromend
		str = Trim(str)
		pos = inStrRev(str,"/")
		fromend = len(str) - pos
		namn = Mid(str,fromend)
	End Function

	Sub add(Fil)
		Dim Conn
		Set Conn = Server.Createobject("Adodb.Connection")
		Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("kas/reportage/db.mdb")
		Conn.Execute ("Insert into bilder(bild,rubrik) Values('" & Fil & "','rubrik')")
		Conn.Close
		Set Conn = Nothing
	End Sub
	
	If Len(Upload.Form("FILE1")) >= 1 Then
		Call add(Namn(Upload.Form("FILE1")))
	ElseIf Len(Upload.Form("FILE2")) >= 1 Then
		Call add(Namn(Upload.Form("FILE2")))
	ElseIf Len(Upload.Form("FILE1")) <= 1 Then
		Call add(Namn(Upload.Form("FILE3"))) 
	End If
	
'##### Mickes stuff slutar #####
```

vad är det för fel?

/ Mikul

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

## #2 — jorgen, 2001-11-24T21:39Z

Hej,

Du använder den fel, funktionen Mid() ska se ut så här:

```
variable = Mid("sträng", startpunkt, antal)
```

exempel:

```
variable = Mid("jag heter jörgen", 5, 5)
```

returnerar "heter".

mvh Jörgen :)

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

## #3 — mikul, 2001-11-24T21:44Z

Hej Jörgen.
om man vill att den ska var hur lång som helst då??
hur gör man då??

/ Mikul

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

## #4 — jorgen, 2001-11-24T21:47Z

Hur lång som helst?

Vad vill du göra?

mvh Jörgen :)

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

## #5 — mikul, 2001-11-24T21:49Z

jag menar så att den inte har nån begränsad längd...
eller blir man tvungen att skriva 99999...osv??

/ Mikul

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

## #6 — jorgen, 2001-11-24T21:52Z

Varför ska du då använda mid(), återigen vad vill du åstadkomma?

mvh Jörgen :)

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

## #7 — mikul, 2001-11-24T21:53Z

det har ju funkat förut för mig...
att bara skriva:

```
Mid(strtext,5)
```

/ Mikul

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

## #8 — LarsG, 2001-11-24T21:54Z

Tredje parametern till mid kan utelämnas.

Felet beror nog på att argument str som du skickar in till funktionen namn är tom eller null.

```
Function namn(str)
if isnull(str) or len(str) = 0 then
   name = ""
   return
end if
Dim pos
str = Trim(str)
pos = inStrRev(str,"/")
namn = Mid(str,pos+1)
End Function
```

Jag ändrade lite annat, då det den position som instrrev returnerar räknas från början.

Den här raden

```
ElseIf Len(Upload.Form("FILE1")) <= 1 Then
```

borde väl vara 

```
ElseIf Len(Upload.Form("FILE1")) >= 1 Then
```

Det är nog därför det kommer in en tom sträng till funktionen namn.

red: lite småfel.

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

## #9 — mikul, 2001-11-24T21:56Z

jag vill göra om 
C:\\mapp\\mapp2\\telefonlista.txt
till 
Telefonlista.txt
och det försöker jag göra med hjälp av den här koden:

```
Function namn(str)
Dim pos, fromend
str = Trim(str)
pos = inStrRev(str,"/")
fromend = len(str) - pos
namn = Mid(str,fromend)
End Function
```

/ Mikul

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

## #10 — mikul, 2001-11-24T21:59Z

ElseIf Len(Upload.Form("FILE1")) \<= 1 Then
var ett slarfel, ack för att du såg det.
sk prova igen nu.

/ Mikul

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

## #11 — jorgen, 2001-11-24T22:01Z

> Tredje parametern till mid kan utelämnas.

Hmm, varför utelämnar VBscript doc sådan viktig information för mig. :(

mvh Jörgen

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

## #12 — mikul, 2001-11-24T22:03Z

nu fick jag inget felmedelande, utan den ladade upp filen som den skulle, Men det hände inget i databasen.
ser ni nå fel i den här koden?

```
<%
	Set Upload = Server.CreateObject("Persits.Upload.1")
	Count = Upload.Save("C:\Inetpub\wwwroot\asp\kas\reportage\images")

'##### Mickes stuff #####
	
	Function namn(str)
		Dim pos, fromend
		str = Trim(str)
		pos = inStrRev(str,"/")
		fromend = len(str) - pos
		namn = Mid(str,fromend)
	End Function

	Sub add(Fil)
		Dim Conn
		Set Conn = Server.Createobject("Adodb.Connection")
		Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("kas/reportage/db.mdb")
		Conn.Execute ("Insert into bilder(bild,rubrik) Values('" & Fil & "','rubrik')")
		Conn.Close
		Set Conn = Nothing
	End Sub
	
	If Len(Upload.Form("FILE1")) >= 1 Then
		Call add(Namn(Upload.Form("FILE1")))
	ElseIf Len(Upload.Form("FILE2")) >= 1 Then
		Call add(Namn(Upload.Form("FILE2")))
	ElseIf Len(Upload.Form("FILE3")) >= 1 Then
		Call add(Namn(Upload.Form("FILE3"))) 
	End If
	
'##### Mickes stuff slutar #####

Response.write Count & "files uploaded."
If Upload.Expires <> CDate("9/9/9999") Then Response.Write "<HR>AspUpload expires on " & Upload.Expires
%>
```

/ Mikul

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

## #13 — LarsG, 2001-11-24T22:03Z

Det bör väl vara FILE3 och inte FILE1 i if-satsen

Jag ser att du har ändrat, så du kan glömma detta.

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

## #14 — mikul, 2001-11-24T22:05Z

Kolla igen Lars

Livet är hårt ibland Jörgen :)

/ Mikul

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

## #15 — LarsG, 2001-11-24T22:08Z

Blir det något anrop till rutinen add?

Du kan ju lägga in test-utskrift där för att se om det händer något. Samtidigt kan du se om din insert ser riktig ut

```
sql = "Insert into bilder(bild,rubrik) Values('" & Fil & "','rubrik')"
response.write "sql:" & sql
conn.execute sql
```

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

## #16 — mikul, 2001-11-24T22:14Z

konstigt....
det skrivs inte ut nånting...
koden ser ut så här

```
<HTML>
<BODY BGCOLOR="#FFFFFF">

<%
	Set Upload = Server.CreateObject("Persits.Upload.1")
	Count = Upload.Save("C:\Inetpub\wwwroot\asp\kas\reportage\images")

'##### Mickes stuff #####
	
	Function namn(str)
		Dim pos, fromend
		str = Trim(str)
		pos = inStrRev(str,"/")
		fromend = len(str) - pos
		namn = Mid(str,fromend)
	End Function

	Sub add(Fil)
		Dim Conn
		Set Conn = Server.Createobject("Adodb.Connection")
		Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("kas/reportage/db.mdb")
		sql = "Insert into bilder(bild,rubrik) Values('" & Fil & "','rubrik')"
		Response.write "sql:"& sql
		Conn.Execute (sql)
		Conn.Close
		Set Conn = Nothing
	End Sub
	
	If Len(Upload.Form("FILE1")) >= 1 Then
		Call add(Namn(Upload.Form("FILE1")))
	ElseIf Len(Upload.Form("FILE2")) >= 1 Then
		Call add(Namn(Upload.Form("FILE2")))
	ElseIf Len(Upload.Form("FILE3")) >= 1 Then
		Call add(Namn(Upload.Form("FILE3"))) 
	End If
	
'##### Mickes stuff slutar #####

Response.write Count & " files uploaded."
If Upload.Expires <> CDate("9/9/9999") Then Response.Write "<HR>AspUpload expires on " & Upload.Expires
%>
</BODY>
</HTML>
```

/ Mikul

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

## #17 — LarsG, 2001-11-24T22:24Z

Borde du inte göra så här 

```
For Each File in Upload.Files 
add(namn(file.name))
Next
```

istf

```
If Len(Upload.Form("FILE1")) >= 1 Then
Call add(Namn(Upload.Form("FILE1")))
ElseIf Len(Upload.Form("FILE2")) >= 1 Then
Call add(Namn(Upload.Form("FILE2")))
ElseIf Len(Upload.Form("FILE3")) >= 1 Then
Call add(Namn(Upload.Form("FILE3"))) 
End If
```

?

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

## #18 — mikul, 2001-11-24T22:32Z

jag testade det nu, men då fick den bara värdet 1 i databasen...
och om jag laddade upp fler än en fil på sammagång så blev det då 1, 2, 3 i databasen.. om du fattar...
sql:Insert into bilder(bild,rubrik) Values('1','rubrik')
sql:Insert into bilder(bild,rubrik) Values('2','rubrik')
sql:Insert into bilder(bild,rubrik) Values('3','rubrik')

/ Mikul

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

## #19 — LarsG, 2001-11-24T22:35Z

Då är det funktionen namn som nog inte fungerar som du tänkt dig.

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

## #20 — mikul, 2001-11-24T22:39Z

troligtvis...
men vad?!

/ Mikul

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/12826-ogiltigt-proceduranrop-eller-argument-mid  
Nästa sida: https://www.webforum.nu/amne/asp/12826-ogiltigt-proceduranrop-eller-argument-mid/page2.md
