Provo a spiegare il mio problema:
Nel mio negozio virtuale quando si arriva a visualizzare la pagina dei dettagli del prodotto, c'è anche il pulsante per aggiungere il prodotto al carrello. Premendo il pulsante possono accadere due cose: se l'utente ha già effettuato il login allora il prodotto viene aggiunto nel carrello altrimenti appare la pagina registrazione.asp che permette o di fare il login oppure di registrarsi compilando l'apposito modulo.
La pagina che permette questo è la seguente:


<%
'estrazione id del prodotto
IDprodotto = TRIM ( Request( "pid" ))

'estrazione informazioni di accesso
username = TRIM( Request( "username" ))
password = TRIM( Request( "password" ))
registra = TRIM( Request( "registra" ))
error = TRIM( Request( "error" ))

dim driverString, databaseString, connString
dim objConn
driverString="DRIVER={Microsoft Access Driver (*.mdb)};"
databaseString="DBQ=" & Server.MapPath("./db/ecommerceDB.mdb") & ";"
connString=driverString & databaseString
set objConn=Server.createObject("ADODB.connection")
objConn.Open connString

'verifica nuova registrazione
IF registra <> "" AND error = "" THEN
addUser
END IF

'richiama la funzione presente in validazione.asp che è incluso
'all'inizio di questa pagina e che controlla se nome utente e password
'sono presenti nel database, se è presente restituisce l'userID = 1 o
'> 1 e si accederà alla pagina aggcarrello.asp (vedi sotto)
'altrimenti si dovrà effettuare la registrazione
userID = checkpassword( username, password, objConn )

IF userID > 0 THEN
%>

<% ELSE %>

<%
END IF
%>

Nel file validazione.asp ho creato la funzione checkpassword() in questo modo:

FUNCTION checkpassword( username, password, objConn )
sqlString = "SELECT user_username, user_password FROM users " &_
"WHERE user_username='" & fixQuotes( username ) & "'" &_
"AND user_password='" & fixQuotes( password ) & "'"
SET catRecSet = objConn.Execute( sqlString )
IF catRecSet.EOF THEN
checkpassword = user_id
ELSE
checkpassword = 0
END IF
catRecSet.Close
END FUNCTION

Però non funziona!!
questo è l'errore che mi dà:
Tipo di errore:

Errore di run-time di Microsoft VBScript (0x800A000D)
Tipo non corrispondente: 'checkpassword'

Qualcuno sà dirmi dove ho sbagliato???
Grazie!