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

Har lyckats igen?


webbaccess.net

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?!

 

Länk till kommentar
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.

 

Länk till kommentar
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.

 

Länk till kommentar
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)

 

Länk till kommentar
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]

Länk till kommentar
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]

Länk till kommentar
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]

 

Länk till kommentar
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

 

Länk till kommentar
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?

 

Länk till kommentar
Dela på andra webbplatser

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.

 

Länk till kommentar
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.

 

Länk till kommentar
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.

 

 

Länk till kommentar
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.

 

Länk till kommentar
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.

 

Länk till kommentar
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.

 

Länk till kommentar
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.

 

Länk till kommentar
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]

 

Länk till kommentar
Dela på andra webbplatser

[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.

 

Länk till kommentar
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

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...