webForumDet fria alternativet

error '80020009'

9 svar · 290 visningar · startad av plelkes

plelkesMedlem sedan mars 2002823 inlägg
#1

Som ni ser denna tråd så får jag ej till det hela*snyft*
Så därför har jag tänkt ut en ny approach:
Upplägget är ju som följer:
Ur tblVetskebalans för varje PatID = Request.Form("rapport")

  • datum som patienten förekommer i tabllen
  • och för varje datum vätskor med dess egenskaper

Samt ur tblPersonuppgifter hämta efternamn och förnamn
Samtliga uppgifter finns i tblVetskebalans, tblPersonuppgifter,tblFluids följande kod:

<%@ Language=VBScript LCID=1053%>
<HTML>
<title>Rapport</title>
<BODY>
 <%
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
strSQL = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag," & _
        " tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Energi," & _
		" tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftFnamn," &_
		" tblPersonuppgifter.ftEnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
        " tblPersonuppgifter.PatID = "&Request.Form("rapport")&" AND tblVetskebalans.PatID = tblVetskebalans.Dag ORDER by Dag ASC"
Set rs1 = vbalans.Execute (strSQL)
Response.Write "<BR><B>" & strSQL & "</B><P>"
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
    Response.Write SvPnr(rs1("ID")) & "<BR>"
    Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
 Do While Not rs1.EOF
       Response.Write "<TR><TD>" & rs1("Dag") & "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
 %>
</TABLE>
</body>
</html>

Ger felutskriften:

SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Energi, tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftFnamn, tblPersonuppgifter.ftEnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblPersonuppgifter.PatID = '1111111111' AND tblVetskebalans.PatID = tblVetskebalans.Dag ORDER by Dag ASC
error '80020009'

m_soderlundMedlem sedan sep. 20024 733 inlägg
#2

PatID kanske är ett tal i din databastabell, och i så fall ska du skriva så här:

PatID = Cint(Request.Form("rapport"))

Annars kan du spinna vidare på denna Google-sökning.

PDahlenMedlem sedan apr. 2004784 inlägg
#3

Om du googlar på felet så får du reda på att det uppstår när du i din SELECT hämtar en kolumn av typ TEXT eller BLOB men inte sätter dom sist i sql-satsen.
Skriv om din SELECT.

plelkesMedlem sedan mars 2002823 inlägg
#4

tyvärr hjälpte det inte...

<%
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
strSQL = "SELECT tblFluids.FluidID, tblVetskebalans.FluidID, tblVetskebalans.Energi," &_
       " tblVetskebalans.Volym, tblFluids.FluidNamn, tblVetskebalans.Dag," &_
	   " tblVetskebalans.PatID AS patid, tblPersonuppgifter.ftFnamn," &_
	   " tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn FROM" &_
	   "  tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.PatID" &_
	   " = tblVetskebalans.Dag AND tblPersonuppgifter.PatID ="&Request.Form("rapport")&" " &_
	   " ORDER by Dag ASC"
Set rs1 = vbalans.Execute (strSQL)
Response.Write "<BR><B>" & strSQL & "</B><P>"
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
    Response.Write SvPnr(rs1("ID")) & "<BR>"
    Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
%>

Ger

SELECT tblFluids.FluidID, tblVetskebalans.FluidID, tblVetskebalans.Energi, tblVetskebalans.Volym, tblFluids.FluidNamn, tblVetskebalans.Dag, tblVetskebalans.PatID AS patid, tblPersonuppgifter.ftFnamn, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.PatID = tblVetskebalans.Dag AND tblPersonuppgifter.PatID ='1111111111' ORDER by Dag ASC
error '80020009'

/vatskebalans/visa_rapporten102.asp, line 22

Line 22:

personnummer =Left(txt,6) & " - " & Right(txt,4)
PDahlenMedlem sedan apr. 2004784 inlägg
#5

Kolla alla dina kolumntyper. Vad är ftFnamn, ftEnamn, Dag och FluidNamn för typer?

plelkesMedlem sedan mars 2002823 inlägg
#6

de är alla av typen text...
resterande kolumner som ingår är av typen "number"

PDahlenMedlem sedan apr. 2004784 inlägg
#7

Då har du inte skrivit om din SELECT-sats. ALLA textfält skall komma sist och som du har skrivit så har du fortfarande fel ordning.

plelkesMedlem sedan mars 2002823 inlägg
#8

jag fattar att skall komma sist, fattar bara inte hur jag skall formulera selectsatsen

plelkesMedlem sedan mars 2002823 inlägg
#9

Försökt ändra strSQL till

strSQL = "SELECT * FROM  tblVetskebalans, tblFluids, tblPersonuppgifter" &_
       " WHERE tblVetskebalans.PatID = tblVetskebalans.Dag AND" &_
       " tblPersonuppgifter.PatID = "& pat &" ORDER by Dag ASC"

Men får utskriften:

SELECT * FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.PatID = tblVetskebalans.Dag AND tblPersonuppgifter.PatID = '9303060156' ORDER by Dag ASC

ADODB.Recordset error '800a0cc1'

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

/vatskebalans/visa_rapporten102.asp, line 22

rad 18: Function SvPnr(txt)
      rad 19: personnummer =Left(txt,6) & " - " & Right(txt,4)
    rad 20: SvPnr = personnummer
   rad 21: End Function
    rad 22: Response.Write SvPnr(rs1("PatID")) & "<BR>"
   rad 23:  Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
PDahlenMedlem sedan apr. 2004784 inlägg
#10

Du ska inte använda *. Eftersom du har TEXTkolumner måste du sätta dem i rätt ordning.
Du har ju redan formulerat sql-satsen. Nu ska du bara sortera det du hämtar så att alla text-kolumner står SIST i SELECT raden. Det är inte svårare än så.

SELECT tblFluids.FluidID, tblVetskebalans.FluidID,
tblVetskebalans.Energi, tblVetskebalans.Volym,
tblVetskebalans.Dag, tblVetskebalans.PatID AS patid,
tblPersonuppgifter.PatID AS ID, tblFluids.FluidNamn,
tblPersonuppgifter.ftFnamn, tblPersonuppgifter.ftEnamn

Du ska inte ändra något i FROM eller WHERE, bara i SELECT raden.

Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb