Testa att byta ut
response.redirect "talkie_vanta.asp?farg="&farg&"&id='"&rs("id")&"'"
mot
response.redirect "talkie_vanta.asp?farg=" & farg & "&id=" & rs("id") & ""
13 svar · 460 visningar · startad av DiDjo
Hejsan, jag får inte detta att fungera:
farg = orange
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("****.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM nya"
rs.Open Addera, Connect, 3, 3
rs.addnew
rs("vem") = vem
rs("fran") = gnamn
rs("datum") = now()
rs.update
response.redirect "talkie_vanta.asp?farg="&farg&"&id='"&rs("id")&"'"
%>
Får detta:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/kommun/talkie_vanta.asp, line 22
Och raderna på talkie_vanta.asp
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("***.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM nya where id = '"&request.querystring("id")&"'"
rs.Open Addera, Connect, 3, 3
Betyder alltså att jag inte får med querystringsen rätt? Och jag klantar alltid till de med Querystrings
Testa att byta ut
response.redirect "talkie_vanta.asp?farg="&farg&"&id='"&rs("id")&"'"
mot
response.redirect "talkie_vanta.asp?farg=" & farg & "&id=" & rs("id") & ""
samma fel iaf...
Addera = "SELECT * FROM nya where id = " & _
request.querystring("id")
LarsG:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'id ='.
/kommun/talkie_vanta.asp, line 23
Jag kollade vad den fick med för querystrings:
talkie_vanta.asp?farg=rod&id=''
alltså får den inte med idn... är det för att idn skapas på precis innan? Måste databas kopplingen uppdateras först?
Byt ut
Addera = "SELECT * FROM nya"
rs.Open Addera, Connect, 3, 3
rs.addnew
rs("vem") = vem
rs("fran") = gnamn
rs("datum") = now()
rs.update
response.redirect "talkie_vanta.asp?farg="&farg&"&id='"&rs("id")&"'"
strSQL = "UPDATE nya SET vem = '"& vem &"' , fran = '"& gnamn &"' datum = '"& now() &"'"
Connect.execute(strSQL)
strSQL = "SELECT id FROM nya"
SET RS = Connect.execute(strSQL)
response.redirect "talkie_vanta.asp?farg="&farg&"&id="&RS("id")
Föresten? i select satsen ska du inte specificera viket ID den ska selecta från databasen? bara en tankefråga sådär när jag såg koden.
Försök att inte använda RS.update metoden, kör en riktig SQL sats istället
Red: ojda skulle inte vara en Update fråga, skulle vara en Insert fråga
strSQL = "INSERT INTO nya (vem,fran,datum) VALUES ('"& vem &"' , '"& gnamn &"' , '"& now() &"')
Connect.execute(strSQL)
Okej, men jag får hela tiden samma ID med mig.... ID:t skapas automatiskt i access databasen! Och det kan finnas flera poster med mitt namn och den andres..
strSQL = "INSERT INTO nya (vem,fran,datum) VALUES ('"& vem &"' , '"& gnamn &"' , '"& now() &"')
Connect.execute(strSQL)
strSQL = "SELECT @@identity as last_id FROM nya"
SET RS = Connect.execute(strSQL)
response.redirect "talkie_vanta.asp?farg="&farg&"&id="&RS("last_id")
Fungerar det då?
@@identity, plockar ut det senaste inserten just du gjort, dvs om 50 pers skulle posta samtidigt finns ingen risk att du skickas vidare till fel ID! Jag är dock lite osäker på SELECT satsen då jag inte hållt på med @@identity med Acces, utan endast motsvarigheten i mySQL.
Tackar så mycket! Det fungerar