Microsoft VBScript runtime error '800a01a8' : Object required
69 svar · 1 137 visningar · startad av plelkes · sida 3 av 4
Nej, det är inte meningen heller! ;)
Vad är det som skrivs ut? Ett nummer eller att jag är förvirrad?
Det som är förvånande att denna 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)
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
fungerar - tack @nders :bire
Nu har det blivvit så förvirrat , så jag tänker starta en nytråd: "Multiplikation innan uppdatering"
Nu har jag suttit och trixat lite, och jag tror nog att det här funkar. :)
Dim arrLegga(), arrVolym()
i = 0
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\vatskebalans\db\vbalans.mdb")
For Each Value In Request.Form
If Left(Value, 9) = "leggatill" AND Request.Form(Value) <> "" Then
ReDim Preserve arrLegga(intLegga)
arrLegga(intLegga) = CSng(Mid(Value, 10))
intLegga = intLegga + 1
ElseIf Left(Value, 5) = "volym" AND Request.Form(Value) <> "" Then
ReDim Preserve arrVolym(intVolym)
arrVolym(intVolym) = Mid(Value, 6) & ":" & Request.Form(Value)
intVolym = intVolym + 1
End If
Next
For j = 0 To UBound(arrLegga)
If arrLegga(j) = CSng(Split(arrVolym(j), ":")(0)) Then
strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & arrLegga(j)
Set objRS = objConn.Execute(strSQL)
sngVolym = CSng(Split(arrVolym(j), ":")(1))
intNajoner = sngVolym * objRS("Naperml")
intKaliumjoner = sngVolym * objRS("Kperml")
intKloridjoner = sngVolym * objRS("Clperml")
intFosfatjoner = sngVolym * objRS("Pperml")
intMagnesiumjoner = sngVolym * objRS("Mgperml")
intEnergi = sngVolym * objRS("Eperml")
Set objRS = Nothing
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi) VALUES(#" & FormatdateTime(Date(), 2) & "#, '" & arrLegga(j) & "', " & Split(arrVolym(j), ":")(1) & ", '" & Replace(Request.Form("personnr"), "'", "''") & "', " & intNajoner & ", " & intKaliumjoner & ", " & intKloridjoner & ", " & intFosfatjoner & ", " & intMagnesiumjoner & ", " & intEnergi & ")"
objConn.Execute(strSQL)
End If
Next
objConn.Close : Set objConn = Nothing
fortfarande lagras inte värden från Na, K, mg, osv
Jag redigerade mitt meddelande, så testa med det som står nu. Det kan ju tänkas att det var det du redan använde, men det är bäst att testa igen. :)
Nu har jag testat med hjälp av databasen du skickade med, så nu borde (läs ska) det funka!
Dim arrLegga(), arrVolym()
i = 0
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databas.mdb")
For Each Value In Request.Form
If Left(Value, 9) = "leggatill" AND Request.Form(Value) <> "" Then
ReDim Preserve arrLegga(intLegga)
arrLegga(intLegga) = CSng(Mid(Value, 10))
intLegga = intLegga + 1
ElseIf Left(Value, 5) = "volym" AND Request.Form(Value) <> "" Then
ReDim Preserve arrVolym(intVolym)
arrVolym(intVolym) = Mid(Value, 6) & ":" & Request.Form(Value)
intVolym = intVolym + 1
End If
Next
For j = 0 To UBound(arrLegga)
For k = 0 To UBound(arrVolym)
If arrLegga(j) = CSng(Split(arrVolym(k), ":")(0)) Then
strSQL = "SELECT * FROM tblFluids WHERE FluidID = " & arrLegga(j)
Set objRS = objConn.Execute(strSQL)
sngVolym = CSng(Split(arrVolym(k), ":")(1))
intNajoner = Replace(sngVolym * objRS("Naperml"), ",", ".")
intKaliumjoner = Replace(sngVolym * objRS("Kperml"), ",", ".")
intKloridjoner = Replace(sngVolym * objRS("Clperml"), ",", ".")
intFosfatjoner = Replace(sngVolym * objRS("Pperml"), ",", ".")
intMagnesiumjoner = Replace(sngVolym * objRS("Mgperml"), ",", ".")
intEnergi = Replace(sngVolym * objRS("Eperml"), ",", ".")
Set objRS = Nothing
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID, Na, K, Clorid, Fosfat, Magnesium, Energi) VALUES(#" & FormatdateTime(Date(), 2) & "#, '" & arrLegga(j) & "', " & sngVolym & ", '" & Replace(Request.Form("personnr"), "'", "''") & "', " & intNajoner & ", " & intKaliumjoner & ", " & intKloridjoner & ", " & intFosfatjoner & ", " & intMagnesiumjoner & ", " & intEnergi & ")"
objConn.Execute(strSQL)
End If
Next
Next
Sebbe skrev:
Nu har jag testat med hjälp av databasen du skickade med, så nu borde (läs ska) det funka!
Jag är ledsen, men jag får ej det hela att funka *snyft*
plelkes skrev:
Sebbe skrev:
Nu har jag testat med hjälp av databasen du skickade med, så nu borde (läs ska) det funka!
Jag är ledsen, men jag får ej det hela att funka *snyft*
Du skojar!? Det funkade utmärkt när jag testade. Det är inte så att du skapar en patient som bara använder mediciner som inte har några värden där det blir 0? För de flesta mediciner har ju bara 0.000 i alla kolumner i tabellen tblFluids har jag märkt.
Sebbe skrev:
tabellen tblFluids har jag märkt.
Nu skojjar du väl med mig? Titta tex på nummer 14 och 33
Jo, men jag sa "de flesta", inte "alla". Det verkar mycket konstigt att det inte funkar, det funkade utmärkt för mig.
Vad är det som blir fel? Att det inte kommer in några värden, utan att det bara blir 0? I så fall beror det nog på det jag sa innan.
Vet inte om det är brinkster som skojar med mig - eller vad felet är, men jag skickar med alla aktuella sidor inkl databasen.
SEbbe skrev:
utan att det bara blir 0?
Det stämmer att det bara blir 0. menjag försöker med sådana som innehåller annat än 0
Du kan kolla själv...
Det senaste jag gjorde:
kryssade i Glukos-EL 100 mg/ml
Sedan tryckte jag på knappen
Men det blir ju ändå bara 0er för personnummer 1313131313
Jag tycker att det fungerar bra. :)
http://sebbe.l2arts.com/plelkes/visa_tblVetskebalans.asp
Men varför fungerar inte det hela för mig?
Kan det vara brinkster som spökar??
Jadu, det kan det nog göra, för det funkade utmärkt för mig när jag skrev in 3 st Glukos-EL 100 mg/ml.
Personnummer 1121121. :o
Sebbe skrev:
Jadu, det kan det nog göra, för det funkade utmärkt för mig när jag skrev in 3 st Glukos-EL 100 mg/ml.
Såg det, Sebbe...
Då kanske jag skulle sparka igång min gamla, sega burk med win 98SE
Hur var det nu man skulle skriva mappath om jag har databas +´filer i inetpub/wwwroot/vetskebalabs/vbalans.mdb?