---
title: "Microsoft VBScript runtime error '800a01a8' : Object required"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/93134-microsoft-vbscript-runtime-error-800a01a8-object-required/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2003-12-20T15:23:13.000Z"
updated: "2003-12-21T16:20:01.000Z"
replies: 69
views: 1147
page: 2
pages: 4
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/93134-microsoft-vbscript-runtime-error-800a01a8-object-required"
---

# Microsoft VBScript runtime error '800a01a8' : Object required

_Sida 2 av 4._

## #21 — Sebbe, 2003-12-20T16:26Z

Jag tycker mig känna igen den där koden. ;)
Testa att skriva SQL-satsen så här istället:

```
strSQL = "SELECT f.FluidNamn, ft.TypeNamn, ft.TypeID, f.FluidID FROM tblFluidRelat AS fr, tblFluids AS f, tblFluidTypes AS ft WHERE" & _ 
"fr.FluidID = f.FluidID AND fr.typeID = ft.typeID AND ft.TypeID = " & intType & " ORDER by ft.typeID"
```

Nej, det är inte samma sak. Du använder *objekt.egenskap* till t.ex. objConn*.Execute*, objConn*.Open "..."*, men med recordset använder du som sagt objRS*("kolumn")*.

Är inte så bra på att förklara.

**/red** Ah, @nders har huvudet på skaft. ;)

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

## #22 — @nders, 2003-12-20T16:27Z

Ang. felmeddelandet: släng in ett mellanslag efter WHERE.

Sen kan jag inte säga tillräckligt många gånger: har man problem med en SQL-fråga, skriv ut den med response.write istället för att exekvera. Mycket lättare att felsöka då.

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

## #23 — plelkes, 2003-12-20T16:29Z

Oki, fat konstiga är att det fungerade förrut - men klart ett mellanslag kommer ju bort rätt lätt..

Dock fungerar inte Sebbes kod - för det sker ingen "INSERT" i i tblVetskebalans.Na -\> tblVetskebalans.Energi

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

## #24 — Sebbe, 2003-12-20T16:31Z

Va? Funkar det inte med den här koden?

```
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)
sngVolym = CSng(Request.Form("volym" & lngFluidID))

For Each Value In Request.Form
  If Left(Value, 9) = "leggatill" Then
    intID = Mid(Value, 10)
    Exit For
  End If
Next

strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
Set tblFluids = vatskeb.Execute(strSQL)

najoner = sngVolym * tblFluids("Naperml")
kaliumjoner = sngVolym * tblFluids("Kperml")
kloridjoner = sngVolym * tblFluids("Clperml")
fosfatjoner = sngVolym * tblFluids("Pperml")
magnesiumjoner = sngVolym * tblFluids("Mgperml")
energi = sngVolym * tblFluids("Eperml")

Set tblFluids = Nothing

For each formObj in Request.Form
  If left(formObj,9) = "leggatill" Then
    lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
    strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
    Response.Write strSQL
    vatskeb.Execute strSQL, , 128
  End if
Next
            
vatskeb.close
Set vatskeb = Nothing

Response.Redirect "101.asp"
```

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

## #25 — plelkes, 2003-12-20T16:41Z

> **Sebbe skrev:**
>
> Va? Funkar det inte med den här koden

 
Dess värre inte...
Sker ingen tillskrivning i fälten
tblVetskebalans.Na
tblVetskebalans.K
tblVetskebalans.Clorid
tblVetskebalans.Fosfat
tblVetskebalans.Magnesium
tblVetskebalans.Energi

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

## #26 — Sebbe, 2003-12-20T16:43Z

Hur ser det ut om du skriver ut SQL-satsen då?

```
For each formObj in Request.Form
  If left(formObj,9) = "leggatill" Then
    lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
    strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
    Response.Write strSQL : Response.End
    vatskeb.Execute strSQL, , 128
  End if
Next
```

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

## #27 — plelkes, 2003-12-20T16:46Z

> INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi ) VALUES(#2003-12-20#,'14',12345, '5803199453', 0, 0, 0, 0, 0, 0)

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

## #28 — plelkes, 2003-12-20T16:47Z

Kan felet vara att det borde stå:

```
najoner = sngVolym * tblFluids.Naperml
```

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

## #29 — plelkes, 2003-12-20T16:49Z

jag provade men 

> Microsoft VBScript runtime error '800a01b6' 
> 
> Object doesn't support this property or method: 'tblFluids.Naperml'

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

## #30 — Sebbe, 2003-12-20T16:49Z

Hm... Så här då?

```
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

For Each Value In Request.Form
  If Left(Value, 9) = "leggatill" Then
    intID = Mid(Value, 10)
  ElseIf Left(Value, 5) = "volym" Then
    lngVolym = CLng(Mid(Value, 6))
  End If
Next

pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)
sngVolym = CSng(Request.Form("volym" & lngVolym))

strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
Set tblFluids = vatskeb.Execute(strSQL)

najoner = sngVolym * tblFluids("Naperml")
kaliumjoner = sngVolym * tblFluids("Kperml")
kloridjoner = sngVolym * tblFluids("Clperml")
fosfatjoner = sngVolym * tblFluids("Pperml")
magnesiumjoner = sngVolym * tblFluids("Mgperml")
energi = sngVolym * tblFluids("Eperml")

Set tblFluids = Nothing

For each formObj in Request.Form
  If left(formObj,9) = "leggatill" Then
    lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
    strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
    Response.Write strSQL
    vatskeb.Execute strSQL, , 128
  End if
Next
            
vatskeb.close
Set vatskeb = Nothing

Response.Redirect "101.asp"
```

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

## #31 — plelkes, 2003-12-20T16:54Z

Fortfarande inget\*snyft\*
Utskrift av strSQL:

> INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi ) VALUES(#2003-12-20#,'14',123456, '5803199453', 0, 0, 0, 0, 0, 0)

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

## #32 — Sebbe, 2003-12-20T17:01Z

Nu har jag kollat lite på formuläret, och det här tror jag nog funkar:

```
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)

For Each Value In Request.Form
  If Left(Value, 9) = "leggatill" Then
    intID = Mid(Value, 10)
  ElseIf Left(Value, 5) = "volym" Then
    sngVolym = CSng(Request.Form(Value))
  End If

  strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
  Set tblFluids = vatskeb.Execute(strSQL)

  najoner = sngVolym * tblFluids("Naperml")
  kaliumjoner = sngVolym * tblFluids("Kperml")
  kloridjoner = sngVolym * tblFluids("Clperml")
  fosfatjoner = sngVolym * tblFluids("Pperml")
  magnesiumjoner = sngVolym * tblFluids("Mgperml")
  energi = sngVolym * tblFluids("Eperml")

  Set tblFluids = Nothing

  If left(formObj,9) = "leggatill" Then
    lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
    strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & intID & "'," & sngVolym & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
    vatskeb.Execute strSQL, , 128
  End if
Next
            
vatskeb.close
Set vatskeb = Nothing

Response.Redirect "101.asp"
```

Om det inte funkar har jag tänkt ut ett annat möjligt sätt att lösa det på. :)

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

## #33 — plelkes, 2003-12-20T17:08Z

Tyvärr så fungerar inte nu heller

> Microsoft JET Database Engine error '80040e14' 
> 
> Syntax error (missing operator) in query expression 'FluidID ='. 
> 
> /vatskebalans/201.asp, line 22

 
201\.asp, line 22 

```
 Set tblFluids = vatskeb.Execute(strSQL)
```

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

## #34 — plelkes, 2003-12-20T17:22Z

Kan inte felet ligga i sättet att plocka ut FluidID?

Jag menar det sättet som @nders hjälpte mig med:

> **@nders skrev:**
>
> If left(**formObj**,9) = "leggatill" Then
>     lngFluidID = Replace(Request.Form**(formObj**), "leggatill", "")

och ditt sätt:

> **Sebbe skrev:**
>
> For Each **Value** In Request.Form
>   If Left(**Value**, 9) = "leggatill

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

## #35 — plelkes, 2003-12-20T17:32Z

Har inte hunnit testa än, men vad sägs om:

```
<%
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)

strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & lngFluidID
  Set tblFluids = vatskeb.Execute(strSQL)

 najoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Naperml
kaliumjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Kperml
kloridjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Clperml
fosfatjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Pperml
magnesiumjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Mgperml
energi = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Eperml

  Set tblFluids = Nothing

  If left(formObj,9) = "leggatill" Then
    lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
    strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & intID & "'," & sngVolym & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
    Response.Write strSQL : Response.End

	vatskeb.Execute strSQL, , 128
  End if
Next
            
vatskeb.close
Set vatskeb = Nothing

Response.Redirect "101.asp"
```

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

## #36 — Sebbe, 2003-12-20T17:42Z

Nu blir jag snart sur på mig själv! ;) Testa det här:

