---
title: "Number of query values and destination fields are not the same."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/93232-number-of-query-values-and-destination-fields-are-not-the-same"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2003-12-22T12:50:02.000Z"
updated: "2004-05-04T05:25:43.000Z"
replies: 9
views: 262
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/93232-number-of-query-values-and-destination-fields-are-not-the-same"
---

# Number of query values and destination fields are not the same.

## #1 — plelkes, 2003-12-22T12:50Z

Hej, nu är jag tillbaka med mitt projekt...

```
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 formObj in Request.Form
     If left(formObj,9) = "leggatill" Then
            lngFluidID = Replace(Request.Form(formObj), "leggatill", "")

strSQL = "SELECT * FROM tblFluids, tblVetskebalans WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND tblFluids.FluidID = " & lngFluidID
Set tblFluids = vatskeb.Execute(strSQL)
	sngVolym = CSng(Request.Form("volym" & lngFluidID))
	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

 
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 &")"
    

	[B]vatskeb.Execute strSQL, , 128[/B]
End if
 Next
            
vatskeb.close
Set vatskeb = Nothing
```

 
När sidan "körs" får jag följande fel:

> Microsoft JET Database Engine error '80040e14' 
> 
> Number of query values and destination fields are not the same. 
> 
> /vatskebalans/forslag205.asp, line 37

  rad 37 är med fetstil
Själv utskriften av strSQK

> INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi ) VALUES(#2003-12-22#,'14',3, '111', 0,15, 0,06, 0,21, 0,03, 0, 1,2)

 stämmer
Vad är felet då?
Om ni vill kan ni [se själva](http://www12.brinkster.com/vatskebalans/102.asp)

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

## #2 — Palle, 2003-12-22T12:53Z

Enligt din sql-sats försöker du stoppa in 15 värden, i 10 olika kolumner och det fungerar inte.
Dina kommatecken i VALUES skapar problem - använde punkter istället för kommatecken.

ex. 

1,15 = 1.15

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

## #3 — plelkes, 2003-12-22T12:58Z

> **Palle skrev:**
>
> Dina kommatecken i VALUES skapar problem - använde punkter istället för kommatecken.

 Ok, så långt hänger jag med. Men då behöver jag väl ändra i (access-)databasfälten också - eller?

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

## #4 — plelkes, 2003-12-22T13:38Z

> **Palle skrev:**
>
> ..... 1,15 = 1.15

 
Därför har jag försökt med ett litet "Replace"

```
v = CSng(Request.Form("volym" & lngFluidID))
	n = sngVolym * tblFluids("Naperml")
	k = sngVolym * tblFluids("Kperml")
	c = sngVolym * tblFluids("Clperml")
	f = sngVolym * tblFluids("Pperml")
	m = sngVolym * tblFluids("Mgperml")
	e = sngVolym * tblFluids("Eperml")
	sngVolym = Replace (v, ",", ".")
	najoner = Replace (n, ",", ".")
	kaliumjoner = Replace (k, ",", ".")
	kloridjoner = Replace (c, ",", ".")
	fosfatjoner = Replace (f, ",", ".")
	magnesiumjoner = Replace (m, ",", ".")
	energi = Replace (e, ",", ".")
```

 
Men multiplikationen blir hela tiden = 0

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

## #5 — plelkes, 2003-12-22T13:54Z

**Äntligen VERKAR det funka!** Tack @nders :bire 

Jag gjorde som [@nders rekomenderade](http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=41950&highlight=Replace+kommatecken)  och ändrade mitt strSQL till

```
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi ) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & Replace(najoner, ",", ".") & ", " & Replace(kaliumjoner, ",", ".") & ", " & Replace(kloridjoner, ",", ".") & ", " & Replace(fosfatjoner, ",", ".") & ", " & Replace(magnesiumjoner, ",", ".") &", " & Replace(energi, ",", ".") &")"
```

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

## #6 — plelkes, 2004-05-03T17:48Z

allt fungerade bra, ända tills jag ville få med även tiden.
Så jag la till en kolumn = tidpunkt i databasen och ändrade koden (se fetstilta)

```
<%
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)
[B]t = FormatDateTime(Date, 4)[/B]

For each formObj in Request.Form
     If left(formObj,9) = "leggatill" Then
            lngFluidID = Replace(Request.Form(formObj), "leggatill", "")

strSQL = "SELECT * FROM tblFluids, tblVetskebalans WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND tblFluids.FluidID = " & lngFluidID
Set tblFluids = vatskeb.Execute(strSQL)
	sngVolym = CSng(Request.Form("volym" & lngFluidID))
	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

 
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi, [B]tidpunkt[/B]) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &", [B]#" & t & "#[/B])"
    
Response.Write strSQL
vatskeb.Execute strSQL, , 128
End if
Next
            
vatskeb.close
Set vatskeb = Nothing

Response.Redirect "meny.htm"

%>
```

 Nu vägrar det hela att  uppdateras\*snyft\*

Fälten för datum, tidpunkt och pnr är av text

Varför bråkar detta med mig??

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

## #7 — plelkes, 2004-05-03T19:04Z

Nu verkar det fungera:

```
<%@ Language=VBScript 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)
t = FormatDateTime(Now, 4)

For each formObj in Request.Form
     If left(formObj,9) = "leggatill" Then
            lngFluidID = Replace(Request.Form(formObj), "leggatill", "")

strSQL = "SELECT * FROM tblFluids, tblVetskebalans WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND tblFluids.FluidID = " & lngFluidID
Set tblFluids = vatskeb.Execute(strSQL)
	sngVolym = CSng(Request.Form("volym" & lngFluidID))
	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

 
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat,  Magnesium, Energi, tidpunkt) VALUES('" & d & "', '" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & Replace(najoner, ",", ".") & ", " & Replace(kaliumjoner, ",", ".") & ", " & Replace(kloridjoner, ",", ".") & ", " & Replace(fosfatjoner, ",", ".") & ", " & Replace(magnesiumjoner, ",", ".") &", " & Replace(energi, ",", ".") &", '" & t & "')" 
vatskeb.Execute strSQL, , 128
Response.Write strSQL           

End if
Next
 
vatskeb.close
Set vatskeb = Nothing

 %>
```

 Ger följande utskrift

> INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi, tidpunkt) VALUES('2004-05-03', '17',94, '5303189453', 0, 0, 0, 0, 0, 188, '14:48')

 Men som ni ser får jag "brinkster-tid"
Hur får jag till det på denna sida:

```
<%@ Language=VBScript LCID=1053%>
 <HTML><title>\tblvetskebalans11.asp</title>
    <BODY>
 <%
Function GetTime(currentTime)
     GetTime = DateAdd ("h", 6, currentTime)
End function

    Set objConn = Server.CreateObject("ADODB.Connection")
   objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\vatskebalans\db\vbalans.mdb")
   strSQL = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym, tblVetskebalans.Energi FROM " & _
         "tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID ORDER by Dag ASC" 
  Set objRS = objConn.Execute(strSQL)

 %>
    <TABLE border=1>
       <TR>
          <TD><B>Datum</B></TD>
         <TD><B>Tid</B></TD>

          <TD><B>Personnummer</B></TD>
          <TD><B>Vätska</B></TD>
          <TD><B>Energi</B></TD>
          <TD><B>Volym</B></TD>
       </TR>
 <%

 	    Do While Not objRS.EOF
       Response.Write "<TR><TD>" & CDate(objRS("Dag")) & "</TD>"
       Response.Write "<TD>" & objRS("tidpunkt") & "</TD>"
       Response.Write "<TD>" & objRS("PatID") & "</TD>"
       Response.Write "<TD>" & objRS("FluidNamn") & "</TD>"
       Response.Write "<TD>" & objRS("Energi") & "</TD>"
       Response.Write "<TD>" & objRS("Volym") & "</TD></TR>"
       objRS.MoveNext
    Loop
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing
 %>
```

 Får inte till det hela utan felutskrift

> ADODB.Recordset error '800a0cc1' 
> Item cannot be found in the collection corresponding to the requested name or ordinal. 
> 
> /vatskebalans/tblvetskebalans11.asp, line 31

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

## #8 — plelkes, 2004-05-03T19:22Z

Frågor till ovanstående:

1. kan felutskriften bero på att vissa av tidpunktsposterna är tomma?
2. jag använder fält av typen text. Om jag använder date/time hur skulle strsql se ut då?

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

## #9 — PDahlen, 2004-05-03T20:09Z

> Item cannot be found in the collection corresponding to the requested name or ordinal.

Beror på att du på rad 31 försöker skriva ut objRS("tidpunkt") men du har inte tidpunkt med i din SELECT sats.

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

## #10 — plelkes, 2004-05-04T05:25Z

Tack Patrik..
så slarvigt av mig...

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/93232-number-of-query-values-and-destination-fields-are-not-the-same
