Just nu i M3-nätverket
Gå till innehåll
webbaccess.net

Har lyckats igen?

Rekommendera Poster

webbaccess.net

Hej!

 

Har fått detta fenomenet innan men vet inte hur jag löste det...

 

Microsoft JET Database Engine error '80040e14'

Syntax error in FROM clause.

/nya/admin/bokning.asp, line 9 

Det är vad jag får.

 

och line 9 är

MinCon.Open "DRIVER={Microsoft Access Driver (*.mdb)} DBQ=" & Server.MapPath("db1.mdb")

 

förstår inte var felet är?!

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Anjuna Moon

Det är inte den raden som genererar felet (radnumreringen är inte alltid korrekt) utan den rad där du kör din query. Gör en response.write på din sql-fråga och posta både kodraden med queryn och resultatet av response.write här.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

[log]<!-- #include file="checklogin.asp" -->

<%

 

connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db1.mdb")

 

Set conn = Server.CreateObject("ADODB.Connection")

conn.open connStr

 

Set RS = conn.Execute("SELECT id, namn, bil, regnr FROM bokning ASC")

 

If Not (RS.EOF And RS.BOF) Then

 

%>

<div align="center">

<table width="554" border="0" cellpadding="0" cellspacing="0">

<tr>

<td valign="top" colspan="2">

<strong class="mainText">Inbox<br />

<br />

</strong>

<table border="0" width="100%" id="table1">

<tr>

<td>Kort meddelande</td>

<td width="244">Namn på avsändare</td>

</tr>

</table>

</td>

</tr>

</table>

 

<table width="554" border="0" cellpadding="0" cellspacing="0">

<% Do While not RS.EOF %>

<tr>

<td width="305"><a href="?ida=admin/bokning1&id=<% Response.Write RS("ID") %>" class="menuText"><% Response.Write RS("Regnr") %> <% Response.Write RS("bil")%></a></td>

<td>

<a href="?ida=admin/bokning1&id=<% Response.Write RS("ID") %>" class="menuText">

<% Response.Write RS("Namn") %>

</a></td>

<td width="18">

</td>

</tr>

<% RS.MoveNext

Loop

%>

</table>

<p>

<input type="submit" name="Submit" value="Tillbaka" onclick="window.location='?ida=admin/default'" /></p>

<%

Else

%>

<table width="554" border="0" cellpadding="0" cellspacing="0">

<tr>

<td valign="top" colspan="2">

<strong class="mainText">Inbox<br />

<br />

</strong>

<table border="0" width="100%" id="table1">

<tr>

<td>Kort meddelande</td>

<td width="244">Namn på avsändare</td>

</tr>

</table>

</td>

</tr>

</table>

<table width="554" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="305"> Inga Meddelanden!</a></td>

<td>

Inga Meddelanden!</td>

<td width="18">

</a></td>

</tr>

</table>

<p>

<input type="submit" name="Submit" value="Tillbaka" onclick="window.location='?ida=admin/default'" /></p>

<%

End If

%></div>[/log]

 

Såhär ser koden ut.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Anjuna Moon

Ja, den där queryn är inkorrekt, ändra den till:

Set RS = conn.Execute("SELECT id, namn, bil, regnr FROM bokning ORDER BY namn ASC")

(eller vad du nu vill sortera efter)

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

tack för det:)

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

Har ett problem i ett annat script...

 

får felet

[log]The message was undeliverable. All servers failed to receive the message

.execute()

