28. august 2002 - 18:11
Der er
42 kommentarer og 2 løsninger
Hjælp til fejl ( Expected 'End' )
Hejsa jeg har lavet dette script (Det første jeg helt selv har skrevet), og den melder fejlen Expected 'End' men jeg har kigget efter flere gange om jeg manglede en END IF men det går lige op me IF statements....!!! <html> <head> <title>Firma Register</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <% Ord = Request.Form("Searchfor") Firmanavn = Request.Form("Firmanavn") By = Request.Form("By") Etabelering = Request.Form("Etabelering") Selskabsform = Request.Form("Selskabsform") Sorter = Request.Form("Sorter") %> <form name="form1" method="post" action="Index.asp"> <div align="center"> <table width="450" border="0" cellspacing="2" cellpadding="0"> <tr> <td>Søg på ord : </td> <td><input name="Searchfor" type="text" value="<%= Ord%>" size="50" maxlength="150"> </td> </tr> <tr> <td>Firmanavn : </td> <td><input name="Firmanavn" type="text" id="Firmanavn" value="<%= Firmanavn%>" size="50" maxlength="150"></td> </tr> <tr> <td>By : </td> <td><select name="By" id="By"> <option value="*" selected>Alle</option> <option value="Holsted">Holsted</option> <option value="Hovborg">Hovborg</option> <option value="Føvling">Føvling</option> <option value="Glejbjerg">Glejbjerg</option> </select></td> </tr> <tr> <td>Etabelerings år : </td> <td><input name="etabelering" type="text" id="etabelering" value="<%= Etabelering%>" size="8" maxlength="4"></td> </tr> <tr> <td>Selskabsform : </td> <td><select name="Selskabsform" id="Selskabsform"> <option value="*" selected>Alle</option> <option value="Enkeltmandsvirksomhed">Enkeltmands virksomhed</option> <option value="Filial">Filial</option> <option value="Aktieselskab">Aktieselskab</option> <option value="Anpartsselskab">Anpartsselskab</option> <option value="Interessentskab">Interessentskab</option> <option value="Forening">Forening</option> <option value="Andelsselskab/-forening">Andelsselskab/-forening</option> <option value="Andelsselskab/-forening med begrænset ansvar">Andelsselskab/-forening med begrænset ansvar</option> </select></td> </tr> <tr> <td>Sorter efter :</td> <td><label> <input name="Sorter" type="radio" value="Firmanavn" checked> Firmanavn</label> <br> <label> <input type="radio" name="Sorter" value="By"> By</label> <br> <label> <input type="radio" name="Sorter" value="Etabeleringsår"> Etabelerings år</label> <br> <label> <input type="radio" name="Sorter" value="Selskabsform"> Selskabsform</label> </td> </tr> <tr> <td height="24" align="left" valign="top"> </td> <td><p> <label> </label> <input type="submit" name="Submit" value="Søg"> <br> </p> </td> </tr> </table> <p> </p> </div> </form> <div align="center"> <% If Ord = "" AND Firmanavn = "" AND Etabelering = "" AND By = "*" Then %>Der blev ikke fundet nogle firmaer.<% Else set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/Databaser/conexio/Firmareg.mdb" set rs=Server.CreateObject("ADODB.recordset") mySQL = "SELECT * FROM Firmareg WHERE By = " & By If Ord = "" Then Else mySQL = "AND * LIKE =" & Ord End if If Firmanavn = "" Then Firmanavn = "*" Else mySQL = "AND WHERE Firmanavn =" & Firmanavn End if If Etabelering = "" Then Else mySQL = "AND WHERE Etabelering =" & Etabelering End if mySQL = "AND Selskabsform =" & Selskabsform mySQL = "ORDER BY =" & Sorter & conn %> <%do until RS.EOF%> <br><br><%= RS.Fields("Firmanavn")%><br><%= RS.Fields("Adresse")%><br> <%= RS.Fields("Postnr")%><%= RS.Fields("By")%><br> <%= RS.Fields("Telefon")%><br><a href="<%= RS.Fields("Hjemmeside")%>" target="_blank"><%= RS.Fields("Hjemmeside")%></a><br><br>Firma Fakta :<br><br> Etabelerings år : <%= RS.Fields("Etabelering")%><br> Selskabsform : <%= RS.Fields("Selskabsform")%><br> Antal ansatte : <%= RS.Fields("Ansatte")%><br> <br> <%= RS.Fields("Tekst")%><br><br><hr> <%rs.MoveNext%> <%loop rs.close conn.close End if%> </div> </body> </html> P.S. Hvis der er flere fejl vil jeg meget gerne have dem af vide....!!!
Annonceindlæg fra Barco
28. august 2002 - 18:14
#1
fejl: If Firmanavn = "" Then Firmanavn = "*" Else mySQL = "AND WHERE Firmanavn =" & Firmanavn End if det skulle have været: If Firmanavn = "" Then Firmanavn = "*" Else mySQL = "AND WHERE Firmanavn =" & Firmanavn End if /theSurfer.
28. august 2002 - 18:16
#2
I din SQL Sætning mySQL = "SELECT * FROM Firmareg WHERE By = " & By Skal det lyde mySQL = "SELECT * FROM Firmareg WHERE By = '" & By & "' " Fordi By er ikke et nummer går jeg ud fra.. det er kun for variabler som indeholder tal hvor du kan gøre som du gjorde
28. august 2002 - 18:17
#3
eksempel på IF-Then-Else: If EtEllerAndet = noget then skriv "noget" else skriv "ikke noget" end if hvis du skriver: if EtEllerAndet = noget THEN skriv "noget" <-- THEN ! må du IKKE bruge else! /theSurfer.
28. august 2002 - 18:17
#4
Så vidt jeg husker må man ikke skrive noget efter else eller er det noget med man kan undvære end if... Prøv denne kode.. Men hvis man skriver noget efter Then så kan man ikke også havde en Else del: <html> <head> <title>Firma Register</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <% Ord = Request.Form("Searchfor") Firmanavn = Request.Form("Firmanavn") By = Request.Form("By") Etabelering = Request.Form("Etabelering") Selskabsform = Request.Form("Selskabsform") Sorter = Request.Form("Sorter") %> <form name="form1" method="post" action="Index.asp"> <div align="center"> <table width="450" border="0" cellspacing="2" cellpadding="0"> <tr> <td>Søg på ord : </td> <td><input name="Searchfor" type="text" value="<%= Ord%>" size="50" maxlength="150"> </td> </tr> <tr> <td>Firmanavn : </td> <td><input name="Firmanavn" type="text" id="Firmanavn" value="<%= Firmanavn%>" size="50" maxlength="150"></td> </tr> <tr> <td>By : </td> <td><select name="By" id="By"> <option value="*" selected>Alle</option> <option value="Holsted">Holsted</option> <option value="Hovborg">Hovborg</option> <option value="Føvling">Føvling</option> <option value="Glejbjerg">Glejbjerg</option> </select></td> </tr> <tr> <td>Etabelerings år : </td> <td><input name="etabelering" type="text" id="etabelering" value="<%= Etabelering%>" size="8" maxlength="4"></td> </tr> <tr> <td>Selskabsform : </td> <td><select name="Selskabsform" id="Selskabsform"> <option value="*" selected>Alle</option> <option value="Enkeltmandsvirksomhed">Enkeltmands virksomhed</option> <option value="Filial">Filial</option> <option value="Aktieselskab">Aktieselskab</option> <option value="Anpartsselskab">Anpartsselskab</option> <option value="Interessentskab">Interessentskab</option> <option value="Forening">Forening</option> <option value="Andelsselskab/-forening">Andelsselskab/-forening</option> <option value="Andelsselskab/-forening med begrænset ansvar">Andelsselskab/-forening med begrænset ansvar</option> </select></td> </tr> <tr> <td>Sorter efter :</td> <td><label> <input name="Sorter" type="radio" value="Firmanavn" checked> Firmanavn</label> <br> <label> <input type="radio" name="Sorter" value="By"> By</label> <br> <label> <input type="radio" name="Sorter" value="Etabeleringsår"> Etabelerings år</label> <br> <label> <input type="radio" name="Sorter" value="Selskabsform"> Selskabsform</label> </td> </tr> <tr> <td height="24" align="left" valign="top"> </td> <td><p> <label> </label> <input type="submit" name="Submit" value="Søg"> <br> </p> </td> </tr> </table> <p> </p> </div> </form> <div align="center"> <% If Ord = "" AND Firmanavn = "" AND Etabelering = "" AND By = "*" Then %>Der blev ikke fundet nogle firmaer.<% Else set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/Databaser/conexio/Firmareg.mdb" set rs=Server.CreateObject("ADODB.recordset") mySQL = "SELECT * FROM Firmareg WHERE By = " & By If Ord = "" Then Else mySQL = "AND * LIKE =" & Ord End if If Firmanavn = "" Then Firmanavn = "*" Else mySQL = "AND WHERE Firmanavn =" & Firmanavn End if If Etabelering = "" Then Else mySQL = "AND WHERE Etabelering =" & Etabelering End if mySQL = "AND Selskabsform =" & Selskabsform mySQL = "ORDER BY =" & Sorter & conn %> <%do until RS.EOF%> <br><br><%= RS.Fields("Firmanavn")%><br><%= RS.Fields("Adresse")%><br> <%= RS.Fields("Postnr")%><%= RS.Fields("By")%><br> <%= RS.Fields("Telefon")%><br><a href="<%= RS.Fields("Hjemmeside")%>" target="_blank"><%= RS.Fields("Hjemmeside")%></a><br><br>Firma Fakta :<br><br> Etabelerings år : <%= RS.Fields("Etabelering")%><br> Selskabsform : <%= RS.Fields("Selskabsform")%><br> Antal ansatte : <%= RS.Fields("Ansatte")%><br> <br> <%= RS.Fields("Tekst")%><br><br><hr> <%rs.MoveNext%> <%loop rs.close conn.close End if%> </div> </body> </html>
28. august 2002 - 18:18
#5
hvis du vil bruge "By" skal du bruge "[By]", da ordet "By" er reserveret!
28. august 2002 - 18:19
#6
eagleeye> hmm.. det minder meget om mit svar :)
28. august 2002 - 18:22
#7
Ok...mange tak.....!!! Nu skriver den Expected end of statement i line 101, column 39 Som er her : mySQL = "ORDER BY = '" & Sorter & "' " conn %> Ved i hvad jeg gør forkert der ?
28. august 2002 - 18:23
#8
"ORDER BY.." <-- BY = sted, eller det engelske ord ?
28. august 2002 - 18:24
#9
er det dig, hygge81 ?? :)
28. august 2002 - 18:25
#10
jeg læste overskriften ("Hjælp til fejl ( Expected 'End' )"), men læste IKKE spørgsmålet, og så heller IKKE hvem der havde stillet det ! LOL!
28. august 2002 - 18:26
#11
Jep...det er mig....med nogle små problemer igen....!!! :-)
28. august 2002 - 18:27
#12
Prøv mySQL = "ORDER BY = '" & Sorter & "' " conn %> og ret til: mySQL = "ORDER BY = '" & Sorter & "' "%>
28. august 2002 - 18:27
#13
"ORDER BY.." <-- BY = sted, eller det engelske ord ? hvis det er sted (felt i din db) skal der stå "[BY]"..
28. august 2002 - 18:29
#14
LOL! jeg var i fuld gang med at besvare et spørgsmål jeg ikke havde læst :) og jeg lag først mærke til at det var dig, hygge81, da jeg skulle check hvem der havde postet der sidste indlæg :)
28. august 2002 - 18:33
#15
thesurfer >> Det går da fint....Når man mangler et svar er du altid på de rigtige steder....!!! :)
28. august 2002 - 18:35
#16
det er da rart at høre :) har du prøvet de rettelser vi kommer med ?
28. august 2002 - 18:38
#17
Ja....nu får jeg fejlen : ADODB.Recordset (0x800A0E78) Operation is not allowed when the object is closed. /Index.asp, line 107 Linie 107 = <%do until RS.EOF%> <br><br><%= RS.Fields("Firmanavn")%><br><%= RS.Fields("Adresse")%><br> Men hvorfor nu det....!!! Hæver lige pointne....!!!
28. august 2002 - 18:41
#18
Får lige en opdatering : <html> <head> <title>Firma Register</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <% Ord = Request.Form("Searchfor") Firmanavn = Request.Form("Firmanavn") Byen = Request.Form("Byen") Etabelering = Request.Form("Etabelering") Selskabsform = Request.Form("Selskabsform") Sorter = Request.Form("Sorter") %> <form name="form1" method="post" action="Index.asp"> <div align="center"> <table width="450" border="0" cellspacing="2" cellpadding="0"> <tr> <td>Søg på ord : </td> <td><input name="Searchfor" type="text" value="<%= Ord%>" size="50" maxlength="150"> </td> </tr> <tr> <td>Firmanavn : </td> <td><input name="Firmanavn" type="text" id="Firmanavn" value="<%= Firmanavn%>" size="50" maxlength="150"></td> </tr> <tr> <td>By : </td> <td><select name="By" id="By"> <option value="*" selected>Alle</option> <option value="Holsted">Holsted</option> <option value="Hovborg">Hovborg</option> <option value="Føvling">Føvling</option> <option value="Glejbjerg">Glejbjerg</option> </select></td> </tr> <tr> <td>Etabelerings år : </td> <td><input name="etabelering" type="text" id="etabelering" value="<%= Etabelering%>" size="8" maxlength="4"></td> </tr> <tr> <td>Selskabsform : </td> <td><select name="Selskabsform" id="Selskabsform"> <option value="*" selected>Alle</option> <option value="Enkeltmandsvirksomhed">Enkeltmands virksomhed</option> <option value="Filial">Filial</option> <option value="Aktieselskab">Aktieselskab</option> <option value="Anpartsselskab">Anpartsselskab</option> <option value="Interessentskab">Interessentskab</option> <option value="Forening">Forening</option> <option value="Andelsselskab/-forening">Andelsselskab/-forening</option> <option value="Andelsselskab/-forening med begrænset ansvar">Andelsselskab/-forening med begrænset ansvar</option> </select></td> </tr> <tr> <td>Sorter efter :</td> <td><label> <input name="Sorter" type="radio" value="Firmanavn" checked> Firmanavn</label> <br> <label> <input type="radio" name="Sorter" value="Byen"> By</label> <br> <label> <input type="radio" name="Sorter" value="Etabeleringsår"> Etabelerings år</label> <br> <label> <input type="radio" name="Sorter" value="Selskabsform"> Selskabsform</label> </td> </tr> <tr> <td height="24" align="left" valign="top"> </td> <td><p> <label> </label> <input type="submit" name="Submit" value="Søg"> <br> </p> </td> </tr> </table> <p> </p> </div> </form> <div align="center"> <% If Ord = "" AND Firmanavn = "" AND Etabelering = "" AND Byen = "*" Then %>Der blev ikke fundet nogle firmaer.<% Else set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/Databaser/conexio/Firmareg.mdb" set rs=Server.CreateObject("ADODB.recordset") mySQL = "SELECT * FROM Firmareg WHERE By = '" & Byen & "' " If Ord = "" Then Else mySQL = "AND * LIKE = '" & Ord & "' " End if If Firmanavn = "" Then Firmanavn = "*" Else mySQL = "AND WHERE Firmanavn = '" & Firmanavn & "' " End if If Etabelering = "" Then Else mySQL = "AND WHERE Etabelering = '" & Etabelering & "' " End if mySQL = "AND Selskabsform = '" & Selskabsform & "' " mySQL = "ORDER BY = '" & Sorter & "' "%> <%do until RS.EOF%> <br><br><%= RS.Fields("Firmanavn")%><br><%= RS.Fields("Adresse")%><br> <%= RS.Fields("Postnr")%><%= RS.Fields("Byen")%><br> <%= RS.Fields("Telefon")%><br><a href="<%= RS.Fields("Hjemmeside")%>" target="_blank"><%= RS.Fields("Hjemmeside")%></a><br><br>Firma Fakta :<br><br> Etabelerings år : <%= RS.Fields("Etabelering")%><br> Selskabsform : <%= RS.Fields("Selskabsform")%><br> Antal ansatte : <%= RS.Fields("Ansatte")%><br> <br> <%= RS.Fields("Tekst")%><br><br><hr> <%rs.MoveNext%> <%loop End if rs.close conn.close %> </div> </body> </html> Nu er linie 107 den her : <%do until RS.EOF%>
28. august 2002 - 18:41
#19
lige inden denne linie: <%do until RS.EOF%> <br><br><%= RS.Fields("Firmanavn")%><br><%= RS.Fields("Adresse")%><br> skal du skrive: Set rs = Conn.Execute(mySQL)
28. august 2002 - 18:44
#20
ja, du skal jo åben forbindelsen først :)
28. august 2002 - 18:45
#21
ellers kommer du ikke langt.. :)
28. august 2002 - 18:45
#22
Ny fejl : Error Type: Microsoft JET Database Engine (0x80040E14) Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'. /Index.asp, line 107 Linie 107 = <%Set rs = Conn.Execute(mySQL)%>
28. august 2002 - 18:48
#23
prøv en response.write mySQL ..og paste strengen her
28. august 2002 - 18:50
#24
Prøv at udskrive og vise din SQL her: <%response.write mySQL Set rs = Conn.Execute(mySQL)%>
28. august 2002 - 18:51
#25
eagleeye> hvilken browser bruger du?
28. august 2002 - 18:53
#26
IE
28. august 2002 - 18:54
#27
Kan i ikke lige vise mig hvor den skal indsættes ? Sorry....i have no idea...!!!
28. august 2002 - 18:56
#28
DOH! jeg tror jeg har fundet fejlen.. der står: mySQL = "AND * LIKE = '" & Ord & "' " det skulle have været: mySQL = mySQL & " AND * LIKE = '" & Ord & "' " ellers resetter den mySQL !
28. august 2002 - 18:57
#29
mySQL = "SELECT * FROM Firmareg WHERE By = '" & Byen & "' " <-- rigtigt derefter skal der stå mySQL = mySQL & "..." istedet for mySQL = "..."
28. august 2002 - 18:57
#30
Nåh ja.....for fanden da....!!! :)
28. august 2002 - 18:57
#31
mySQL = "ORDER BY = '" & Sorter & "' "%> <%response.write mySQL '<---------------HER Set rs = Conn.Execute(mySQL)%> <%do until RS.EOF%>
28. august 2002 - 18:59
#32
eagleeye> mySQL = "ORDER BY = '" & Sorter & "' "%> linien slette alt data der stod i mySQL og erstatter det med "ORDER BY = '" & Sorter & "' "
28. august 2002 - 18:59
#33
LOL! :)
28. august 2002 - 19:01
#34
så er det jo klart at han får fejlen: Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'. der er jo ikke noget 'SELECT' :)
28. august 2002 - 19:03
#35
Er ordnet.... :) Får nu fejlen: Error Type: Microsoft JET Database Engine (0x80040E14) Syntax error (missing operator) in query expression '= '''. /Index.asp, line 107
28. august 2002 - 19:16
#36
hmm.. det må være en fejl eagleeye har lavet :)
28. august 2002 - 19:17
#37
:)
28. august 2002 - 19:19
#38
Variablen RS har jeg to steder : set rs=Server.CreateObject("ADODB.recordset") OG HER <%Set rs = Conn.Execute(mySQL)%> Kan det have noget at sige ?
28. august 2002 - 19:19
#39
det må være derfor han er stukket af :)
28. august 2002 - 19:26
#41
Der er flere ting i din kode som er "uheldig" med denne opbygning kan du få 3 WHERE i SQL sætningen... Man må kun havde en.. mySQL = "SELECT * FROM Firmareg WHERE By = '" & Byen & "' " If Ord = "" Then Else mySQL = "AND * LIKE = '" & Ord & "' " End if If Firmanavn = "" Then Firmanavn = "*" Else mySQL = "AND WHERE Firmanavn = '" & Firmanavn & "' " End if If Etabelering = "" Then Else mySQL = "AND WHERE Etabelering = '" & Etabelering & "' " End if Så du skal ahvde slette de to WHERE ...: mySQL = "SELECT * FROM Firmareg WHERE [By] = '" & Byen & "' " If Ord = "" Then Else mySQL = "AND * LIKE = '" & Ord & "' " End if If Firmanavn = "" Then Firmanavn = "*" Else mySQL = mySQL & " AND Firmanavn = '" & Firmanavn & "' " End if If Etabelering = "" Then Else mySQL = mySQL & " AND Etabelering = '" & Etabelering & "' " End if
28. august 2002 - 19:41
#42
Syntax error (missing operator) in query expression '= '''. det betyder at der er forkert antal / forkert placeret: '
28. august 2002 - 19:58
#43
Tak for hjælpen drenge....jeg prøver at finde ud af det her selv....!!! :) Hygge !!!
28. august 2002 - 20:02
#44
takker for points :)
Kurser inden for grundlæggende programmering