```
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)

For Each Value In Request.Form
  If Left(Value, 9) = "leggatill" Then
    intID = Mid(Value, 10)
  ElseIf Left(Value, 5) = "volym" Then
    sngVolym = CSng(Request.Form(Value))
  End If

  If CStr(intID & "") <> "" AND CStr(sngVolym & "") <> "" Then
    strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
    Set tblFluids = vatskeb.Execute(strSQL)

    najoner = sngVolym * tblFluids("Naperml")
    kaliumjoner = sngVolym * tblFluids("Kperml")
    kloridjoner = sngVolym * tblFluids("Clperml")
    fosfatjoner = sngVolym * tblFluids("Pperml")
    magnesiumjoner = sngVolym * tblFluids("Mgperml")
    energi = sngVolym * tblFluids("Eperml")

    Set tblFluids = Nothing

    If left(formObj,9) = "leggatill" Then
      lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
      strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & intID & "'," & sngVolym & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
      vatskeb.Execute strSQL, , 128
    End if

    intID = ""
    sngVolym = ""
  End If
Next
            
vatskeb.close
Set vatskeb = Nothing

Response.Redirect "101.asp"
```

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

## #37 — plelkes, 2003-12-20T18:00Z

Tappa inte humöret nu Sebbe, men:

> Microsoft VBScript runtime error '800a000d' 
> 
> Type mismatch: 'CSng'

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

## #38 — Sebbe, 2003-12-20T18:03Z

Du måste skriva in ett numeriskt värde i textrutan. Men vi kan lägga in en säkerhetscheck:

```
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)

For Each Value In Request.Form
  If Left(Value, 9) = "leggatill" Then
    intID = Mid(Value, 10)
  ElseIf Left(Value, 5) = "volym" Then
    If IsNumeric(Trim(Request.Form(Value))) Then
      sngVolym = CSng(Trim(Request.Form(Value)))
    Else
      sngVolym = 1
    End If
  End If

  If CStr(intID & "") <> "" AND CStr(sngVolym & "") <> "" Then
    strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
    Set tblFluids = vatskeb.Execute(strSQL)

    najoner = sngVolym * tblFluids("Naperml")
    kaliumjoner = sngVolym * tblFluids("Kperml")
    kloridjoner = sngVolym * tblFluids("Clperml")
    fosfatjoner = sngVolym * tblFluids("Pperml")
    magnesiumjoner = sngVolym * tblFluids("Mgperml")
    energi = sngVolym * tblFluids("Eperml")

    Set tblFluids = Nothing

    If left(formObj,9) = "leggatill" Then
      lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
      strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & intID & "'," & sngVolym & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
      vatskeb.Execute strSQL, , 128
    End if

    intID = ""
    sngVolym = ""
  End If
Next
            
vatskeb.close
Set vatskeb = Nothing

Response.Redirect "101.asp"
```

> **plelkes skrev:**
>
> Tappa inte humöret nu Sebbe

Aldrig! ;)

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

## #39 — plelkes, 2003-12-20T18:11Z

> **Sebbe skrev:**
>
> Du måste skriva in ett numeriskt värde i textrutan

 Det är det jag alltid skriver..

MEN hur som helst, de ända fält som uppdateras (dvs där värde skrivs är:
tblVetskebalans.Dag
tblVetskebalans.PatID
tblVetskebalans.FluidID
tblVetskebalans.Volym

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

## #40 — Sebbe, 2003-12-20T18:19Z

Vi lägger in en liten koll på volymen då. :)

```
For Each Value In Request.Form
  If Left(Value, 9) = "leggatill" Then
    intID = Mid(Value, 10)
  ElseIf Left(Value, 5) = "volym" Then
    If IsNumeric(Trim(Request.Form(Value))) Then
      sngVolym = CSng(Trim(Request.Form(Value)))
    Else
      sngVolym = 1
    End If
  End If

  If CStr(intID & "") <> "" AND CStr(sngVolym & "") <> "" Then
    If sngVolym =< 0 Then
      Response.Write(sngVolym) : Response.End
    Else
      Response.Write("Nu är jag väldigt förvirrad!") : Response.End
    End If

    strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
    Set tblFluids = vatskeb.Execute(strSQL)

    najoner = sngVolym * tblFluids("Naperml")
    kaliumjoner = sngVolym * tblFluids("Kperml")
    kloridjoner = sngVolym * tblFluids("Clperml")
    fosfatjoner = sngVolym * tblFluids("Pperml")
    magnesiumjoner = sngVolym * tblFluids("Mgperml")
    energi = sngVolym * tblFluids("Eperml")

    Set tblFluids = Nothing

    If left(formObj,9) = "leggatill" Then
      lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
      strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & intID & "'," & sngVolym & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
      vatskeb.Execute strSQL, , 128
    End if

    intID = ""
    sngVolym = ""
  End If
Next
```

Hoppas inte att jag är förvirrad nu! ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/93134-microsoft-vbscript-runtime-error-800a01a8-object-required/page2  
Föregående sida: https://www.webforum.nu/amne/asp/93134-microsoft-vbscript-runtime-error-800a01a8-object-required.md  
Nästa sida: https://www.webforum.nu/amne/asp/93134-microsoft-vbscript-runtime-error-800a01a8-object-required/page3.md
