Select Case Syntax Error

K

Kevin

Hi, I am getting a syntax error
Microsoft VBScript compilation error '800a03ea'

Syntax error

On the code below. The error references the "End Select" line

Can anyone help me with what I am doing wrong?

Thanks

-========================================

<%
SELECT CASE iChoice

Dim iChoice

iChoice = varVendor

Select Case iChoice
Case "McGraw Hill"
Response.Write "<!--#include
virtual='/western/services/owdbMcGraw.asp'-->"
Case "Alexander"
Response.Write "<!--#include virtual='/western/services/owdbAlex.asp'-->"
Case "Classical"
Response.Write "<!--#include
virtual='/western/services/owdbClassical.asp'-->"
Case "CQPress"
Response.Write "<!--#include
virtual='/western/services/owdbCQPress.asp'-->"
Case "FactsOnFile"
Response.Write "<!--#include virtual='/western/services/owdbFOF.asp'-->"
Case "Greenwood"
Response.Write "<!--#include virtual='/western/services/owdbGreen.asp'-->"
Case "Grove"
Response.Write "<!--#include virtual='/western/services/owdbGrove.asp'-->"
Case "Lexis-Nexis"
Response.Write "<!--#include virtual='/western/services/owdbLexis.asp'-->"
Case "Morningstar"
Response.Write "<!--#include virtual='/western/services/owdbMStar.asp'-->"
Case "Oxford Press"
Response.Write "<!--#include
virtual='/western/services/owdbOxford.asp'-->"
Case "Vanderbilt"
Response.Write "<!--#include virtual='/western/services/owdbVandy.asp'-->"
Case "Westlaw"
Response.Write "<!--#include
virtual='/western/services/owdbWestlaw.asp'-->"
Case "Wiley"
Response.Write "<!--#include virtual='/western/services/owdbWiley.asp'-->"
Case Else
Response.Write "<h3>Please select a vendor. <br> <input type=button
value=Back onClick='history.back(1);'></h3>"

END SELECT

%>
 
K

Kevin

Thanks Aaron. My original working code was:

<%
If varVendor = "McGraw Hill" Then
%>
<!--#include virtual="/western/services/owdbMcGraw.asp"-->
<%
ElseIf varVendor = "Classical" Then
%>
<!--#include virtual="/western/services/owdbClassical.asp"-->
<%
ElseIf varVendor = "Lexis-Nexis" Then
%>
<!--#include virtual="/western/services/owdbLexis.asp"-->
<%
ElseIf varVendor = "Oxford Press" Then
%>
<!--#include virtual="/western/services/owdbOxford.asp"-->

and on and on -- etc.

But my string of If Then ElsIf statements is up to 15 and so I was trying to
do the select case to reduce the statements. Guess I am back to the If Then
....ElseIf

I am sure I read that faq way back when and that is how I came to my
original If Then syntax.

Thanks
 
K

Kevin

Thanks Curt. I made the correction and now it executes, but the result is
what Aaron was alluding to. So I guess I am returning to the If ... Then ...
Else code.
 
K

Kevin

yeah, operator error. Curt busted me on that as well. Still a little fuzzy
on Select Case. Thanks for your time.

Kevin
 
A

Aaron [SQL Server MVP]

Well, you could do this, but it is tedious and unmanageable, IMHO:

<%
SELECT CASE varVendor
CASE "McGraw Hill"
%>
<!--#include virtual=/western/services/owdbMcgraw.asp-->
<%
CASE "Classical"
%>
<!--#include virtual=/western/services/owdbClassical.asp-->
<%
...

Or better still, create an array or dictionary object that allows you to
match "McGraw-Hill" -> "owdbMcgraw.asp", then you could say this instead of
having 15 conditionals:

Set d = CreateObject("Scripting.Dictionary")
d.Add "McGraw Hill", "owdbMcgraw.asp"
d.Add "Classical", "osdbClassical.asp"
' ... add others here or populate from DB ...
Server.Execute d.item(varVendor)

--
http://www.aspfaq.com/
(Reverse address to reply.)
 
B

Bob Lehmann

The difference is the context switching in you If...ElseIf....

It's still icky, but you could do the same thing with Select Case...
<%
Select Case iChoice
Case "McGraw Hill"
%>
<!--#include virtual='/western/services/owdbMcGraw.asp'-->
<%
Case "Classical"
%>
<!--#include virtual="/western/services/owdbClassical.asp"-->
<%
End Select
%>

Bob Lehmann
 
H

Harag

Thanks Aaron. My original working code was:

<%
If varVendor = "McGraw Hill" Then
%>
<!--#include virtual="/western/services/owdbMcGraw.asp"-->
<%
ElseIf varVendor = "Classical" Then
%>
<!--#include virtual="/western/services/owdbClassical.asp"-->
<%
ElseIf varVendor = "Lexis-Nexis" Then
%>
<!--#include virtual="/western/services/owdbLexis.asp"-->
<%
ElseIf varVendor = "Oxford Press" Then
%>
<!--#include virtual="/western/services/owdbOxford.asp"-->

and on and on -- etc.


Why not make it even easier to read & maintain. Put all the code in
your includes into several functions/Subs, eg:

<!--#include virtual="/western/services/owdbMcGraw.asp"-->
would contain

function DisplayMcGraw()
.....
end function

<!--#include virtual="/western/services/owdbClassical.asp"-->
contains:
function DisplayClassical()
.....
end function


or
<!--#include virtual="/western/services/owdbALL.asp"-->
would contain all the functions required in the owdb services.

Then include the file(s) at the very top of the page then in your
select case as:

SELECT CASE varVendor
CASE "McGraw Hill"
DisplayMcGraw()
CASE "Classical"
DisplayClasical()
....
.....
END SELECT


IMHO it looks more understanding and more maintainable. and your not
constantly swiching between asp & html code with <%.. %>


HTH

Al.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top