Solved

Microsoft VBScript compilation error '800a0401'  Expected end of statement

Posted on 2016-09-12
15
145 Views
Last Modified: 2016-09-12
Hi All getting this bizare error... cannot figure it out
Set Header=oConn.Execute("SELECT * FROM codes WHERE code_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*code_ID)")

Open in new window

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/home2.asp, line 133

HeaderPic=SubDomain("brand_ID")&"-header-"&Header("code_short")&".jpg"
------------------------------------------^

Open in new window


ideas?
0
Comment
Question by:Graeme
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 5
  • 3
15 Comments
 
LVL 33

Expert Comment

by:Big Monty
ID: 41794315
Are SubDomain and Header recordset objects?

if you run the query directly in your database, do you get results back?

Can you provide a bit more code, maybe 10 lines worth before and after line 133?
0
 
LVL 82

Expert Comment

by:hielo
ID: 41794323
Are you sure the query is successful? Try:
On Error Resume Next
Set Header=oConn.Execute("SELECT * FROM codes WHERE code_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*code_ID)")
If Err.number<>0  Then
   Response.Write("SELECT query failed")
   Response.Write( Err.Description )
End If

Open in new window

0
 

Author Comment

by:Graeme
ID: 41794325
I have just run it in the database, it is showing up the objects that I expect (which is 3)

when I response.write(header("code_short")) is shows correct as well, its when I put it into a shortcut (HeaderPic=etc) is where the issue comes up

it was a direct cut and paste from one of my the older version of the same site, there is no difference code, database, tables, columns or data

will try your test code, brb
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:Graeme
ID: 41794327
exactly the same:
Microsoft VBScript compilation error '800a0401'

Expected end of statement

/home2.asp, line 138 (because of extra lines)

HeaderPic=SubDomain("brand_ID")&"-header-"&Header("code_short")&".jpg"
------------------------------------------^

Open in new window

0
 
LVL 33

Expert Comment

by:Big Monty
ID: 41794331
can you provide additional code so I have some sort of context in the way you're using it?
0
 

Author Comment

by:Graeme
ID: 41794344
<%
	Set oConn=Server.CreateObject("ADODB.Connection")
	oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("core/allcore.mdb")
	If SubDomain("brand_ID")="GPT" Then
		Set Header=oConn.Execute("SELECT * FROM codes WHERE code_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*code_ID)")
		Response.Write(Header("code_short"))
		HeaderPic=SubDomain("brand_ID")&"-header-"&Header("code_short")&".jpg"
'	ElseIf SubDomain("brand_header")="rotate" Then
'		Set Header=oConn.Execute("SELECT * FROM site_menu WHERE brand_ID="&SubDomain("brand_ID")&" AND menu_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*menu)")
'		Response.Write(Header("menu"))
'		HeaderPic=SubDomain("brand_ID")&"-header-"&Header("menu")&".jpg"
'	ElseIf SubDomain("brand_header")="still" Then
'		HeaderPic=SubDomain("brand_ID")&"_header.jpg"
	End If
%>
<td width=1330 height=300 align=center valign=bottom colspan=2 background="http://members.amnet.net.au/~webber4/<%=HeaderPic%>" style="background-size:cover;background-position:center,center" rowspan=2>

Open in new window

0
 
LVL 33

Expert Comment

by:Big Monty
ID: 41794371
are you sure Header("code_short") contains a value?
0
 

Author Comment

by:Graeme
ID: 41794420
yes Header("code_short") contains either WEC or F1 or MGP

the response.write above it shows that each time i use it and comment out HeaderPic
0
 
LVL 82

Expert Comment

by:hielo
ID: 41794428
try using the fully qualified path to the field value -- Header.Fields("code_short").Value :

<%
Dim HeaderPic
HeaderPic=""
	Set oConn=Server.CreateObject("ADODB.Connection")
	oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("core/allcore.mdb")
	If SubDomain("brand_ID")="GPT" Then
        On Error Resume Next
        Set Header=oConn.Execute("SELECT * FROM codes WHERE code_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*code_ID)")
        If Err.number<>0  Then
           Response.Write("SELECT query failed")
           Response.Write( Err.Description )
			Response.End
        End If
		
		'Response.Write(Header("code_short"))
		HeaderPic=SubDomain("brand_ID") & "-header-" & Header.Fields("code_short").Value & ".jpg"
