plelkesMedlem sedan mars 2002823 inlägg Ni kanske kommer ihåg tråden därjag jobbar vidar på min projekt... Så här långt har jag kommit:
På denna sida fylls rutor och kryssas i.
Själva skrivning till databasen sker på 201.asp och har följande kod
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open
pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)
najoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Naperml
kaliumjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Kperml
kloridjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Clperml
fosfatjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Pperml
magnesiumjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Mgperml
energi = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Eperml
For each formObj in Request.Form
If left(formObj,9) = "leggatill" Then
lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "')"
Response.Write strSQL
vatskeb.Execute strSQL, , 128
End if
Next
vatskeb.close
Set vatskeb = Nothing
Response.Redirect "101.asp"
Men nu får jag fel:
Microsoft VBScript runtime error '800a01a8'
Object required: 'tblFluids'
/vatskebalans/201.asp, line 12
Rad 12
najoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Naperml
Men jag öppnar ju databasen, detta borde väl räcka, elelr?
SebbeMedlem sedan jan. 20031 603 inlägg Jag förstår inte riktigt vad du ska göra. Du måste väl öppna ett recordset i alla fall? :q
plelkesMedlem sedan mars 2002823 inlägg Ursäkta Sebbe men jag förstår inte...
plelkesMedlem sedan mars 2002823 inlägg
Sebbe skrev:
Jag förstår inte riktigt vad du ska göra
Det jag vill göra är att jag till respektive fält i tblVetskebalans lägga till resultatet av multiplikationen...
SebbeMedlem sedan jan. 20031 603 inlägg Jo, jag menar att du måste väl utföra en SQL-fråga mot databasen och samla resultatet i ett recordset? Du kan inte bara öppna databasen och sedan skriva tabell.kolumn och få ut ett värde.
plelkesMedlem sedan mars 2002823 inlägg
Sebbe skrev:
Jo, jag menar att du måste väl utföra en SQL-fråga mot databasen och samla resultatet i ett recordset? Du kan inte bara öppna databasen och sedan skriva tabell.kolumn och få ut ett värde.
Nej det kan jag förståss inte*dumma mig* Du har fullkommligt rätt i det.
Kan du janske hjälpa mig och ge ett exempel på hur jag bör göra istället?
SebbeMedlem sedan jan. 20031 603 inlägg Jo, om jag fattade skulle jag kunna det. ;)
Vilka poster i databasen är det som ska hämtas? Kommer det med någon querystrring med ett ID eller liknande? :)
plelkesMedlem sedan mars 2002823 inlägg Nu fattar ajg inte riktigt din fråga, Sebbe men:
Själva formuläret, dvs där vätska välljs ser ut som:
<form name="fylla" method="post" action="201.asp">
Patientens personnummer: <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>
SEdan bifogar jag de två tabellerna...
Börjar de tklarna vad jag vill göra?
SebbeMedlem sedan jan. 20031 603 inlägg Det jag undrar är hur man ska veta vilken av posterna (medicinerna) i tabellen man ska ta ut. Om det har något med FluidID i tabellen att göra eller något annat?
SebbeMedlem sedan jan. 20031 603 inlägg Jo, men hur vet man vilket FluidID? Följer det med en querystring med ID:t? (Request.QueryString("id"))
plelkesMedlem sedan mars 2002823 inlägg det tordde jag att man gjorde genom kobination av
Response.Write "<TR><TD><INPUT NAME=""leggatill" & objRS("FluidID") & """ TYPE=""checkbox"" VALUE="""& objRS("FluidID") &"""></TD>"
For each formObj in Request.Form
If left(formObj,9) = "leggatill" Then
lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi ) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &" )"
Jag menar att allt har funkat tills jag blandade in tblFluids.Naperml
plelkesMedlem sedan mars 2002823 inlägg Vad tror du/Ni om följande:
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open
[B]strSQL2 = SELECT * FROM tblVetskebalans, tbl Fluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID
vatskebalans.Execute strSQL2[/B]
pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)
najoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Naperml
kaliumjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Kperml
kloridjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Clperml
fosfatjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Pperml
magnesiumjoner = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Mgperml
energi = CSng(Request.Form("volym" & lngFluidID)) * tblFluids.Eperml
For each formObj in Request.Form
If left(formObj,9) = "leggatill" Then
lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
strSQL1 = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi ) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &" )"
Response.Write strSQL
vatskeb.Execute strSQL1, , 128
End if
Next
vatskeb.close
Set vatskeb = Nothing
Ändringarna fetstilta
SebbeMedlem sedan jan. 20031 603 inlägg Jaha, då ska vi se. :)
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open
pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)
sngVolym = CSng(Request.Form("volym" & lngFluidID))
For Each Value In Request.Form
If Left(Value, 9) = "leggatill" Then
intID = Mid(Value, 10)
Exit For
End If
Next
strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
Set tblFluids = vatskeb.Execute(strSQL)
najoner = sngVolym * tblFluids.Naperml
kaliumjoner = sngVolym * tblFluids.Kperml
kloridjoner = sngVolym * tblFluids.Clperml
fosfatjoner = sngVolym * tblFluids.Pperml
magnesiumjoner = sngVolym * tblFluids.Mgperml
energi = sngVolym * tblFluids.Eperml
Set tblFluids = Nothing
For each formObj in Request.Form
If left(formObj,9) = "leggatill" Then
lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "')"
Response.Write strSQL
vatskeb.Execute strSQL, , 128
End if
Next
vatskeb.close
Set vatskeb = Nothing
Response.Redirect "101.asp"
plelkesMedlem sedan mars 2002823 inlägg När jag kör ditt förslag SEbbe:
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'tblFluids.Naperml'
/vatskebalans/201.asp, line 25
SebbeMedlem sedan jan. 20031 603 inlägg Ojdå, glömde att ändra det. :)
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open
pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)
sngVolym = CSng(Request.Form("volym" & lngFluidID))
For Each Value In Request.Form
If Left(Value, 9) = "leggatill" Then
intID = Mid(Value, 10)
Exit For
End If
Next
strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & intID
Set tblFluids = vatskeb.Execute(strSQL)
najoner = sngVolym * tblFluids("Naperml")
kaliumjoner = sngVolym * tblFluids("Kperml")
kloridjoner = sngVolym * tblFluids("Clperml")
fosfatjoner = sngVolym * tblFluids("Pperml")
magnesiumjoner = sngVolym * tblFluids("Mgperml")
energi = sngVolym * tblFluids("Eperml")
Set tblFluids = Nothing
For each formObj in Request.Form
If left(formObj,9) = "leggatill" Then
lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "')"
Response.Write strSQL
vatskeb.Execute strSQL, , 128
End if
Next
vatskeb.close
Set vatskeb = Nothing
Response.Redirect "101.asp"
plelkesMedlem sedan mars 2002823 inlägg Sebbe, dock ahr jag lite frågor:
-
var i din kod sker själva till "INSERT" av Na, K osv?
-
Kan du förklara kodsnutten:
For Each Value In Request.Form
If Left(Value, 9) = "leggatill" Then
intID = Mid(Value, 10)
Exit For
End If
Next
SebbeMedlem sedan jan. 20031 603 inlägg 1: Använde den första INSERT-satsen du skrev här. Ändra den andra For-satsen till:
For each formObj in Request.Form
If left(formObj,9) = "leggatill" Then
lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi ) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "', " & najoner & ", " & kaliumjoner & ", " & kloridjoner & ", " & fosfatjoner & ", " & magnesiumjoner &", " & energi &")"
Response.Write strSQL
vatskeb.Execute strSQL, , 128
End if
Next
2: Den tar ut ID-nummret till ID-kolumnen i tblFluids.
Hoppas att det funkar nu. :)
plelkesMedlem sedan mars 2002823 inlägg själva sidan där tblVetskebalans skall skrivas ut
<%
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\db\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">
<%
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)
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
%>
När får jag nu felutskirften:
Rad 28
Set objRS = objConn.Execute(strSQL)