Note:
When using Server.Execute("mypage.asp"

, the code contained in "mypage.asp" CANNOT reference any VARIABLES set in the original page, prior to the Execute.
Execute is a great method for providing variable, fixed (or mostly fixed) data to your pages, without the overhead of <!--#INCLUDE--> files.
Your Execute'd pages CAN, however, get the Request.ServerVariables("QUERY_STRING"

, and other stuff from the server.
So, if you have a file "processMyVar" with the following code:
Code:
<%
if myVar = "potato" then
response.write("Tuber!")
elseif myVar = "begonia"
response.write("Flower!")
end if
%>
the following would NOT work:
[code]
<%
dim myVar
myVar = "potato"
Server.Execute("processMyVar.asp")
%>
... in this case you'd have to use an INCLUDE, so processMyVar could receive the variables set in your top page.
Wait, there's more:
If your original page was accessed with the following url:
...then your "processMyVar.asp" could access the querystring:
<%
if request.querystring(myVar) = "potato" then
response.write("Tuber!"

elseif request.querystring(myVar) = "begonia" then
response.write("Flower!"

end if
%>
SessionVariables are also available to Executed code.