plelkesMedlem sedan mars 2002823 inlägg
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
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
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
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
Kolla alla dina kolumntyper. Vad är ftFnamn, ftEnamn, Dag och FluidNamn för typer?
plelkesMedlem sedan mars 2002823 inlägg
de är alla av typen text...
resterande kolumner som ingår är av typen "number"
PDahlenMedlem sedan apr. 2004784 inlägg
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
jag fattar att skall komma sist, fattar bara inte hur jag skall formulera selectsatsen
plelkesMedlem sedan mars 2002823 inlägg
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
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.