Ekkime qua... sono stato un po' indaffarato...

mettiamo che il db sia un mdb di access. Ci sono tre tabelle
tblArea
areaId
areaNome

tblProject
projectId
projectNome
projectRifAreaId

tblApplication
applicationId
applicationNome
applicationRifProjectId

la pagina con le tre combo
codice:
<%@ Language=VBScript %>
<%
strAccessDB = "dbTest.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(strAccessDB)
Conn.Open strCon

query = "SELECT * FROM tblArea"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open query,Conn,3,3
%>
<HTML>
<HEAD>
<script language="javascript">
function SvuotaCombo(nomeCombo){
	ff = document.NomeForm
	cc = ff.elements[nomeCombo].options
	for(i=(cc.length-1);i>=0;i--)
		cc[i]=null
}
function AggiungiOption(nomeCombo,testo,valore){
	ff = document.NomeForm
	cc = ff.elements[nomeCombo].options
	cc[cc.length]=new Option(testo,valore)
}
function ModificaOption(nomeCombo,indice,testo,valore){
	ff = document.NomeForm
	cc = ff.elements[nomeCombo].options
	cc[indice].text=testo
	cc[indice].value=valore
}

function popunder(pagina){
	pp = window.open(pagina,'popunder','width=300,height=200,top=3000')
	pp.blur()
}

function FiltraProject(aa){
	valore = aa.options[aa.selectedIndex].value
	if(valore!=''){
		SvuotaCombo('application')
		AggiungiOption('application','Selezionare Project','')
		popunder('filtra.asp?IdArea='+valore)
	}
	else{
		SvuotaCombo('project')
		AggiungiOption('project','Selezionare Area','')
		SvuotaCombo('application')
		AggiungiOption('application','Selezionare Project','')
	}
}
function FiltraApplication(pp){
	valore = pp.options[pp.selectedIndex].value
	if(valore!=''){
		popunder('filtra.asp?IdProject='+valore)
	}
	else{
		SvuotaCombo('application')
		AggiungiOption('application','Selezionare Project','')
	}
}
</script>
</HEAD>
<BODY>

<form name="NomeForm">
AREA

<select name="area" onchange="FiltraProject(this);">
	<option value="">Selezionare...</option><%
do while not rs.EOF%>
	<option value="<%=rs("areaId")%>"><%=rs("areaNome")%></option><%
	rs.MoveNext
loop%>
</select>


PROJECT

<select name="project" onchange="FiltraApplication(this)">
	<option value="">Selezionare Area</option>
</select>


APPLICATION

<select name="application">
	<option value="">Selezionare Project</option>
</select>
</form>

</BODY>
</HTML>
e la pagina filtra.asp
codice:
<%@ Language=VBScript %>
<%
strAccessDB = "dbTest.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(strAccessDB)
Conn.Open strCon

idArea = Request.QueryString("idArea")
idProject = Request.QueryString("idProject")
if idArea<>"" then
	query = "SELECT * FROM tblProject WHERE ProjectRifAreaId=" & idArea
	nomeCombo = "project"
	nomeTesto = "projectNome"
	nomeId = "projectId"
end if
if idProject<>"" then
	query = "SELECT * FROM tblApplication WHERE ApplicationRifProjectId=" & idProject
	nomeCombo = "application"
	nomeTesto = "applicationNome"
	nomeId = "applicationId"
end if
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open query,Conn,3,3

%>
<HTML>
<HEAD>
<script language="javascript">
if(window.opener){
	oo = window.opener
	nomeCombo = '<%=nomeCombo%>'
	oo.SvuotaCombo(nomeCombo)
	oo.AggiungiOption(nomeCombo,'Attendere prego...','')<%
do while not rs.EOF%>
	oo.AggiungiOption(nomeCombo,'<%=Replace(rs(nomeTesto),"'","\'")%>','<%=rs(nomeId)%>')<%
	rs.MoveNext
loop%>
	oo.ModificaOption(nomeCombo,0,'Selezionare...','')
}
</script>
</HEAD>
<BODY onload="self.close()">
</BODY>
</HTML>
Se servono chiarimenti chiedi pure... non arrenderti Surrender79