08. juni 2005 - 10:07Der er
6 kommentarer og 1 løsning
Hjælp til beregning
Hej
Jeg har noget script hvor jeg kan indtaste kilometer og liter på min bil og så kan jeg se hvor meget den kører på literen skrevet ud i en graf. Men der går noget galt i beregningen. Kan i gennemskue det ?
<% 'Dimension variables Dim adoCon 'Holds the Database Connection Object Dim rsAddComments 'Holds the recordset for the new record to be added Dim strSQL 'Holds the SQL query to query the database
'Fjerner mellemrum og specille tegn fra felterne. strBil = Trim(Replace(replace(Request.Form("bil"),"'",""),"<","<")) strKilometer = Trim(Replace(replace(Request.Form("kilometer"),"'",""),"<","<")) strLiter = Trim(Replace(replace(Request.Form("liter"),"'",""),"<","<"))
'Create an ADO connection object Set adoCon = Server.CreateObject("ADODB.Connection")
'Set an active connection to the Connection object using a DSN-less connection adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bildata.mdb")
'Create an ADO recordset object Set rsAddComments = Server.CreateObject("ADODB.Recordset")
'Initialise the strSQL variable with an SQL statement to query the database 'strSQL = "SELECT * FROM bildata;" 'strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by int(kilometer) desc" strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by id desc"
'Set the cursor type we are using so we can navigate through the recordset rsAddComments.CursorType = 2
'Set the lock type so that the record is locked by ADO when it is updated rsAddComments.LockType = 3
'Open the recordset with the SQL query rsAddComments.Open strSQL, adoCon
'Tell the recordset we are adding a new record to it rsAddComments.AddNew
'Add a new record to the recordset rsAddComments.Fields("bil") = Strbil rsAddComments.Fields("kilometer") = Strkilomter rsAddComments.Fields("liter") = Strliter rsAddComments.Fields("forbrug") = FormatNumber(forbrug,2)
'Write the updated recordset to the database rsAddComments.Update
'Reset server objects rsAddComments.Close Set rsAddComments = Nothing Set adoCon = Nothing
'Redirect to the guestbook.asp page Response.Redirect "graf3.asp" %>
fejlen er :
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'FormatNumber'
/benzin/add_db.asp, line 48
og det jeg indtaster er :
i kilometer : 157945 og i liter : 36,37
jeg har prøvet at undlade , og udskifte med . men ved ik hvad der er galt!
medmindre Fields("forbrug") er et tekst felt, vil jeg anbefale at du bruger round() i stedet for formatnumber(). Hvis tallet er over 1000 kommer der nemlig både punktum og komma i tallet:
øøhh.. kilometer er tal og liter er tal Er måske ik helt med?
Tabellen har følgende :
ID - autonummerering Bil - Tekst Liter - Tal Forbrug - Tal kilometer - Tal
Jeg bruger 3 filer :
add_db.asp til at gemme indtastninger
<% 'Dimension variables Dim adoCon 'Holds the Database Connection Object Dim rsAddComments 'Holds the recordset for the new record to be added Dim strSQL 'Holds the SQL query to query the database
'Fjerner mellemrum og specille tegn fra felterne. strBil = Trim(Replace(replace(Request.Form("bil"),"'",""),"<","<")) strKilometer = Trim(Replace(replace(Request.Form("kilometer"),"'",""),"<","<")) strLiter = Trim(Replace(replace(Request.Form("liter"),"'",""),"<","<"))
'Create an ADO connection object Set adoCon = Server.CreateObject("ADODB.Connection")
'Set an active connection to the Connection object using a DSN-less connection adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bildata.mdb")
'Create an ADO recordset object Set rsAddComments = Server.CreateObject("ADODB.Recordset")
'Initialise the strSQL variable with an SQL statement to query the database 'strSQL = "SELECT * FROM bildata;" 'strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by int(kilometer) desc" strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by id desc"
'Set the cursor type we are using so we can navigate through the recordset rsAddComments.CursorType = 2
'Set the lock type so that the record is locked by ADO when it is updated rsAddComments.LockType = 3
'Open the recordset with the SQL query rsAddComments.Open strSQL, adoCon
'Tell the recordset we are adding a new record to it rsAddComments.AddNew
'Add a new record to the recordset rsAddComments.Fields("bil") = Strbil rsAddComments.Fields("kilometer") = Strkilomter rsAddComments.Fields("liter") = Strliter rsAddComments.Fields("forbrug") = round(forbrug,2) 'rsAddComments.Fields("forbrug") = FormatNumber(forbrug,2)
'Write the updated recordset to the database rsAddComments.Update
'Reset server objects rsAddComments.Close Set rsAddComments = Nothing Set adoCon = Nothing
'Redirect to the guestbook.asp page Response.Redirect "graf3.asp" %>
Indtast.asp til nye indtastninger: <% 'Dimension variables Dim adoCon 'Holds the Database Connection Object Dim rsAddComments 'Holds the recordset for the new record to be added Dim strSQL 'Holds the SQL query to query the database
'Fjerner mellemrum og specille tegn fra felterne. strBil = Trim(Replace(replace(Request.Form("bil"),"'",""),"<","<")) strKilometer = Trim(Replace(replace(Request.Form("kilometer"),"'",""),"<","<")) strLiter = Trim(Replace(replace(Request.Form("liter"),"'",""),"<","<"))
'Create an ADO connection object Set adoCon = Server.CreateObject("ADODB.Connection")
'Set an active connection to the Connection object using a DSN-less connection adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bildata.mdb")
'Create an ADO recordset object Set rsAddComments = Server.CreateObject("ADODB.Recordset")
'Initialise the strSQL variable with an SQL statement to query the database 'strSQL = "SELECT * FROM bildata;" 'strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by int(kilometer) desc" strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by id desc"
'Set the cursor type we are using so we can navigate through the recordset rsAddComments.CursorType = 2
'Set the lock type so that the record is locked by ADO when it is updated rsAddComments.LockType = 3
'Open the recordset with the SQL query rsAddComments.Open strSQL, adoCon
'Tell the recordset we are adding a new record to it rsAddComments.AddNew
'Add a new record to the recordset rsAddComments.Fields("bil") = Strbil rsAddComments.Fields("kilometer") = Strkilomter rsAddComments.Fields("liter") = Strliter rsAddComments.Fields("forbrug") = round(forbrug,2) 'rsAddComments.Fields("forbrug") = FormatNumber(forbrug,2)
'Write the updated recordset to the database rsAddComments.Update
'Reset server objects rsAddComments.Close Set rsAddComments = Nothing Set adoCon = Nothing
'Redirect to the guestbook.asp page Response.Redirect "graf3.asp" %>
og graf3.asp til at vise graferne/resultaterne <% 'Dimension variables Dim adoCon 'Holds the Database Connection Object Dim rsAddComments 'Holds the recordset for the new record to be added Dim strSQL 'Holds the SQL query to query the database
'Fjerner mellemrum og specille tegn fra felterne. strBil = Trim(Replace(replace(Request.Form("bil"),"'",""),"<","<")) strKilometer = Trim(Replace(replace(Request.Form("kilometer"),"'",""),"<","<")) strLiter = Trim(Replace(replace(Request.Form("liter"),"'",""),"<","<"))
'Create an ADO connection object Set adoCon = Server.CreateObject("ADODB.Connection")
'Set an active connection to the Connection object using a DSN-less connection adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bildata.mdb")
'Create an ADO recordset object Set rsAddComments = Server.CreateObject("ADODB.Recordset")
'Initialise the strSQL variable with an SQL statement to query the database 'strSQL = "SELECT * FROM bildata;" 'strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by int(kilometer) desc" strSQL = "select top 1 * from bildata where bil = '" & strBil & "' order by id desc"
'Set the cursor type we are using so we can navigate through the recordset rsAddComments.CursorType = 2
'Set the lock type so that the record is locked by ADO when it is updated rsAddComments.LockType = 3
'Open the recordset with the SQL query rsAddComments.Open strSQL, adoCon
'Tell the recordset we are adding a new record to it rsAddComments.AddNew
'Add a new record to the recordset rsAddComments.Fields("bil") = Strbil rsAddComments.Fields("kilometer") = Strkilomter rsAddComments.Fields("liter") = Strliter rsAddComments.Fields("forbrug") = round(forbrug,2) 'rsAddComments.Fields("forbrug") = FormatNumber(forbrug,2)
'Write the updated recordset to the database rsAddComments.Update
'Reset server objects rsAddComments.Close Set rsAddComments = Nothing Set adoCon = Nothing
'Redirect to the guestbook.asp page Response.Redirect "graf3.asp" %>
øh..jeg har lige mistet overblikket over min egen kode hehe.. Men der er sgu da noget galt i add_db.asp for hvad er rsaddcomment("kilometer") Den er jo tom. Åh nej. Kan du hjælpe ? ;o)
argh...det er garanteret det her mail problem...skidt. Skriv til mig hvis du skal have point eller kan hjælpe mere
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.