Se till att du använder samma typ av data hela tiden.
Du kan alltså inte gemföra ett fält av typen tal med en av typen text. Då får du felmeddelandet Type mismtch.
Lycka till!
7 svar · 318 visningar · startad av Johanneshov
Något är fel här... Id för den artikel (artikeltabell) som skall sparas i en kommentartabell hänger inte med (verkar det som)?
Jag har en sida som visar en artikel med eventuella kommentarer. Längst ned på sidan finns en form som skickar kommentarinlägget till db artikel_kommentar. Jag får dock Type Mismatch när jag skall lagra artikelid i artikelkommentardatabasen eller så lagras inte artikelid i artikeldatabasen. Vad är fel...? ;-)
Koden ser i kort ut som följer:
SQL = "SELECT * From artikel_kommentar where artikelid= "& Request.Querystring("reportageid") &" "
Recset.Open SQL, Conn
...Visar eventuell kommentarer...
Visar en "form" som skickar datat (action) vidare för lagring av artikelkommentar...
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=reportageid" onSubmit="return formkoll()">
l
Hänger id=reportageid med ovan???
% IF Request.Querystring("do") = "sparakommentar" AND Request.Querystring("id") = "reportageid" Then
...
...
RecSet("artikelid")=Request.Querystring("reportageid")
...och här får jag Type ismatch, om jag ändrar reportageid till id funkar får jag inget fel men artikelid i tabellen artikelkommentar sparas inte. Alltså måste något vara fel, variabeln hänger inte med i Request.Query eller...??
Tack på förhand
Johanneshov
Se till att du använder samma typ av data hela tiden.
Du kan alltså inte gemföra ett fält av typen tal med en av typen text. Då får du felmeddelandet Type mismtch.
Lycka till!
artikelid är long integer autonumber och artikelid i kommentar är Number Long Integer... så det torde ju vara ok!
Frågan är vad som ligger i Request.Querystring("reportageid")
längst ned, hur kollar jag det innan jag skriver ut den??? OBS nybörjare! ;-)
Tanken är att det skall vara samma värde som hängt med sedan första kodsnutten...
SQL = "SELECT * From artikel_kommentar where artikelid= "& Request.Querystring("reportageid") &" "
Recset.Open SQL, Conn
Vill du inte skicka med värdet som finns i reportageid istället för strängen reportageid?
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=<%= reportageid %>" onSubmit="return formkoll()">
Eller ska du skicka med den strängen också?
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=reportageid&reportageid=<%= reportageid %>" onSubmit="return formkoll()">
Jag är inte helt hundra på hur du vill ha det.
edit: om du inte har skapat variabeln reportageid får du göra det, eller ersätta med request.querystring("reportageid").
mvh
Detta kollar om det är ett numriskt värde i QuerystSingen.
If isNumeric(Request.Querystring("reportageid")) then
SQL = "SELECT * From artikel_kommentar where cInt(artikelid)= "& cInt(Request.Querystring("reportageid")) &";"
Set rs = Connect.Execute(SQL)
end if
Funkar det inte så får du visa mer kod ;)
Jag vill skicka med det nukeriska värdet i reportageid
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=<%= reportageid %>" onSubmit="return formkoll()">
Detta vill jag sedan lagra i databasen artikel_kommentar med följande:
<% IF Request.Querystring("do") = "sparakommentar" Then
Set Conn = Server.CreateObject("ADODB.Connection")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/nyheter.mdb")
Addera = "SELECT * FROM artikel_kommentar"
RecSet.Open Addera, Conn, 3, 3
RecSet.Addnew
RecSet("artikelid")= ***HJÄLP MIG****
RecSet("kommentar")=Request.Form("kommentar")
RecSet("namn")=Request.Form("namn")
RecSet("email")=Request.Form("email")
RecSet("datum")=Date()
RecSet.Update
RecSet.Close
Conn.Close
Set RecSet = nothing
Set Connect = nothing
Response.Redirect("reportage.asp?do=visa")
End if
%>
Nu är jag rejält trött... Hur skall jag skriva för att lagra in värdet av reportageid i databasen... Måste jag omforma IFsatsen.. för att hämta upp resultatet av action i from? Vad skall stå i ***HJÄLP MIG*** ovan altså... ,-)
MVH
Johanneshov
@nders skrev:
Rättelse till mikuls inlägg:
Funktionen heter isNumeric(), inget annat.
Mvh,
Word! ;) Alla är inte perfekta :P
<%
Function fix(str)
str = Replace(trim(str), "'", "''")
fix = str
End function
IF Request.Querystring("do") = "sparakommentar" Then
IF IsNumeric(Request.QueryString("ID")) then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "provider=microsoft.jet.oledb.4.0; data source =" & Server.MapPath("db/nyheter.mdb")
SQL = " Insert into artikel_kommentar(artikelid, kommentar, namn, email, datum)"_
& " Values("& Request.QueryString("ID") &", '"& Fix(Request.Form("kommentar")) &"',"_
& " '"& Fix(Request.Form("namn")) &"', '"& Fix(Request.Form("email")) &"',"_
& " '"& Date() &"');"
Conn.Execute(SQL),,128
Conn.Close : Set Conn = nothing
Response.Redirect("reportage.asp?do=visa")
Else
Response.write "Nått Blev fel.<br>"
End if
End if
%>
Det borde nog funka fint ;)