öööh?
Med din kod så kommer man väl till error-sidan om den hittar serienumret.
Ska väl vara
if recordset("serienr") <> request.form(serienr") then
response.redirect ("error.asp")
eller?
------------------
Olle: Pappa, jag har fått en sticka i fingret...
Pappa: Nämen Olle, hur många gånger har jag sagt åt dig att du inte får klia dig i huvudet.
ehm. om jag har fattat det hela rätt så vill du plocka ut ett fält ur databasen där serienummret är det samma som det som skrivs in i formuläret?
isåfall vore det väl lättast att använda sig av en SQL-sträng. Typ:
SQL = "SELECT * FROM tabell WHERE serie = " & Request.Form("serie")
set rs = connection.execute(SQL)
if rs.EOF Then
Response.Redirect("error.asp")
Else
' gör det som skall ske ifall posten fanns
End if
men, jag kan ju också ha förstått det hela fel....
------------------
There is always
something more to do
Tack det borde ju funka, det blir som ett lösenord.
Men hur kan man få det att skriva ut just den posten som
innehåller serienummret som man har skrivit in.
Det vill inte funka
Jag har en databas med namn "db.mdb" sökväg:c:\inetpub\wwwroot\databas\db.mdb
och en tabell med namn "test"
Jag har kolumer med namn serie, modell, year och text
Och "adovbs.inc" på plats
Måsta den vara med?
Och trodde det skulle kunna ta imot av "b.asp" enligt nedan
<html>
<!-- #include virtual="/databas/adovbs.inc" -->
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\databas\db.mdb"
RecSet.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic
Set RecSet = Server.CreateObject("ADODB.Recordset")
%>
<%
SQL = "SELECT * FROM test WHERE serie = " & Request.Form("serie")
set rs = connection.execute(SQL)
if rs.EOF Then
Response.Redirect("error.asp")
Else %>
Dessa uppgifter finns på maskinen med ditt serienummer<BR>
<%RecSet("modell")%><BR>
<%RecSet("year")%><BR>
<%RecSet("text")%><BR>
<%End if %>
<%Connect.Close %>
</html>
Men det vill sig inte någon som vet vad alla felen är
Jag skrev om lite. Om man inte hittade något så stängs aldrig connection. Du hämtar data till rs men skriver recset sedan, ändrade det också.
<html>
<!-- #include virtual="/databas/adovbs.inc" -->
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\databas\db.mdb"
SQL = "SELECT * FROM test WHERE serie = " & Request.Form("serie")
set rs = connection.execute(SQL)
found = not rs.eof
if found then
%>
Dessa uppgifter finns på maskinen med ditt serienummer<BR>
<%= RS("modell")%><BR>
<%= RS("year")%><BR>
<%= RS("text")%><BR>
<%
End if
rs.close
set rs = nothing
Connect.Close
set connect = nothing
if not found then
response.redirect "error.asp"
end if
%>
</html>
En sak som jag undrar är vilken datatyp kolumnen serie är. Om den är av typen character så skall sökvärdet omges av '
Vad får du för fel nu?
------------------ essentitia preter non sans multiplicandum
Om jag inte ändrar Server.CreateObject("ADODB.connection")
till connect för det skall man väll inte ?
<html>
<!-- #include virtual="/databas/adovbs.inc" -->
<% Set connect = Server.CreateObject("ADODB.connection")
connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\databas\db.mdb"
SQL = "SELECT * FROM test WHERE serie = " & Request.Form("serie")
set rs = connect.execute(SQL)
found = not rs.eof
if found then
%>
Dessa uppgifter finns på maskinen med ditt serienummer<BR>
<%= RS("modell")%><BR>
<%= RS("year")%><BR>
<%= RS("text")%><BR>
<%
End if
rs.close
set rs = nothing
connect.Close
set connect = nothing
if not found then
response.redirect "error.asp"
end if
%>
</html>
så får jag felmedelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e07'
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/databas/b.asp, rad 7
rad 7 = set rs = connect.execute(SQL)
om jag även ändrar till Server.CreateObject("ADODB.connect")
får jag medelandet: