Buongiorno.

Sto cercando di eseguire dei controlli su un valore che arriva da un form; il form si chiama "matricola" ed ho scritto così:
codice:
matricola = request.form("matricola")

if Len(Trim(matricola)) <> "Matricola" then
  Response.Write("La variabile contiene dei valori")
  sql = "SELECT * FROM tabella where matricola = "&matricola&" order by id asc"
else
  Response.Write("La variabile NON contiene dei valori")
end If
set rs = server.createObject("ADODB.Recordset")
rs.open sql, cn, 1, 3

if rs.eof then
response.write ("<center>
Non risultano al momento records da consultare per il valore selezionato.</center>") & "
"
else

While Not rs.eof	
%>
...
<%
rs.MoveNext
wend
end if

rs.close
cn.Close

set rs = nothing
set cn = Nothing

%>
Ma quando seleziono un valore dal form (1,2,3,4 etc) la pagina va in errore:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression
su questa riga:
codice:
rs.open sql, cn, 1, 3
Mentre quando non seleziono nulla (Matricola) il controllo resituisce sempre "La variabile contiene dei valori".

Dove sto sbagliando?