webForumDet fria alternativet

vill ha databasen listad på samma sida

ASP

25 svar · 542 visningar · startad av plelkes

Medlem sedan mars 2002823 inlägg
Frågan#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:&nbsp;&nbsp;&nbsp;<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"">&nbsp;</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>&nbsp;</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

Medlem sedan juni 200032 967 inlägg
#2

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

Medlem sedan nov. 20017 144 inlägg
#3

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.

Medlem sedan mars 2002823 inlägg
#4

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

Medlem sedan nov. 20017 144 inlägg
#5

Så fel det kan gå... ;)

Medlem sedan mars 2002823 inlägg
#6

@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?

Medlem sedan juni 200032 967 inlägg
#7

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.

Medlem sedan mars 2002823 inlägg
#8

@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..

Medlem sedan mars 2002823 inlägg
#9

kan inte förstå varför inte det funkar.....
Eftersom de två sidorna funkar, borde även sammanslagning av dessa två funka...

Medlem sedan mars 2002823 inlägg
#10

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:&nbsp;&nbsp;&nbsp;<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"">&nbsp;</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>&nbsp;</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

Medlem sedan mars 20015 287 inlägg
#11

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å?

Medlem sedan mars 2002823 inlägg
#12

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

Medlem sedan juni 200032 967 inlägg
#13

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.

Medlem sedan mars 2002823 inlägg
#14

@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

Medlem sedan mars 20015 287 inlägg
#15

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?

Medlem sedan mars 2002823 inlägg
#16

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:&nbsp;&nbsp;&nbsp;<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"">&nbsp;</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>&nbsp;</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>"
  %>
Medlem sedan mars 2002823 inlägg
#17

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:&nbsp;&nbsp;&nbsp;<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"">&nbsp;</td></TR>"
%>
<table width="500" border="1">

<%
Do While Not objRS.EOF
     Response.Write "<TR><TD>&nbsp;></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>&nbsp;</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>&nbsp;</TD>" 
52:   %>
Medlem sedan mars 20015 287 inlägg
#18

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.

Medlem sedan mars 2002823 inlägg
#19

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

Medlem sedan mars 20015 287 inlägg
#20

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>"
%>
284 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
152 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)