P plelkes Medlem sedan mars 2002 823 inlägg Frågan 15 dec. 2003 18:31 #1 Hela databasen listas på denna sida.
Jag vill ha lite förändringar med tilllägg av bla: kryssrutor och textfält.
Därför har jag snickrat:
<%
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 =" SELECT * FROM tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND tblFluidRelat.typeID = tblFluidTypes.typeID ORDER by tblFluidTypes.typeNamn"
typ =""
Response.Write "<TABLE>"
Response.Write "<form name=""fylla"" method=""post"" action=""skrivtill_tblVetskebalans.asp"">"
Response.Write "Patientens personnummer: <input name=""personnr"" type=""text"">"
Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If typ <> rs1("typeNamn") then
typ = rs1("typeNamn")
Response.Write "<TR><TD><B><U>" & rs1("typeNamn") & "</U></B></TD><td colspan=""3""> </td>"
Do While Not rs1.EOF
Response.Write "<TD><INPUT NAME=""leggatill" & rs1("FluidID") & """ TYPE=""checkbox"" VALUE="""& rs1("FluidID") &"""></TD>"
Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
Response.Write "<TD><INPUT NAME=""volym" & rs1("FluidID") & """ TYPE=""text""></TD></TR>"
objRS.MoveNext
Loop
Else
Response.Write "<TR><TD> </TD>"
Do While Not rs1.EOF
Response.Write "<TD><INPUT NAME=""leggatill" & rs1("FluidID") & """ TYPE=""checkbox"" VALUE="""& rs1("FluidID") &"""></TD>"
Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
Response.Write "<TD><INPUT NAME=""volym" & rs1("FluidID") & """ TYPE=""text""></TD></TR>"
rs1.MoveNext
Loop
End If
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
Response.Write "</TABLE><input type=""submit"" value=""Lägg till Vätskebalansen""></form>"
%>
När sidan körs
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
Felmeddelandet torde väl tyda på fel i strSQL1 eller? Hittar dock inte felet...
Bifogar koden till sidan som funkar
@nders Medlem sedan juni 2000 32 967 inlägg
Felmeddelandet torde väl tyda på fel i strSQL1 eller? Hittar dock inte felet...
Nej, felmeddelandet tyder på att du försöker skriva ut värdet från ett fält som inte finns i ditt recordset. Kontrollera så du skrivit rätt på alla fältreferenser i asp-koden och se så de verkligen finns i ditt recordset.
Mvh
Jesper T Medlem sedan nov. 2001 7 144 inlägg Verkar som ett kolumn i databasen inte finns som du försöker att hänvisa till. Testa med denna:
strSQL1 ="SELECT * FROM tblFluidRelat as tFR,tblFluids as tF,tblFluidTypes as fFT WHERE tFR.FluidID = tF.FluidID AND tFR.typeID = tFT.typeID ORDER by tFT.typeNamn"
Jag brukar döpa kolumnerna med tabellnamnets förkortning först så slipper det att bli så struligt när du skall hämta ifrån flera tabeller.
ex. tf_fluidID, tfr_fluidID osv.
P plelkes Medlem sedan mars 2002 823 inlägg Jesper T:
När jag bytte mitt strSQL1 mot ditt får jag fel:
Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters
P plelkes Medlem sedan mars 2002 823 inlägg
@nders skrev:
Kontrollera så du skrivit rätt på alla fältreferenser i asp-koden och se så de verkligen finns i ditt recordset.
Men det konstiga är att det fungerat på andra sidor. Det enda jag har gjort är klippa och klistra*suckochsnyft*
Sidor det funkar på:
1.asp
2.asp
För att spara uttrymme bifogar jag ovanstående 2 koderna
Kan det vara så att det är fältegenskaper som spökar?
@nders Medlem sedan juni 2000 32 967 inlägg Vilken rad är rad 24 i koden? Det verkar vara på den raden adp-tolken påstår att du försöker skriva ut ett fält som inte finns i recordsetet.
P plelkes Medlem sedan mars 2002 823 inlägg
@nders skrev:
Vilken rad är rad 24 i koden? Det verkar vara på den raden adp-tolken påstår att du försöker skriva ut ett fält som inte finns i recordsetet
Response.Write "<TD><INPUT NAME=""leggatill" & rs1("FluidID") & """ TYPE=""checkbox"" VALUE="""& rs1("FluidID") &"""></TD>"
Men som skrivet: ytterligt förbryllande att det funkar på de två andra sidorna, och jag bara har kopierat och klistrat in..
P plelkes Medlem sedan mars 2002 823 inlägg kan inte förstå varför inte det funkar.....
Eftersom de två sidorna funkar, borde även sammanslagning av dessa två funka...
P plelkes Medlem sedan mars 2002 823 inlägg Försökt med ytterligare variant
<%
If Request.QueryString("type") = "" Then
intType = 1
Else
intType = CInt(Request.QueryString("type"))
End If
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 =" SELECT * FROM tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND tblFluidRelat.typeID = tblFluidTypes.typeID ORDER by tblFluidTypes.typeNamn"
typ =""
Response.Write "<TABLE>"
Response.Write "<form name=""fylla"" method=""post"" action=""skrivtill_tblVetskebalans.asp"">"
Response.Write "Patientens personnummer: <input name=""personnr"" type=""text"">"
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"
[B]Set objRS = objConn.Execute(strSQL)[/B]
Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If typ <> rs1("typeNamn") then
typ = rs1("typeNamn")
Response.Write "<TR><TD><B><U>" & rs1("typeNamn") & "</U></B></TD><td colspan=""3""> </td>"
Do While Not objRS.EOF
Response.Write "<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
Else
Response.Write "<TR><TD> </TD>"
Do While Not objRS.EOF
Response.Write "<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
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
Response.Write "</TABLE><input type=""submit"" value=""Lägg till Vätskebalansen""></form>"
%>
NU blir felutskriften
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/vatskebalans/12.asp, line 27
line 27 = fet-stil
S solbulle Medlem sedan mars 2001 5 287 inlägg Du har som sagt inget objekt som heter objConn.
Vad händer om du klipper ut det stycke som ger dig felet i din första kod? Får du något annat fel då?
P plelkes Medlem sedan mars 2002 823 inlägg
solbulle skrev:
Du har som sagt inget objekt som heter objConn
När är det sagt*ler*?
När jag ersatt den raden till
Set objRS = vbalans.Execute(strSQL)
Får jag
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression 'tblFluidRelat.FluidID = tblFluids.FluidID ANDtblFluidRelat.typeID = tblFluidTypes.typeID AND tblFluidTypes.TypeID = 1'.
/vatskebalans/12.asp, line 27
solbulle skrev:
Vad händer om du klipper ut det stycke som ger dig felet i din första kod? Får du något annat fel då?
Menar du att jag skall ta bort rad 24?
Om ja så ser sida ut så här
@nders Medlem sedan juni 2000 32 967 inlägg
plelkes skrev:
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression 'tblFluidRelat.FluidID = tblFluids.FluidID ANDtblFluidRelat.typeID = tblFluidTypes.typeID AND tblFluidTypes.TypeID = 1'.
/vatskebalans/12.asp, line 27
Om man läser det felmeddelandet så ser man att det saknas ett mellanslag efter AND.
P plelkes Medlem sedan mars 2002 823 inlägg
@nders skrev:
Om man läser det felmeddelandet så ser man att det saknas ett mellanslag efter AND.
Tack för det @nders.... Nu börjar det ju bli bättre men inte bra
S solbulle Medlem sedan mars 2001 5 287 inlägg
plelkes skrev:
När är det sagt*ler*?
I felmeddelandet: Object required ;)
Du verkar inte få något felmeddelande nu på den sista länken du postar?
P plelkes Medlem sedan mars 2002 823 inlägg Som ni ser börjar det se bättre ut...
Men jag hittar inte felet
<%
If Request.QueryString("type") = "" Then
intType = 1
Else
intType = CInt(Request.QueryString("type"))
End If
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 =" SELECT * FROM tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND tblFluidRelat.typeID = tblFluidTypes.typeID ORDER by tblFluidTypes.typeNamn"
typ =""
Response.Write "<TABLE BORDER = ""1"">"
Response.Write "<form name=""fylla"" method=""post"" action=""skrivtill_tblVetskebalans.asp"">"
Response.Write "Patientens personnummer: <input name=""personnr"" type=""text"">"
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 = vbalans.Execute(strSQL)
Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If typ <> rs1("typeNamn") then
typ = rs1("typeNamn")
Response.Write "<TR><TD><B><U>" & rs1("typeNamn") & "</U></B></TD><td colspan=""2""> </td></TR>"
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
Else
Response.Write "<TR><TD> </TD>"
Do While Not objRS.EOF
Response.Write "<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
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
Response.Write "</TABLE><input type=""submit"" value=""Lägg till Vätskebalansen""></form>"
%>
P plelkes Medlem sedan mars 2002 823 inlägg Eftersom jag INTE får till det hela
Har jag försökt med nedanstående ändring
<%
If Request.QueryString("type") = "" Then
intType = 1
Else
intType = CInt(Request.QueryString("type"))
End If
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 =" SELECT * FROM tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND tblFluidRelat.typeID = tblFluidTypes.typeID ORDER by tblFluidTypes.typeNamn"
typ =""
Response.Write "<TABLE BORDER = ""1"">"
Response.Write "<form name=""fylla"" method=""post"" action=""skrivtill_tblVetskebalans.asp"">"
Response.Write "Patientens personnummer: <input name=""personnr"" type=""text"">"
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 = vbalans.Execute(strSQL)
Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If typ <> rs1("typeNamn") then
typ = rs1("typeNamn")
Response.Write "<TR><TD><B><U>" & rs1("typeNamn") & "</U></B></TD><td colspan=""2""> </td></TR>"
%>
<table width="500" border="1">
<%
Do While Not objRS.EOF
Response.Write "<TR><TD> ></TD><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
%>
</table>
<%
Else
Response.Write "<TR><TD> </TD>"
%>
<table width="500" border="1">
<%
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
%>
</table>
<%
End If
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
Response.Write "</TABLE><input type=""submit"" value=""Lägg till Vätskebalansen""></form>"
%>
Dåck får jag
Microsoft VBScript compilation error '800a03fb'
Expected 'Loop'
/vatskebalans/1o21.asp, line 50
Else
^
Raderna 49 - 52
49 : <%
50: Else
51: Response.Write "<TR><TD> </TD>"
52: %>
S solbulle Medlem sedan mars 2001 5 287 inlägg Grej nummer ett. Jag får inget felmess på den sida du länkar till.
Grej nummer två. Det har lagt in en "Else" mitt i din loop, det fungerar inte.
P plelkes Medlem sedan mars 2002 823 inlägg
solbulle skrev:
Jag får inget felmess på den sida du länkar till
Nej den länken visar bara att jag inte klarar av att loopa databasen, eller egentligen objRS("FluidID")
sidan med felmesset
solbulle skrev:
Det har lagt in en "Else" mitt i din loop, det fungerar inte.
har oxå provat detta
S solbulle Medlem sedan mars 2001 5 287 inlägg Vad händer om du skriver så här:
<%
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 =" SELECT * FROM tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND tblFluidRelat.typeID = tblFluidTypes.typeID ORDER by tblFluidTypes.typeNamn"
typ =""
Response.Write "<TABLE>"
Response.Write "<form name=""fylla"" method=""post"" action=""skrivtill_tblVetskebalans.asp"">"
Response.Write "Patientens personnummer: <input name=""personnr"" type=""text"">"
Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If typ <> rs1("typeNamn") then
typ = rs1("typeNamn")
Response.Write "<TR><TD><B><U>" & rs1("typeNamn") & "</U></B></TD><td colspan=""3""></td>"
End If
Response.Write "<TD><INPUT NAME=""leggatill" & rs1("FluidID") & """ TYPE=""checkbox"" VALUE="""& rs1("FluidID") &"""></TD>"
Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
Response.Write "<TD><INPUT NAME=""volym" & rs1("FluidID") & """ TYPE=""text""></TD></TR>"
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
Response.Write "</TABLE><input type=""submit"" value=""Lägg till Vätskebalansen""></form>"
%>