---
title: "Microsoft VBScript compilation error '800a0400'"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/74127-microsoft-vbscript-compilation-error-800a0400/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2003-04-15T07:07:09.000Z"
updated: "2003-04-16T10:29:35.000Z"
replies: 36
views: 776
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/74127-microsoft-vbscript-compilation-error-800a0400"
---

# Microsoft VBScript compilation error '800a0400'

_Sida 2 av 2._

## #21 — jstal, 2003-04-15T09:13Z

Jag hittar ingen \<body\> tag i någon av era koder. Fast det spelar nog ingen roll, ville bara påpeka det ;).

Permalänk: https://www.webforum.nu/p/1011105

## #22 — Engine^, 2003-04-15T09:18Z

1) Som jag skrev tidigare, så verkar det vara något fel på ditt inloggningssätt.
2) Ingen som har lösenordet *Request.Form("pword")*.

Testa att lägga till

```
Response.Write Session("inloggad") & "<br>" [blue]'Längst upp. Innan If Not Session("inloggad")...[/blue]

Response.Write strSQL & "<br>" [blue] 'Efter första Set objRS = objConn.Execute (strSQL, , 1)[/blue]
```

Stämmer det som skrivs ut? För att det ska fungera ska det stå först
*Ja*
och sedan
*SELECT \* FROM admin WHERE password = 'ett lösenord i admintabellen'*

\<body\>-taggen har väl försvunnit någonstans på vägen ;)

Permalänk: https://www.webforum.nu/p/1011106

## #23 — plelkes, 2003-04-15T09:29Z

Följande skrivs ut:

> Ja
> SELECT \* FROM admin WHERE password = ''

Permalänk: https://www.webforum.nu/p/1011118

## #24 — Engine^, 2003-04-15T09:32Z

Med andra ord skickas det ingenting från ditt formulär. Använder du

```
<form action="[i]sidan.asp[/i]" method="[b]post[/b]">
```

Permalänk: https://www.webforum.nu/p/1011120

## #25 — plelkes, 2003-04-15T09:33Z

Med andra ord så bör det vara fel på:

```
strSQL ="SELECT * FROM admin WHERE password = '" & Request.Form("pword")&"'"
```

 
Eller?

Permalänk: https://www.webforum.nu/p/1011121

## #26 — plelkes, 2003-04-15T09:37Z

Det konstiga är att igår fungerade allt!!!!!!!!
*så här ser koden på inlogg-sidan* 

```
<HTML>
<HEAD>
<TITLE>Inloggning som administratör</TITLE>

<BODY>
<FORM ACTION="logg.asp" METHOD="post">
<TABLE WIDTH="500" BORDER="3" CELLSPACING="5" CELLPADDING="5">
  <TR> 
    <TD>Användarnamn:</TD>
      <TD><INPUT NAME="Anamn" TYPE="text" SIZE="75"></TD>
  </TR>
  <TR> 
    <TD>Lösenord</TD>
    <TD><INPUT NAME="pword" TYPE="password" SIZE="75"></TD>
  </TR><TR ALIGN="RIGHT" VALIGN="MIDDLE"><TD><INPUT NAME="in" TYPE="submit" VALUE="stig in"></TD></TR>
</TABLE>

</FORM>
</BODY>
</HTML>
```

 

**och så här på logg.asp** 

```
<%
if Request.Form("in") = "stig in" Then 'vill användaren logga in?

Set gbok = Server.CreateObject( "Adodb.Connection" )
gbok.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\plelkes\db\guests.mdb")
gbok.ConnectionString = "Data Source='" & MdbFilePath & "'"
gbok.open
strUser = Request.Form("Anamn")
strPasw = Request.Form("pword")

strSQL1 = "SELECT* FROM admin WHERE anvnamn='"& strUser &"'"
strSQL2 ="SELECT* FROM admin WHERE password ='" & strPasw & "'"
Set rs = gbok.Execute( strSQL1)
IF rs.EOF Then
Response.Redirect("fel_anv.html")
Else
Set rs = gbok.Execute( strSQL2)
IF rs.EOF Then
Response.Redirect("fel_passw.html")
End if
Session("inloggad") = "Ja"
gbok.Close
Set gbok = Nothing

Response.Redirect "redigera.asp"
End If 
End If
%>
```

Permalänk: https://www.webforum.nu/p/1011126

## #27 — Engine^, 2003-04-15T09:52Z

Formulärdatat försvinner ju, när du kör *Response.Redirect "redigera.asp"*, som jag antar är sidan som du har problem med. Gör istället såhär att du skickar med ett UserID som querystring i din response.redirect "*redigera.asp?UserID=*..." och sedan i redigera.asp ändrar du SQL-frågan med *Request.Form("pword")* till typ *Request.QueryString("UserID")* eller något sådant. Skicka inga lösenord bara ;)