'	ElseIf SubDomain("brand_header")="rotate" Then
'		Set Header=oConn.Execute("SELECT * FROM site_menu WHERE brand_ID="&SubDomain("brand_ID")&" AND menu_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*menu)")
'		Response.Write(Header("menu"))
'		HeaderPic=SubDomain("brand_ID")&"-header-"&Header("menu")&".jpg"
'	ElseIf SubDomain("brand_header")="still" Then
'		HeaderPic=SubDomain("brand_ID")&"_header.jpg"
	End If
%>
<td width=1330 height=300 align=center valign=bottom colspan=2 background="http://members.amnet.net.au/~webber4/<%=HeaderPic%>" style="background-size:cover;background-position:center,center" rowspan=2>

Open in new window

0
 

Author Comment

by:Graeme
ID: 41794436
same error...
Microsoft VBScript compilation error '800a0401'

Expected end of statement

/home2.asp, line 145

HeaderPic=SubDomain("brand_ID")&"-header-"&Header.Fields("code_short").Value&".jpg"
------------------------------------------^

Open in new window

0
 
LVL 33

Accepted Solution

by:
Big Monty earned 500 total points
ID: 41794505
the code looks fine to me. as long as you're getting values back from the recordset, I can't see where an error would occur.

is the block of code below in any sort of loop?

try the code below, I formatted it for readability, as well as tried a different approach.
<%
Dim HeaderPic
HeaderPic=""
dim brandID, codeShort

	Set oConn=Server.CreateObject("ADODB.Connection")
	oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("core/allcore.mdb")
	If SubDomain("brand_ID")="GPT" Then
        On Error Resume Next
        Set Header=oConn.Execute("SELECT * FROM codes WHERE code_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*code_ID)")
      		
		'Response.WriteHeader("code_short") 
                codeShort = Header("code_short")
		HeaderPic = SubDomain("brand_ID") _
                  & "-header-" _
                  & codeShort _
                  &".jpg"
                  if err.number <> 0 then response.write err.description
'	ElseIf SubDomain("brand_header")="rotate" Then
'		Set Header=oConn.Execute("SELECT * FROM site_menu WHERE brand_ID="&SubDomain("brand_ID")&" AND menu_live=TRUE ORDER BY RND(-10000000*TimeValue(Now())*menu)")
'		Response.Write(Header("menu"))
'		HeaderPic=SubDomain("brand_ID")&"-header-"&Header("menu")&".jpg"
'	ElseIf SubDomain("brand_header")="still" Then
'		HeaderPic=SubDomain("brand_ID")&"_header.jpg"
	End If
%>

Open in new window

0
 
LVL 82

Expert Comment

by:hielo
ID: 41794506
The only other suggestions I can think of are:
a. Try declaring HeaderPic at the top (like in my post)
b. Try adding spaces around the ampersands (like in my post)
c. Verify that you are actually using double quotes (ascii code34) and not some "fancy double quote" (similar to what MS Word likes to use).  Try opening notepad, type your statement there, then do a cut and paste from notepad onto your code file.

Also, what is SubDomain() doing? If it is querying a db, make sure it returns an actual value (as in Header.Fields("code_short").Value ) and not an "object" (as in Header("code_short") )
0
 

Author Comment

by:Graeme
ID: 41794515
hielo

I copied and pasted your code directly, same error

Yes Subdomain is a query that definatley returns a value

as mentioned before this exact code that I posted was a clean cut and paste from the previous version of the site, no changes to data, table, columns nor code.

just no idea why it is erroring there, whilst the line before I can Reseponse.Write(Header("code_short")) and it gives a value no issues at all
0
 

Author Comment

by:Graeme
ID: 41794532
BigMonty - it works! no idea why it does, but it does!

how strange!
0
 
LVL 33

Expert Comment

by:Big Monty
ID: 41794551
excellent, glad I could help :)
1

Featured Post

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question