Here's how I finally did it. NO hits to the server. Works OK as long as the total number of cities isn't very large. All the necessary data is stored on the page itself. Could be made more efficient by using smaller variable names and delimited strings instead of arrays:
<%
'GET ALL THE STATE AND CITY INFO INTO ARRAYS
Set Conn = Server.CreateObject("ADODB.Connection"

OpenString = Session("OpenString"

Conn.Open OpenString
Query = "SELECT * FROM State ORDER BY StateName"
Set RS = Conn.Execute(Query)
Dim StateIDs()
Dim StateNames()
i = 0
Do Until RS.EOF
ReDim Preserve StateIDs(i)
StateIDs(i) = RS("StateID"

StateNames(i) = RS("StateName"

i = i + 1
RS.MoveNext
Loop
NumberOfStates = i - 1
SelectedStateID = StateIDs(0)
Query = "SELECT * FROM City ORDER BY CityName"
Set RS = Conn.Execute(Query)
i = 0
Dim CityIDs()
Dim CityNames()
Dim CityStateIDs() ' STATE ID OF STATE THAT THIS CITY IS IN
Do Until RS.EOF
ReDim Preserve CityIDs(i)
ReDim Preserve CityNames(i)
ReDim Preserve CityStateIDs(i)
CityIDs(i) = RS("CityID"

CityNames(i) = RS("CityName"

CityStateIDs(i) = RS("State_ID"

i = i + 1
RS.MoveNext
Loop
NumberOfCitys = i - 1
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Edit City Name</title>
<%
'CREATE A SCRIPT TO POPULATE THE CITY BOX CORRECTLY WHEN THE STATE BOX CHANGES
Response.Write("<script LANGUAGE=""VBScript"">" & vbCRLF)
Response.Write("Sub StateName_onChange" & vbCRLF)
Response.Write("Dim StateIDs(" & NumberOfStates & "

" & vbCRLF)
Response.Write("Dim StateNames(" & NumberOfStates & "

" & vbCRLF)
For i = 0 To NumberOfStates
Response.Write("StateIDs(" & i & "

= " & StateIDs(i) & vbCRLF)
Response.Write("StateNames(" & i & "

= """ & StateNames(i) & """" & vbCRLF)
Next
Response.Write("Dim CityIDs(" & NumberOfCitys & "

" & vbCRLF)
Response.Write("Dim CityNames(" & NumberOfCitys & "

" & vbCRLF)
Response.Write("Dim CityStateIDs(" & NumberOfCitys & "

" & vbCRLF)
For i = 0 To NumberOfCitys
Response.Write("CityIDs(" & i & "

= " & CityIDs(i) & vbCRLF)
Response.Write("CityNames(" & i & "

= """ & CityNames(i) & """" & vbCRLF)
Response.Write("CityStateIDs(" & i & "

= " & CityStateIDs(i) & vbCRLF)
Next
Response.Write("document.EditCity.City.Length = 0" & vbCRLF)
Response.Write("SelectedStateID = StateIDs(document.EditCity.StateName.SelectedIndex)" & vbCRLF)
Response.Write("Dim i" & vbCRLF)
Response.Write("Dim objElement" & vbCRLF)
Response.Write("For i = 0 to Ubound(CityStateIDs)" & vbCRLF)
Response.Write(" If SelectedStateID = CityStateIDs(i) Then" & vbCRLF)
Response.Write(" Set objElement = document.createElement(""OPTION""

" & vbCRLF)
Response.Write(" ObjElement.text = CityNames(i)" & vbCRLF)
Response.Write(" ObjElement.value = CityNames(i)" & vbCRLF)
Response.Write(" document.EditCity.City.add(objElement)" & vbCRLF)
Response.Write(" End If" & vbCRLF)
Response.Write("Next" & vbCRLF)
Response.Write("End Sub" & vbCRLF)
Response.Write("</script>" & vbCRLF)
%>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font face="Tahoma" size="+3" color="#9999CC"> Edit A City Name</font></td>
</tr>
<form name="EditCity" action="edit_city_submit.asp" method="POST">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="RIGHT">
<font face="Arial"> State Name:</font>
</td>
<td>
<select name="StateName">
<%
For i = 0 to NumberOfStates
StateName = StateNames(i)
StateID = StateIDs(i)
If SelectedStateID = StateID Then
%>
<option selected value='<%= StateName %>'><%= StateName %></option>"
<% Else%>
<option value='<%= StateName %>'><%= StateName %></option>"
<%
End If
Next
%>
</select>
</td>
</tr>
<tr>
<td align="RIGHT">
<font face="Arial"> City Name:</font>
</td>
<td>
<select name="City">
<%
For i = 0 to NumberOfCitys
CityName = CityNames(i)
CityID = CityIDs(i)
CityStateID = CityStateIDs(i)
If SelectedStateID = CityStateID Then
%>
<option value='<%= CityName %>'><%= CityName %></option>"
<%
End If
Next
%>
</select>
</td>
</tr>
<tr>
<td align="RIGHT">
<font face="Arial"> New City Name:</font>
</td>
<td>
<input type="Text" name="NewCity" size="30" maxlength="30">
</td>
</tr>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="CENTER">
<input type="Submit" value="Update">
</td>
</tr>
</table>
</form>
</table>
</body>
</html>