Hej! Om du har join mellan tre tabeller måste du ha parantes. Exempel: Hej! Felmeddelandet "No value given for one or more required parameters" tyder på att du stavat en av dina kolumer fel eller att den inte finns. Testa att köra frågan innifrån access. Då funkar den utan problem. Hej! Access kräver paranteser. Detta för att veta i vilken ordning den skall utföra dem. Hej!Syntax error (missing operator) in query expression
På denna sida:
http://asp.petersdatormobil.se/develop/test.asp
Får jag detta felmeddelande:
<info>Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression 'Develop.systemID = DevelopSystems.systemID LEFT JOIN Persons ON Develop.responsibleID = Persons.personID'.
/develop/test.asp, line 22</info>
Med denna kod:
http://aspsidan.se/code/default.asp?c=5893
------------------------------
Jag har kört denna kod mot en MsSql2000 databas.
Då fungerade det fint men nu när jag kör den emot en access databas så funkar det inte.
Jag har sökt på Google och hittade att felet skulle vara att ett fält innehöll ett ' tecken.
Men alla dessa fält som felmeddelandet pekar på är av typen tal/räknare.
Någon som har en lösning på mitt problem?
/Peter ForssSv: Syntax error (missing operator) in query expression
SELECT *
FROM (TabellA LEFT JOIN TabellB ON TabellA.ID = TabellB.ID) LEFT JOIN TabellC ON TabellB.ID = TabellC.IDSv:Syntax error (missing operator) in query expression
Ändrade min sql sats till denna:
<code>rsData.Open "SELECT Develop.developID, Develop.Header, Develop.systemID, DevelopSystems.Header, Develop.responsibleID, Persons.Name, Develop.Priority, Develop.fixedEndDate, Develop.completedDate, Develop.Description" & _
" FROM (Develop LEFT JOIN DevelopSystems ON Develop.systemID = DevelopSystems.systemID) LEFT JOIN Persons ON Develop.responsibleID = Persons.personID Order By " & strOrderBy, conMain, adOpenStatic, adLockReadOnly, adCmdText</code>
Men får då detta felmeddelande:
<info>Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/develop/test.asp, line 18</info>
Men varför skulle koden ha funkat när jag körde den emot en MsSql databas och inte Access?
/Peter ForssSv: Syntax error (missing operator) in query expression
Sv:Syntax error (missing operator) in query expression
/Peter
Edit:
Om jag kör den första sql frågan direkt i access får jag samma felmeddelande som förut, fast på svenska.
När jag kör koden med parenteser i access så funkar det bra och de rätta värdena plockas ut.
Varför funkar då inte detta på webben?
/Peter
Edit 2:
Nu funkar allt, jag hadde glömt ett fält i databasen som du Andreas sa.
Tack för hjälpen.
Men varför funkade koden emot sqldatabasen men inte access?
/Peter
Edit 3:
Hur gör jag när jag har 3 st left joins?
<code>SELECT .... FROM Develop LEFT JOIN DevelopSystems ON Develop.systemID = DevelopSystems.systemID LEFT JOIN Persons ON Develop.responsibleID = Persons.personID LEFT JOIN Persons As PersonsWriter ON Develop.writerID = PersonsWriter.personID WHERE Develop.developID = " & developID</code>
Jag har prövat att sätta parenteserna på lite olika ställen men får alltid samma fel som jag fick ifrån början.
/PeterSv: Syntax error (missing operator) in query expression
Någon som har en lösning?
Har letat runt och testat massor med olika lösningar men får det inte till att fungera.
/Peter ForssSv: Syntax error (missing operator) in query expression
<code>
strSQL = "SELECT ...." & vbCrLf & _
"FROM ((Develop LEFT JOIN" & vbCrLf & _
" DevelopSystems ON Develop.systemID = DevelopSystems.systemID) LEFT JOIN " & vbCrLf & _
" Persons ON Develop.responsibleID = Persons.personID) LEFT JOIN" & vbCrLf & _
" Persons As PersonsWriter ON Develop.writerID = PersonsWriter.personID" & vbCrLf & _
"WHERE Develop.developID = " & developID
</code>
Genom att radbryta din kod gör du den mer lättläst.Sv:Syntax error (missing operator) in query expression
Tack för svaret, det löste problemet.
/Peter Forss