Permalänk: https://www.webforum.nu/p/1011140

## #28 — plelkes, 2003-04-15T09:56Z

Nej det vet jag att man inte skall skicka lösenord med querystring
Kan jag lösa på ngt annat sätt? Typ att jag ej redirectar, dvs mellanlandar ej på en asp sida?
Och varför funkade allt igår?

Permalänk: https://www.webforum.nu/p/1011146

## #29 — Sebbe, 2003-04-15T10:10Z

Om du kör såhär då? (Ändrar lite, som Engine^ gjorde förrut ;))

```
<%
If Request.Form("in") = "stig in" Then 'vill användaren logga in?

  Set objCon = Server.CreateObject("ADODB.Connection")
  objCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\plelkes\db\guests.mdb")
  strUser = Request.Form("Anamn")
  strPasw = Request.Form("pword")

  strSQL = "SELECT * FROM admin WHERE anvnamn = '" & strUser & "'"
  Set objAnv = objCon.Execute(strSQL)
  strSQL = "SELECT * FROM admin WHERE password = '" & strPasw & "'"
  Set objPass = objCon.Execute(strSQL)

  If objAnv.EOF Then
    Response.Reditect("fel_anv.asp")
  End If
  If objPass.EOF Then
    Response.Redirect("fel_pass.asp")
  End If

  If NOT objPass.EOF AND NOT objAnv.EOF Then
    Session("inloggad") = "Ja"
    Set objPass = Nothing
    Set objAnv = Nothing

    strSQL ="SELECT * FROM admin WHERE password = '" & Request.Form("pword") & "'"
    Set objRS = objCon.Execute(strSQL, , 1)

    While Not objRS.EOF
      Response.Write "<p align=center><font size=7><b><i><font color=#FFCC33 SIZE=""+3"">"
      Response.Write "Nu kan du " & objRS("Fnamn") 
      Response.Write "redigera gästboken!"
      objRS.MoveNext
    Wend
    Set objRS = Nothing
%>
<html>
<head>
  <title>Redigera</title>
</head>
<%  
    Session.LCID = 1053 

    strSQL = "SELECT * FROM guestbook ORDER by ID DESC"
    Set objRS = objCon.Execute(strSQL, , 1)
  
    Response.Write "<FORM ACTION=""radera.asp"" METHOD=""post""></FORM>"
    Response.Write "<TABLE WIDTH=""800""  BORDER=""1"" ALIGN=""CENTER"" CELLPADDING=""5"" CELLSPACING=""5"">"

    Do While Not objRS.EOF
      Response.Write "<TR> <TD WIDTH=""149""><H3><B><U>"
      Response.Write objRS("Namn")
      Response.Write "</U></B></H3></TD>"
      Response.Write "<TD WIDTH=""556"">"
      Response.Write objRS("Message")
      Response.Write "</TD><TD WIDTH=""37"">"
      Response.Write "<INPUT NAME=""delete"" TYPE=""checkbox"" VALUE="""& objRS("ID") &""">"
      Response.Write "</TD></TR>"
      Response.Write "<TR ALIGN=""RIGHT"" VALIGN=""MIDDLE"">"
      Response.Write "<TD COLSPAN"="3"">"
      Response.Write "<INPUT TYPE=""submit"" VALUE=""Radera markerade"">"
      Response.Write "</TD></TR>"

      objRS.MoveNext
    Loop
  
    Response.Write "</TABLE></FORM>"

    Set objRS = Nothing
    objCon.Close
    Set objCon = Nothing
  End If
End If
%>
</body>
</html>
```

På så sätt är det ju inga "mellanlandningar" i vägen. :)

Permalänk: https://www.webforum.nu/p/1011161

## #30 — Engine^, 2003-04-15T10:13Z

Ja, du kan baka ihop logg.asp och redigera.asp på samma sida det du behöver tänka på är att kontrollera rättigheterna, så att ingen kan redigera av "misstag". Det blir ett antal extra if-satser.

Du måste iofs inte baka ihop sidorna. Det går självklart att lösa det som du har det nu. Det är bara en fråga om hur du ska skicka data mellan sidorna; sessionsvariabler, querystrings eller annat.

**red.** Eller om **Sebbe** just föreslog ;)

Permalänk: https://www.webforum.nu/p/1011165

## #31 — plelkes, 2003-04-15T11:58Z

Det är inte så lätt att laborera på egenhand = förstod inte att med redirect så försvinner data...

