webForumDet fria alternativet

Körningsfel Objekt krävs.: ''

ASP

12 svar · 373 visningar · startad av plelkes

Medlem sedan mars 2002823 inlägg
Frågan#1

Hej igen,
Jag håller på att bli galen*grr*
I timmar har jag letat, men hittar inte felet i nedanstående

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

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

For each formObj in Request.Form
     If left(formObj,9) = "leggatill" Then
            lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
            strSQL = "INSERT INTO tblVetskebalans "
			strSQL = strSQL & "(Dag, PatID, FluidID, Volym) "
			strSQL = strSQL & "VALUES(#" & ind & "#, " & pnr & ", " & lngFluidID & ", " & Request.Form("volym" & lngFluidID) & ") "            
	Response.Write strSQL
	vatskeb.Execute strSQL, , 128
     End if
Next
 vatskeb.close
 Set vatskeb = Nothing
           

Response.Redirect "lista_vetskor.asp"

 %>

När sidan kör i PWS så får jag felutskriften:

INSERT INTO tblVetskebalans (Dag, PatID, FluidID, Volym) VALUES(#2003-12-10#, 1234567890, 5, 2222)
Körningsfel i Microsoft VBScript fel '800a01a8'

Objekt krävs.: ''

/vatskebalans/skrivtill_tblVetskebalans.asp, rad 26

Och rad 26 är ändå T O M
Skickar med utskriften av strSQL me, eftersom det ser ut att vara riktigt

Medlem sedan feb. 200112 078 inlägg
#2

Nej, ett felmeddelade kommer inte från en tom rad.

Det kommer mycket riktigt från rad 26, frågan är ifall den rad 26 i den koden du visar ovan, verkligen är rad 26 i den fil som felmeddelandet kommer ifrån. Det ser inte ut så.

Kan du posta all kod eller åtminstone hitta vilken rad i rätt fil som meddelandet kommer ifrån?

Medlem sedan mars 2002823 inlägg
#3

lista_vetskor.asp

<%
If Request.QueryString("type") = "" Then
  intType = 1
Else
  intType = CInt(Request.QueryString("type"))
End If

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\Vatskebalans\vbalans.mdb")
strSQL = "SELECT tblFluids.FluidNamn, tblFluidTypes.TypeNamn, tblFluidTypes.TypeID, tblFluids.FluidID FROM " & _
         "tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND" & _
		 " tblFluidRelat.typeID = tblFluidTypes.typeID AND tblFluidTypes.TypeID = " & intType & " ORDER by tblFluidTypes.typeID"
Set objRS = objConn.Execute(strSQL)
If NOT objRS.EOF Then
%>

<table width="800" border="1">
		<tr>
		   <td>&nbsp;</td>
		   <td colspan="3"><%
			                Response.Write objRS("TypeNamn")
							objRS.Close
							       %>
		    </td>
		 </tr>
  				<tr> 
    				<td><%
					      intLast = objConn.Execute("SELECT Max(TypeID) FROM tblFluidTypes")(0)
							For i = 1 To intLast
  						  Set objRS = objConn.Execute("SELECT TypeNamn FROM tblFluidTypes WHERE TypeID = " & i)
							If NOT i = intType Then
    							Response.Write("<a href=""?type=" & i & """>" & objRS("TypeNamn") & "</a><BR> ")
						  objRS.Close
						  End If
						  Next
								%>
				     </td>
    					<td><% strSQL = "SELECT f.FluidNamn, ft.TypeNamn, ft.TypeID, f.FluidID FROM tblFluidRelat fr, tblFluids f, tblFluidTypes ft WHERE fr.FluidID = f.FluidID AND fr.typeID = ft.typeID AND ft.TypeID = " & intType & " ORDER by ft.typeID"
Set objRS = objConn.Execute(strSQL)
%>
<table width="400" border="1">
<form name="fylla" method="post" action="skrivtill_tblVetskebalans.asp">
Patientens personnummer:&nbsp;&nbsp;&nbsp;<input name="personnr" type="text">

<%
Do While Not objRS.EOF
     Response.Write "<TR><TD><INPUT NAME=""leggatill" & objRS("FluidID") & """ TYPE=""checkbox"" VALUE="""& objRS("FluidID") &"""></TD>"		
     Response.Write "<TD>" & objRS("FluidNamn") & "</TD>"
     Response.Write "<TD><INPUT NAME=""volym" & objRS("FluidID") & """ TYPE=""text""></TD></TR>"
     objRS.MoveNext
Loop
End If
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing
 %>
</table>
<input type="submit" value="Lägg till Vätskebalansen">

	</form>

<br><br>
<br>
<a href="lista_tblVetskebalans.asp">Lista tblV&auml;tskebalans inneh&aring;ll</a>l

skrivtill_tblVetskebalans.asp

<%@LANGUAGE="VBSCRIPT" "%>
<%
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\Vatskebalans\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open

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

For each formObj in Request.Form
     If left(formObj,9) = "leggatill" Then
            lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
            strSQL = "INSERT INTO tblVetskebalans "
			strSQL = strSQL & "(Dag, PatID, FluidID, Volym) "
			strSQL = strSQL & "VALUES(#" & ind & "#, " & pnr & ", " & lngFluidID & ", " & Request.Form("volym" & lngFluidID) & ") "            
	
[B]vatskeb.Execute strSQL, , 128[/B]
     End if
Next
 vatskeb.close
Set vatskeb = Nothing
           
objConn.Close
    Set objConn = Nothing
Response.Redirect "lista_vetskor.asp"

 %>

När jag kör detta i PWS (http://localhost/Vatskebalans/lista_vetskor.asp)
Får jag fel:

Microsoft JET Database Engine fel '80040e07'

Typblandningsfel i villkorsuttryck.

/Vatskebalans/skrivtill_tblVetskebalans.asp, rad 20

rad 20 är fetmarkerad

Medlem sedan juni 200032 967 inlägg
#4

Vad har fälten för datatyper?

Medlem sedan mars 2002823 inlägg
#5

Dag = datum
PatID = tal
FluidID = tal
Volym = tal

Medlem sedan juni 200032 967 inlägg
#6

Hmm, det var som jag trodde. Din SQL-fråga ser faktiskt ut att stämma.

Prova att skriva ut den med Response.write istället för att exekvera, så blir det lättare att kika på.

mvh

Medlem sedan mars 2002823 inlägg
#7

Jo jag tycker också att strSQL stämmer..

Så här ser hela "utskriften ut"

INSERT INTO tblVetskebalans (Dag, PatID, FluidID, Volym) VALUES(#2003-12-10#, 5803199453, 22, 666)
Microsoft JET Database Engine fel '80040e07'

Typblandningsfel i villkorsuttryck.

/Vatskebalans/skrivtill_tblVetskebalans.asp, rad 21

och rad 21 är

vatskeb.Execute strSQL, , 128
Medlem sedan juni 200032 967 inlägg
#8

När jag tänker efter, så funderar jag på om inte personnummer är ett för stort tal för att kunna lagras i ett heltalsfält. Frågan är om man kanske inte ska prova att lagra det som text.

*tänker*

Mvh

Medlem sedan feb. 200112 078 inlägg
#9

@nders skrev:

När jag tänker efter, så funderar jag på om inte personnummer är ett för stort tal för att kunna lagras i ett heltalsfält. Frågan är om man kanske inte ska prova att lagra det som text.

Korrekt. Nio tecken är max för Long Integer (vilket jag antar är fallet).

Medlem sedan mars 2002823 inlägg
#10

det har ju fungerat förrut*snyft*
Hur skulle koden se ut om jag har text istället?

Medlem sedan juni 200032 967 inlägg
#11

Apostrofer runt fältvärdet för personnummer bara, det är den enda skillnaden.

Medlem sedan mars 2002823 inlägg
#12

@nders skrev:

Apostrofer runt fältvärdet för personnummer bara, det är den enda skillnaden.

Jag måste väl göra om datatypen oxå tal ->text, eller?

Medlem sedan mars 2002823 inlägg
#13

Nu har jag ändrat alla personnumer-fälten till txt.
Och äntligen verkar det funka ;)
Men...
Det verkar funka även i det fall där jag inte har ändrat strSQL som här

strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID) VALUES(#" & d & "#," & lngFluidID & "," & Request.Form("volym" & lngFluidID) & ", [B]" & pnr & "[/B])"

Och funkar även där jag ändrat

strSQL = "INSERT INTO tblPersonuppgifter"
strSQL = strSQL & "(Indag, patID, ftFnamn, ftEnamn) "
strSQL = strSQL & "VALUES(#" & ind & "#, [B]'"& personnr & "'[/B], '" & Tilltnamn & "', '" & Eftn & "')"

Varför är detta så?

I morgon skall jag från Brinkster ladda ner fil + databas till en dator med win98SE och PWS installerad...

  1. Kan jag rälna med ngt strul efter att jag ändra sökvägen till min databas?
  2. spelar det ngt roll att databasen på brinkster är gjord i svenskspråkig access 2000, medan jag "laddar" till en engelskspråkig?
258 ms totalt · 4 externa anrop · v20260731065814-full.868a69e5
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)