Funzione StoredProcedureAccess
Crea un recordset eseguendo una STORED PROCEDURE di Access con il passaggio di parametri

Fino a ieri non credevo che si potessero passare parametri a stored procedure di accesss create in asp e con mio sommo stupore ho scoperto
il contrario.
Voi direte , hai scoperto l'acqua calda! Be' cmq ho quindi implementato in qualche mio script una funzione che eseguisse le stored procedure
La funzione accetta 3 parametri:
1)la connessione attiva (precedentemente creata)
2)il nome della stored procedure
3) un array bidimensionale contentente uno per uno i parametri da inviare alla query insieme al valore e il cast della variabile.

Posto il codice + un esempio e spero che possa essere utile a chiunque abbia necessita' di questo tipo:
codice:
<%
Function StoredProcedureAccess(ByRef Connection,ByVal NomeQuery,ByRef ArrayParametri,ByRef ResultRs)
	TipoStoredProcedure			= 4 ' costante adCmdStoredProc  nel adovbs.inc
	ParametroInput     			= 1 ' costante adParamInput     nel adovbs.inc
	Set Command 				= Server.CreateObject("ADODB.Command")
	Command.ActiveConnection 	= Connection	'Imposto la connessione attiva
	Command.CommandText 		= NomeQuery		'Nome della stored procedure in Access
	Command.CommandType 		= TipoStoredProcedure
	'Scorro l'array bidimensionale alla ricerca dei parametri da inviare all'oggetto Command	
	For riga = 0 To UBound(ArrayParametri, 2) ' il numero della prima dimensione è variabile
		NomeParametro = null : ValoreParametro = null : TipoParametro = null
		NomeParametro 	= ArrayParametri(0,riga)
		ValoreParametro	= ArrayParametri(1,riga)
		TipoParametro	= ArrayParametri(2,riga)
		'Dichiaro il parametro creandolo parametrico con il metodo Execute
		if not isNull(NomeParametro) and not isNull(valoreParametro) and not isNull(TipoParametro) then 
			Execute("Dim Parametro" & riga )
			'Lo instanzio
			Execute("Set Parametro" & riga & "= Command.CreateParameter(NomeParametro,TipoParametro,ParametroInput)")
			'Imposto il valore del parametro
			Execute("Parametro" & riga  & ".Value = ValoreParametro")
			'Lo appendo all'oggetto Command
			Execute("Command.Parameters.Append 	Parametro" & riga) 
			'Elimino dalla memoria l'oggetto
			Execute("Set Parametro" & riga & "= nothing") 
		end if 
	Next
	'Valorizzo l'oggetto passato come parametro alla funzione trasformandolo in recordset
	Set ResultRs 				= Command.Execute
	'Pulisco la memoria
	Set Command					= Nothing
End Function
%>
Esempio di funzionamento:
In access nel pannello query ho creato una query con questo SQL:
SELECT * FROM T_FATTURE WHERE Numero_Cliente =[id] and Condizione_Fattura = [od];
e l'ho salvata con il nome di LOURDES
codice:
<%
Dim Rs,Connection
Set Connection		 			= Server.CreateObject("ADODB.Connection")
'Apro la connessione
Connection.Open 	   			"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/") & "\database\prove.mdb"
'Creo l'array bidimensionale che contiene i parametri, i valori dei parametri ed il cast dei parametri
Dim ArrParameters(2,1)
ArrParameters(0,0) 				=  "id"      ' Nome del primo parametro
ArrParameters(1,0) 				=  2 		 ' Valore del primo parametro (numero cliente = 2)
ArrParameters(2,0) 				=  3		 ' Tipo del primo parametro (3 = intero - in adobvs Const adInteger)
ArrParameters(0,1) 				=  "od"		 ' Nome del secondo parametro
ArrParameters(1,1) 				=  "sospesa" ' Valore del secondo parametro (Condizione_Fattura = 'sospesa')
ArrParameters(2,1) 				=  12  		 ' Tipo del secondo parametro (12  = in adobvs Const adVariant )
'Lancio la funzione 
StoredProcedureAccess			Connection,"LOURDES",ArrParameters,Rs
%>
<html>
<body>
<%
'A questo punto potete scorrere il recordset come fate normalmente
While not Rs.eof 
	Response.Write				"Data Fattura: "   & Rs("Data") & "
"
	Response.Write				"Numero Fattura: " & Rs("Numero_fattura") & "
"
	Response.Write 				"Totale Importo: " & Rs("Totale") & "<hr>"
	Rs.movenext
Wend
Connection.Close
Set Connection 					= Nothing
%>
</body>
</html>
Spero possa tornarvi utile