Non so se possa essere utile (č da un secolo che non uso asp). Questo č una pagina con due select concatenate, REGIONI-PROVINCE
codice:
<%@ Language=VBScript %>
<%
	option explicit
	
	Response.Buffer = true
	
	onload

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Pagina senza titolo</title>
    <script type="text/javascript" src="../../../js/sajax.js"></script>

    <script language="javascript" type="text/javascript">
// <!CDATA[
function recupera_province(v)
{
    var id_regione = v.value;
    if(id_regione == "")
    {
        $("div1").innerHTML = "";
        return;
    }
    
    var parametri = "id_regione=" + id_regione;
    sajax("?comando_ajax=trova_province", onload, parametri);
    function onload()
    {
        var t = this.request.responseText;
        $("div1").innerHTML = t;
    }
    
}


// ]]>
    </script>
</head>
<body>
    <table>
        <tr>
            <td>Regioni:</td>
            <td><select id="regioni" onchange="recupera_province(this);" ><%=regioni()%></select></td>
        </tr>
        <tr>
            <td>Province</td>
            <td><div id="div1"></div></td>
        </tr>
    </table>
</body>
</html>

<%

sub onload()
    dim comando_ajax
    
    comando_ajax = Request("comando_ajax")
    if(comando_ajax = "trova_province") then
        trova_province
    end if

end sub

sub trova_province()
    dim id_regione
    id_regione = Request("id_regione")
    response.Clear
    response.Write province(id_regione)
    response.End
end sub

function regioni()
    dim db, rs, sql

    set db = server.CreateObject("ADODB.Connection")
    set rs = server.CreateObject("ADODB.RECORDSET")

    db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb;User Id=admin;Password=;" 


    sql = "SELECT * FROM REGIONI"

    rs.Open sql, db, 3, 3
    dim s
    
    s = "<option value=""""></option>"
    do while not rs.EOF
	    s = s & "<option value=""" + rs(0) + """ >" & rs(1) & "</option>"
	    rs.MoveNext
    loop
    regioni = s
    
    rs.Close: set rs = nothing
    db.Close: set db = nothing

end function

function province(id_regione)
    dim db, rs, sql, s

    set db = server.CreateObject("ADODB.Connection")
    set rs = server.CreateObject("ADODB.RECORDSET")

    db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb;User Id=admin;Password=;" 


    sql = "SELECT * FROM Q_PROVINCIE WHERE CODICE_ISTAT_REGIONE = """ & id_regione & """"
    rs.Open sql, db, 3, 3
    's = "<select size=""" & rs.RecordCount & """ >"
    s = "<select>"
    do while not rs.EOF
	    s = s & "<option value=""" + rs(0) + """ >" & rs(1) & "</option>"
	    rs.MoveNext
    loop
    s = s & "</select>"
    province = s
        
    rs.Close: set rs = nothing
    db.Close: set db = nothing


end function
%>
il file javascript č

codice:
// File JScript
function sajax(url, onload, parameters, onerror)
{
	parameters = (parameters == undefined)? "" : parameters;
	
	//creazione oggetto per richiesta web
	var objHTTP = getXMLHttp();
	objHTTP.open("post", url, true);
	objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	objHTTP.setRequestHeader('Content-length',parameters.length);
	objHTTP.setRequestHeader('Connection', 'close');

	objHTTP.onreadystatechange = function() 
	{ 
		if (objHTTP.readyState == 4) 
		{
			if (objHTTP.status == 200 || objHTTP.status == 0)
			{
				this.request = objHTTP;
				if(onload) onload.call(this);
			}											
			else {if(onerror && typeof(onerror) == "function") {onerror(defaultError); return;}else {defaultError(); return;}}
		}
	};

    objHTTP.send(parameters);
    

    function getXMLHttp() 
    {
	    var xmlhttp = null;
    	
	    if(window.XMLHttpRequest) 
	    {
		    xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
	    } 
	    else if(window.ActiveXObject) 
	    {
		    try
		    {
			    xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); // Internet Explorer 6 
		    } 
		    catch(e) 
		    {
			    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 4,5 
		    }
		    } 
	    else 
	    {
		    xmlhttp = null;
	    }
	    return xmlhttp;
    };

	function defaultError()
	{
		alert("ERRORE NELLA TRASMISSIONE DATI!");
	};
}

//al posto di mettere document.getElementById("div1"), mettere $("div1")
//da prototype.js
function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}