Salve a tutti, avrei un problema con una pagina che continua a darmi il seguente errore:

tipi di dati non corrispondenti nell'espressione criterio

Praticamente il mio problema è questo.

Ho una tabella con degli articoli ed una foto ( nel caso dovessi associare una sola foto a quell'articolo ) e una, correleta, per le foto aggiuntive.

TABELLA ARTICOLI

IDarticoli
articolo
ecc
foto
rndField ( numerico )


TABELLA FOTOARTICOLI

IDfoto
articoloID
foto

Devo memorizzare, assieme agli altri dati inseriti dall'utente, un dato da noi impostato: dopo l'inserimento basterà interrogare la tabella alla ricerca di questo valore per ottenere l'ID del record. Inoltre, il codice che recupera l'ID mediante questa interrogazione, dovrà essere insensibile agli eventuali ritardi nella creazione del record sul database.

Nel form da compilare aggiungo un campo nascosto a cui assegno, come valore l'ID di sessione ossia, il codice HTML del campo è:


codice:
<input type="hidden" name="rndField" value="<%= Session.SessionID%>">
Non posso usare il metodo Request dal momento che faccio l'upload delle foto.

Dopo invio i dati ad una pagina che mi calcolerà lID:

codice:
MM_editConnection = MM_piscinola_STRING
  MM_editTable = "articoli"
  MM_editRedirectUrl = "trova.asp?rndField=" & Session.SessionID
ora il problema sorge nella pagina successiva quando poi vado a svuotare il campo rndField della tabella, altrimenti, in un successivo inserimento da parte dello stesso utente, essendo la SessionID la stessa, succede un casino. La pagina è la seguente:

codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%


Dim objRs__MMColParam, intID
objRs__MMColParam = "1"
If (Request.QueryString("rndField") <> "") Then 
  objRs__MMColParam = Request.QueryString("rndField")
End If
%>
<%
Dim objRs
Dim objRs_numRows
Dim MM_editRedirectUrl

MM_editRedirectUrl = "insert_altre_foto_prima.asp"

Set objRs = Server.CreateObject("ADODB.Recordset")
objRs.ActiveConnection = MM_piscinola_STRING
objRs.Source = "SELECT IDarticoli FROM articoli WHERE rndField = " + Replace(objRs__MMColParam, "'", "''") + ""
objRs.CursorType = 0
objRs.CursorLocation = 2
objRs.LockType = 1
//objRs.Open()

objRs_numRows = 0

// Inizializza il ciclo semi-infinito 
Do 
    // Apre il recordset 
    objRs.Open() 
    // Verifica se esiste il record 
    If Not objRs.EOF Or Not objRs.BOF Then 
        // Recupera l'ID 
        intID = objRs.Fields("IDarticoli") 
    End If 
    // Chiudo il recordset 
   objRs.Close()
// Chiude il ciclo 
Loop Until intID > 0 
%>

<%
Set Conn=server.createobject("adodb.connection")
	Conn.Open MM_piscinola_STRING
	'Set RS = Server.CreateObject("ADODB.Recordset")

// svuota il campo rndField ( numerico )
	
StrSQL = "UPDATE articoli set rndField = NULL Where IDarticoli = '" & IDarticoli & "'"
	Conn.execute StrSQL
	Conn.close
	
	  
	Set objRs = Nothing
	set Conn = nothing

Session("AltreFoto") = intID

// Richiama la pagina per l'inserimento altri dati trasmettendo anche l'ID 
Response.Redirect(MM_editRedirectUrl)
//Response.Write(Session("AltreFoto"))
Response.End 
%>
Funziona tutto, ma quando ho aggiunto l'istruzione UPDATE, mi da l'errore citato prima.

Sbaglio da qualche parte ma non riesco a capire dove.

Chi mi da una mano???? Sono bloccato da mezza giornata

Grazie e Bye