**Sebbe:** 
Du har väl bakat ihop defaul.asp(med formulär), och redigera.asp till ett?

***Engine^:***  och Eller andra

Om jag bakar ihop defaul.asp(med formulär) och logg.asp tex genom att ta bort Form action= "logg.asp". Detta borde väl funka? För då stannar jag ju på samma sida. Och sedan redirecta till redigera.asp. tar jag då med mig password från formuläret?

> Det går självklart att lösa det som du har det nu. Det är bara en fråga om hur du ska skicka data mellan sidorna; sessionsvariabler, querystrings eller annat.

 
Kan ni ge lite exempel?

Permalänk: https://www.webforum.nu/p/1014139

## #32 — Sebbe, 2003-04-15T12:00Z

Jo, jag har bakat ihop båda filerna, så att ingen information försvinner med Redirecten. :)

Permalänk: https://www.webforum.nu/p/1014142

## #33 — Engine^, 2003-04-15T12:18Z

Du tar inte bort formuläret utan du ger det bara lite andra parametrar, t.ex.:

```
<form method="post" action="default.asp?action=logg">
```

Så, nu har du en sida som använder Request.Form och QueryString för att komma åt data.

```
[blue]'Exempel...[/blue]
If Request.QueryString("action") = "logg" Then
  If Session("inloggad") = "Ja" Then
    Response.Write "Du är redan inloggad..."
  Else
    [blue]' Här lägger du koden för inloggning...[/blue]
  End If
End If
```

Permalänk: https://www.webforum.nu/p/1014166

## #34 — plelkes, 2003-04-16T06:53Z

Nu funkar som jag vill, tack för all hjälp och tålamod från webforum!!
Fast klart nya frågor dyker det ju upp hela tiden :r 

Om ja ghar fattat rätt så i nedanstående koden

```
<%  

dim minCon 'Connection
     dim rsGbok 'recordsetten för nya inlägg
     dim strSQL

Set minCon = Server.CreateObject("ADODB.Connection")
set rsGbok = Server.CreateObject("ADODB.Recordset")

minCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\plelkes\db\guests.mdb")
strSQL =" SELECT * FROM guestbook ORDER by ID DESC"
rsGbok.Open strSQL, minCon, 3, 3
%>
```

 betyder de två 3 skydd för att inte det sker samtidigt "saker" med databasen...

I fallet som Sebbe rekomenderade

```
<%Set objCon = Server.CreateObject("ADODB.Connection")
  objCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\plelkes\db\guests.mdb")
  strUser = Request.Form("Anamn")
  strPasw = Request.Form("pword")

  strSQL = "SELECT * FROM admin WHERE anvnamn = '" & strUser & "'"
  Set objAnv = objCon.Execute(strSQL)
  strSQL = "SELECT * FROM admin WHERE password = '" & strPasw & "'"
  Set objPass = objCon.Execute(strSQL)
%>
```

 Ser inte jag ngt sån´t skydd.

- behövs inte det i denna konstruktion
- eller är jag blind som inte ser detta?

Permalänk: https://www.webforum.nu/p/1014634

## #35 — Sebbe, 2003-04-16T10:15Z

Eftersom jag inte använder ett recordset vet jag inte om man kan få något sådant skydd. Dock har jag sett många som använder sig av

```
objCon.Execute(strSQL),,128
```

Dock vet jag inte vad det gör, men jag antar att det är bra att ha. ;)

Permalänk: https://www.webforum.nu/p/1014734

## #36 — Engine^, 2003-04-16T10:25Z

128 = adExecuteNoRecords

Det innebär att inga poster ska returneras av frågan, dvs INSERT, UPDATE, DELETE osv.. 

Jag antar att om man försöker med Set rs = objConn.Execute("SELECT \* FROM tabell", , 128), så får man ett tomt recordset.

Permalänk: https://www.webforum.nu/p/1014738

## #37 — Sebbe, 2003-04-16T10:29Z

> **Engine^ skrev:**
>
> 128 = adExecuteNoRecords
> 
> Det innebär att inga poster ska returneras av frågan, dvs INSERT, UPDATE, DELETE osv.. 
> 
> Jag antar att om man försöker med Set rs = objConn.Execute("SELECT \* FROM tabell", , 128), så får man ett tomt recordset.

Aha, det var bra att veta! :birp (Alltså, du ska mao INTE köra med det. ;))

Permalänk: https://www.webforum.nu/p/1014741

---

Tråden på webben: https://www.webforum.nu/amne/asp/74127-microsoft-vbscript-compilation-error-800a0400/page2  
Föregående sida: https://www.webforum.nu/amne/asp/74127-microsoft-vbscript-compilation-error-800a0400.md