{

Trying server mail:smtp.trimmad.com

<- 220 s29.loopia.se ESMTP

-> EHLO s82

<- 250-s29.loopia.se

250-PIPELINING

250-SIZE 209715200

250-STARTTLS

250-AUTH LOGIN PLAIN

250 8BITMIME

-> MAIL FROM:

<- 250 ok

-> DATA

<- 503 RCPT first (#5.5.1)

Error: 503 RCPT first (#5.5.1)

.execute()

{

Trying server mail:smtp.trimmad.com

<- 220 s29.loopia.se ESMTP

-> EHLO s82

<- 250-s29.loopia.se

250-PIPELINING

250-SIZE 209715200

250-STARTTLS

250-AUTH LOGIN PLAIN

250 8BITMIME

-> MAIL FROM:

<- 250 ok

-> DATA

<- 503 RCPT first (#5.5.1)

Error: 503 RCPT first (#5.5.1)

 

1 of 1 servers failed

}[/log]

 

handlar det om att Jmail inte finns installerat på servern?

 

LOG-taggar tillagda av moderator

 

[inlägget ändrat 2007-06-18 21:07:55 av Cluster]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Anjuna Moon

Låter som att du kanske glömt att ange mottagare av mailet. (Error: 503 RCPT first (#5.5.1)) alternativt angett dina headers i fel ordning. Pröva att ange avsändaren först.

 

Vilken mailkomponent använder du? Kod?

[inlägget ändrat 2007-06-18 00:44:26 av Anjuna Moon]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

Använder Jmail...

Har en Databassparande och jmail kod i ett så du får hela den koden...

 

[log]<% If Request("Action") = "Save" Then

 

Dim MinCon

Dim RS

 

Set MinCon = Server.CreateObject("ADODB.Connection")

Set RS = Server.CreateObject("ADODB.Recordset")

 

MinCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb")

 

RS.Open "bokning", MinCon, 1, 2

 

RS.Addnew

 

RS("namn") = Request.Form("namn")

RS("adress") = Request.Form("adress")

RS("telefon") = Request.Form("telefon")

RS("epost") = Request.Form("epost")

RS("epostb") = Request.Form("epostb")

RS("bil") = Request.Form("bil")

RS("atgard") = Request.Form("atgard")

RS("tid") = Request.Form("tid")

RS("telefonb") = Request.Form("telefonb")

RS("regnr") = Request.Form("regnr")

RS("bekraftelse") = Request.Form("bekraftelse")

RS("anteckningar") = Request.Form("anteckningar")

 

RS.Update

 

RS.Close

 

Set RS = Nothing

Set MinCon = Nothing

 

 

 

Dim namn, adress, telefon, epost, epostb, bil, atgard, tid, telefonb, regnr, bekraftelse, anteckningar, objJmail, Msg

namn = Trim(Request.Form("namn"))

adress = Trim(Request.Form("adress"))

telefon = Trim(Request.Form("telefon"))

epostb = Trim(Request.Form("epostb"))

bil = Trim(Request.Form("bil"))

atgard = Trim(Request.Form("atgard"))

tid = Trim(Request.Form("tid"))

telefonb = Trim(Request.Form("telefonb"))

regnr = Trim(Request.Form("regnr"))

bekraftelse = Trim(Request.Form("bekraftelse"))

anteckningar = Trim(Request.Form("anteckningar"))

 

 

'Skicka epost

 

Set Msg = Server.CreateOBject( "JMail.Message" )

 

' Set Logging to false in production environment

Msg.Logging = true

Msg.Silent = true

 

Msg.From = "no-replay@trimmad.com"

Msg.FromName = "Trimmad.com Websystem"

 

Msg.AddRecipient epost

Msg.AddRecipientBCC "info@webbaccess.net"

 

Msg.Subject = "Tidbokning hos M.B. Trimshop för " & namn

Msg.Body = "Tack för din bokning ' & namn ' med bil ' & regnr ' såfort vi ser din bokning kommer vi att kontrollera tiden så att den är möjlig för oss.<br><br>Med vänliga hälsningar<br>Trimmad.com Bokningsystem.<br><br><b>OBSERVERA! Detta e-postmeddelande går inte att svara på.</b>"

 

' Skicka epost och om det blev fel så skriv ut ett felmeddelande istället (skall ej köras i produktion)

If Not Msg.Send("smtp.trimmad.com") Then

 

Response.write "<pre>" & Msg.Log & "</pre>"

 

Else

 

Response.Redirect "?ida=hem"

 

End If

 

End If

%>[/log]

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Phenomen

Din app blir opensource om du ska hålla på å klistra in hela tiden :P

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Anjuna Moon

Är "no-replay@trimmad.com" en giltig adress?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

Phenomen, Jag har inget att dölja i den koden så det är lugnt....

 

Anjuna Moon: Adressen finns inte inlagd någonstans, trodde inte att den var tvungen till det

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Anjuna Moon
trodde inte att den var tvungen till det

Det kan vara nödvändigt.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

Nu har jag ändrat det och nu har det uppstått ett annat fel i samma kodsnutt...

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e2f'

 

[Microsoft][ODBC Microsoft Access Driver]Error in row

 

/nya/sida/bokning.asp, line 28

 

Är det något som medför felet?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Jonas__B

Ursäkta oförskämdheten, men det är väldigt svårt att hjälpa dig om du bara skriver så utan att visa oss den raden som genererar felet.

Skulle den raden vara Conn.Execute(SQL) eller

RS.OPEN SQL, Conn, 1, 1 så är det med 99.99% fel på SQL-raden, det vill sägen den variabel som innehåller databasfrågan.

 

Återkom med raden så hjälper vi mer än gärna.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Micke_skane

Vad är "bokning" i denna?

RS.Open "bokning", MinCon, 1, 2

 

Ett tips är att inte använda objektet Request.Form mer än man behöver, eftersom det tar längre tid att läsa ifrån dem än t ex variabler.

Så lägg in värdena i variabler och använd sen variablerna där du behöver.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Micke_skane

Går ju inte att uppdatera trådarna...

 

Tilllägg till förra iaf:

Gör detta överst och använd variablerna som värde i en INSERT-fråga så behöver du inte skapa ett Recordset i onödan.

Använd sen dem variablerna du behöver i mailutskicket.

Sen kanske du bör kolla så att dem värden där behöver vara är korrekt ifyllda innan du lägger in det i datasbasen.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

Bokning är en tabell som den ska skriva i.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

Raden som felet skrivs ut i är

RS.Addnew

Det är det att någon tråd tidigare som där databaskoden skrivs ut.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Micke_skane

Ändra till(enkelt förslag utan kontroller på värdena):

[log]

Dim MinCon, ConnString, strInsertSql, namn, adress, telefon, epost, epostb, bil, atgard, tid, telefonb, regnr, bekraftelse, anteckningar, objJmail, Msg
namn = Trim(Request.Form("namn"))
adress = Trim(Request.Form("adress"))
telefon = Trim(Request.Form("telefon"))
epostb = Trim(Request.Form("epostb"))
bil = Trim(Request.Form("bil"))
atgard = Trim(Request.Form("atgard"))
tid = Trim(Request.Form("tid"))
telefonb = Trim(Request.Form("telefonb"))
regnr = Trim(Request.Form("regnr"))
bekraftelse = Trim(Request.Form("bekraftelse"))
anteckningar = Trim(Request.Form("anteckningar"))

Set MinCon = Server.CreateObject("ADODB.Connection")
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db1.mdb")
MinCon.Open ConnString
strInsertSql = "INSERT INTO bokning (namn,adress,telefon,epost,epostb,bil,atgard,tid,telefonb,regnr,bekraftelse,anteckningar) VALUES ('"& namn &"','"& adress &"','"& telefon &"','"& epost &"','"& epostb &"','"& bil &"','"& atgard &"','"& tid &"','"& telefonb &"','"& regnr &"','"& bekraftelse &"','"& anteckningar &"')"
MinCon.Execute strInsertSql,,128

MinCon.Close : Set MinCon = Nothing

[/log]

Sen använder du variablerna du behöver där du vill.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

Tack Micke_skane...

 

nu får jag bara:

 

Microsoft VBScript compilation  error '800a0411'

Name redefined

/nya/sida/bokning.asp, line 26

Dim namn, adress, telefon, epost, epostb, bil, atgard, tid, telefonb, regnr, bekraftelse, anteckningar, objJmail, Msg
----^

och pilen pekar på namn.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Micke_skane

Misstänker att du deklarerar variablerna en gång till efter du lagt in uppgifterna i databasen, alltså precis innan du ska skicka mailet.

Du ska bara deklarera den en gång och det är direkt efter din If-sats i början.

 

Visa hur koden ser ut nu.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

koden ser ut såhär:

 

[log]<% If Request("Action") = "Save" Then

 

Dim MinCon, ConnString, strInsertSql, namn, adress, telefon, epost, epostb, bil, atgard, tid, telefonb, regnr, bekraftelse, anteckningar, objJmail, Msg

namn = Trim(Request.Form("namn"))

adress = Trim(Request.Form("adress"))

telefon = Trim(Request.Form("telefon"))

epostb = Trim(Request.Form("epostb"))

bil = Trim(Request.Form("bil"))

atgard = Trim(Request.Form("atgard"))

tid = Trim(Request.Form("tid"))

telefonb = Trim(Request.Form("telefonb"))

regnr = Trim(Request.Form("regnr"))

bekraftelse = Trim(Request.Form("bekraftelse"))

anteckningar = Trim(Request.Form("anteckningar"))

 

Set MinCon = Server.CreateObject("ADODB.Connection")

ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db1.mdb")

MinCon.Open ConnString

strInsertSql = "INSERT INTO bokning (namn,adress,telefon,epost,epostb,bil,atgard,tid,telefonb,regnr,bekraftelse,anteckningar) VALUES ('"& namn &"','"& adress &"','"& telefon &"','"& epost &"','"& epostb &"','"& bil &"','"& atgard &"','"& tid &"','"& telefonb &"','"& regnr &"','"& bekraftelse &"','"& anteckningar &"')"

MinCon.Execute strInsertSql,,128

 

MinCon.Close : Set MinCon = Nothing

 

 

 

Dim namn, adress, telefon, epost, epostb, bil, atgard, tid, telefonb, regnr, bekraftelse, anteckningar, objJmail, Msg

namn = Trim(Request.Form("namn"))

adress = Trim(Request.Form("adress"))

telefon = Trim(Request.Form("telefon"))

epostb = Trim(Request.Form("epostb"))

bil = Trim(Request.Form("bil"))

atgard = Trim(Request.Form("atgard"))

tid = Trim(Request.Form("tid"))

telefonb = Trim(Request.Form("telefonb"))

regnr = Trim(Request.Form("regnr"))

bekraftelse = Trim(Request.Form("bekraftelse"))

anteckningar = Trim(Request.Form("anteckningar"))

 

 

'Skicka epost

 

Set Msg = Server.CreateOBject( "JMail.Message" )

 

' Set Logging to false in production environment

Msg.Logging = true

Msg.Silent = true

 

Msg.From = "info@trimmad.com"

Msg.FromName = "Trimmad.com Websystem"

 

Msg.AddRecipient epost

Msg.AddRecipientBCC "info@webbaccess.net"

 

Msg.Subject = "Tidbokning hos M.B. Trimshop för " & namn

Msg.Body = "Tack för din bokning ' & namn ' med bil ' & regnr ' såfort vi ser din bokning kommer vi att kontrollera tiden så att den är möjlig för oss.<br><br>Med vänliga hälsningar<br>Trimmad.com Bokningsystem.<br><br><b>OBSERVERA! Detta e-postmeddelande går inte att svara på.</b>"

 

' Skicka epost och om det blev fel så skriv ut ett felmeddelande istället (skall ej köras i produktion)

If Not Msg.Send("smtp.trimmad.com") Then

 

Response.write "<pre>" & Msg.Log & "</pre>"

 

Else

 

Response.Redirect "?ida=hem"

 

End If

 

End If

%>[/log]

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Jonas__B

[log]

MinCon.Close : Set MinCon = Nothing



Dim namn, adress, telefon, epost, epostb, bil, atgard, tid, telefonb, regnr, bekraftelse, anteckningar, objJmail, Msg
namn = Trim(Request.Form("namn"))
adress = Trim(Request.Form("adress"))
telefon = Trim(Request.Form("telefon"))
epostb = Trim(Request.Form("epostb"))
bil = Trim(Request.Form("bil"))
atgard = Trim(Request.Form("atgard"))
tid = Trim(Request.Form("tid"))
telefonb = Trim(Request.Form("telefonb"))
regnr = Trim(Request.Form("regnr"))
bekraftelse = Trim(Request.Form("bekraftelse"))
anteckningar = Trim(Request.Form("anteckningar"))

[/log]

 

 

Raderna jag visar efter MinCon.Close : Set MinCon = Nothing kan du ta bort.

 

Du gör ju samma sak högst upp på sidan.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
webbaccess.net

såja, nu ser jag allafall formuläret...

 

men nu får jag felet:

 

Microsoft JET Database Engine error '80004005'

 

The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.

 

/nya/sida/bokning.asp, line 20

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Phenomen

Du sparar ett värde som redan finns i ett indexerat+unikt fält.

 

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...