428 messaggi dal 06 settembre 2002
ho un DB da aprire, ci sono 4 tabelle tutte con i seguenti campi:

titolo (tipo testo)
corpo(tipo memo)
data (tipo data)
id (contatore)

questa e' la parte di codice dove mi da l'errore!
<%
tab=request.querystring("tab")
rec=request.querystring("id")
Dim objconn, objrs
Set objconn=Server.CreateObject("ADODB.Connection")
objconn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("../../db1/ark.mdb")
objconn.Open
varSQL="SELECT*FROM "& tab &" WHERE id ='" & rec & "'"
Set objrs = Server.CreateObject("ADODB.Recordset")
objrs.Open varSQL, objconn
%>

Questo è l'errore che ricevo:

Microsoft OLE DB Provider for ODBC Drivers errore "80040e07'

[Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.

/iisadmin/website/ank/ark.asp, riga 34

cioe' la riga objrs.Open varSQL, objconn

qualcuno mi aiuti! per favore!

§§################################################§§
-La gente da buoni consigli se non può più dare il cattivo esempio-
§§################################################§§
49 messaggi dal 06 settembre 2002
Devi scrivere la where in questo modo:

<b>& " WHERE id =" & rec</b>

Ovvero senza i singoli apici in quanto il contatore è di tipo numerico, mentre gli apici si utilizzano per i tipi testo e date.

Ciao.
635 messaggi dal 06 settembre 2002
Ciao, se il codice postato è esattamente quello utilizzato, modifica la varSQL così:

varSQL="SELECT * FROM "& tab &" WHERE id =" &rec

Tieni presente che, per effettuare un confronto fra un valore numerico e un indice (contatore) di un database Access, il valore numerico deve essere di tipo intero lungo.

Se la variabile rec non contiene un valore prelevato da un altro contatore di un'altra tabella access, allora dopo rec=request.querystring("id") aggiungi questa istruzione

rec=CInt(rec) 'trasformi il numero in intero.

Ciao.



 JD

OJD

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.