This is copied from something I wrote a while ago
It's still in use but I can see ways of improving it now I read it again
Basically, it gets a list of makes of devices from a database, and then when you select one it posts back to itself and adds a second box with a list of models.
You could use Ajax to avoid the postback of the whole page and you could use arrays but it works
...Spence
<form name='vsform' action='thisfile.asp' method='post'>
<select name='cMake' onChange='document.vsform.submit();' class="search" >
<%
sql = "SELECT DISTINCT cMake FROM devices order by cmake"
rx.Open sql, dbConnx
Response.Write ("<option value=''>Select Device Make</option>")
Do While (NOT rx.EOF)
Response.Write ("<option value='" & rx.Fields("cMake") & "' ")
If (trim(rx.Fields("cMake")) = trim(cMake)) Then
Response.Write ("selected>")
Else
Response.Write (">")
End If
Response.Write (rx.Fields("cMake") & "</option>")
rx.MoveNext
Loop
rx.close
%>
</select>
<input type="hidden" name="oldcMake" value="<%=cMake%>" />
<%
If cMake > "" Then
%>
<select name='cModel' onChange='document.vsform.submit();' class="search">
<%
sql = "SELECT DISTINCT cModel FROM devices WHERE cmake = '" & cMake & "' order by cModel"
rx.Open sql, dbConnx
Response.Write ("<option value=''>Select Device Model</option>")
Do While (NOT rx.EOF)
Response.Write ("<option value='" & rx.Fields("cModel") & "' ")
If (rx.Fields("cModel") = cModel) Then
Response.Write ("selected>")
Else
Response.Write (">")
End If
Response.Write (rx.Fields("cModel") & "</option>")
rx.MoveNext
Loop
rx.close
%>
</select>
<input type="hidden" name="oldcModel" value="<%=cModel%>" />
<%
End If
%>
</form>