Avatar billede michaelfp Nybegynder
20. oktober 2004 - 16:18 Der er 7 kommentarer og
1 løsning

SQL forespørgsel - syntax error in FROM

Jeg sidder fast! Kan nogen hjælpe mig med at finde ud af, hvorfor der er syntaxfejl i følgende SQL?

    StrSQL = "SELECT [Skandidater].KandidatId, [Skandidater].Navn, [skandidater].adresse, [skandidater].adresse2, [skandidater].Pby, [Skandidater].Cpr, [Skandidater].ØkoId, [Skandidater].Målgruppe, [sbrugerdata].brugernavn, [sbrugerdata].password, "
    StrSQL = strSQL & "[SHoldIdeksternt].Beskrivelse AS AfHoldId, [Skandidater].Idriftfra, [Skandidater].Dagpengestart, [Skandidater].Ledigheduger, "
    StrSQL = StrSQL & "[Skandidater].Konsulent, [skandidater].afdeling, Format([næstemødedato],'dd/mm/yyyy') AS næstemøde, [skandidatstatus]!beskrivelse AS Kstatus, "
    StrSQL = StrSQL & "IIf(IsNull([20Tblanket]),'Nej',IIf(([20Tblanket]=False),'Nej','Ja')) AS 20TUdfyldt"

    StrSQL = StrSQL & " FROM SKandidatstatus RIGHT JOIN ((SHoldIdeksternt RIGHT JOIN (sholdideksternt RIGHT JOIN (skandidater LEFT JOIN Sbrugerdata ON [skandidater].kandidatid = [sbrugerdata].kandidatid)"
    StrSQL = StrSQL & " ON [sholdideksternt].eksternid = [skandidater].eksternid) LEFT JOIN skandidatinterview ON [skandidater].kandidatid = [skandidatinterview].kandidatid) ON [skandidatstatus].statusid = [skandidater].status"

    StrSQL = StrSQL & " GROUP BY [Skandidater].KandidatId, [Skandidater].Navn, [skandidater].adresse, [skandidater].adresse2, [skandidater].Pby, [Skandidater].Cpr, [Skandidater].ØkoId, [Skandidater].Målgruppe, [SHoldIdeksternt].Beskrivelse, [sbrugerdata].brugernavn, [sbrugerdata].password, "
    StrSQL = StrSQL & " [Skandidater].Idriftfra, [Skandidater].Dagpengestart, [Skandidater].Ledigheduger, [Skandidater].Konsulent, [skandidater].afdeling, Format([næstemødedato],'dd/mm/yyyy'),"
    StrSQL = StrSQL & " [skandidatstatus]!beskrivelse, [skandidater].Status, [skandidater].internid, IIf(IsNull([20Tblanket]),'Nej',IIf(([20Tblanket]=False),'Nej','Ja'))"
    StrSQL = StrSQL & " HAVING ((NOT ([skandidater].Kandidatid) Is Null)) AND ([skandidater].konsulent>='" & request.form("frakonsulent") & "' AND [skandidater].konsulent<='" & Request.form("tilkonsulent") & "')"
    StrSQL = StrSQL & " AND ([skandidater].afdeling>='" & Request.form("fraafdeling") & "' AND [skandidater].afdeling<='" & request.form("tilafdeling") & "')"
    StrSQL = StrSQL & " AND ([skandidater].status>=" & fstatus & " AND [skandidater].status<=" & tstatus & ")"
    StrSQL = StrSQL & " AND ([skandidater].internid>=" & fihold & " AND [skandidater].internid<=" & tihold & ")"

    StrSQL = StrSQL & " ORDER BY [skandidatstatus]!beskrivelse"
Avatar billede netro Nybegynder
20. oktober 2004 - 17:21 #1
[skandidatstatus]!beskrivelse = [skandidatstatus].beskrivelse
Avatar billede netro Nybegynder
20. oktober 2004 - 17:35 #2
Så vidt jeg kan se, mangler du en ) efter skandidatinterview].kandidatid
Avatar billede michaelfp Nybegynder
20. oktober 2004 - 17:49 #3
Tak Netro - det er desværre ingen af disse eller dem til sammen
Avatar billede netro Nybegynder
20. oktober 2004 - 17:52 #4
Nej, ikke den første i hvertfald. Jeg mener nu stadig at kunne se, du mangler en slutparantes. Men det stemmer heller ikke med din fejlmeddelelse.
Avatar billede netro Nybegynder
20. oktober 2004 - 17:56 #5
Der er 25 stk ( og 24 stk ) i hele dit statement...
Avatar billede michaelfp Nybegynder
20. oktober 2004 - 19:29 #6
Jeg er så langt, at det er den mellemste statement som ikke er ok - men hvad er d er galt? (Jeg er desværre ikke så stærk i SQL statements (endnu))

    StrSQL = StrSQL & " FROM [SKandidatstatus] RIGHT JOIN (([SHoldIdeksternt] LEFT JOIN [Skandidater] ON [SHoldIdeksternt].EksternId = [Skandidater].EksternId)"
'    StrSQL = StrSQL & " LEFT JOIN [Sbrugerdata] ON [skandidater].kandidatid = [sbrugerdata].kandidatid"
    StrSQL = StrSQL & " LEFT JOIN [SKandidatinterview] ON [Skandidater].KandidatId = [SKandidatinterview].KandidatId) ON [SKandidatstatus].StatusId = [Skandidater].Status"

Hvis jeg fjerner markeringen får jeg fejl!
Avatar billede michaelfp Nybegynder
20. oktober 2004 - 19:45 #7
Tak for indsatsen Netro!
Hér er løsningen, uden at jeg kan fortælle præcis, hvad jeg gjorde - jo jeg startede forfra - og lavede denne gang SQL sætningen i access indbyggede querybuilder først!

    Set rs2 = Server.CreateObject("ADODB.Recordset")
    Set FSO = Createobject("scripting.filesystemobject")
    Set act = Fso.CreateTextfile(server.mappath(Fname),true)

    StrSQL = "SELECT [Skandidater].KandidatId, [Skandidater].Navn, [skandidater].adresse, [skandidater].adresse2, [skandidater].Pby, [Skandidater].Cpr, [Skandidater].ØkoId, [Skandidater].Målgruppe, "
    StrSQL = strSQL & "[SHoldIdeksternt].Beskrivelse AS AfHoldId, [Skandidater].Idriftfra, [Skandidater].Dagpengestart, [Skandidater].Ledigheduger, [sbrugerdata].bruger, [sbrugerdata].password, "
    StrSQL = StrSQL & "[Skandidater].Konsulent, [skandidater].afdeling, Format([næstemødedato],'dd/mm/yyyy') AS næstemøde, [skandidatstatus]!beskrivelse AS Kstatus, "
    StrSQL = StrSQL & "IIf(IsNull([20Tblanket]),'Nej',IIf(([20Tblanket]=False),'Nej','Ja')) AS 20TUdfyldt"

    StrSQL = StrSQL & " FROM [SKandidatstatus] RIGHT JOIN ((([SHoldIdeksternt] LEFT JOIN [Skandidater] ON [SHoldIdeksternt].EksternId = [Skandidater].EksternId)"
    StrSQL = StrSQL & " LEFT JOIN [Sbrugerdata] ON [skandidater].kandidatid = [sbrugerdata].kandidatid)"
    StrSQL = StrSQL & " LEFT JOIN [SKandidatinterview] ON [Skandidater].KandidatId = [SKandidatinterview].KandidatId) ON [SKandidatstatus].StatusId = [Skandidater].Status"

    StrSQL = StrSQL & " GROUP BY [Skandidater].KandidatId, [Skandidater].Navn, [skandidater].adresse, [skandidater].adresse2, [skandidater].Pby, [Skandidater].Cpr, [Skandidater].ØkoId, [Skandidater].Målgruppe, [SHoldIdeksternt].Beskrivelse,"
    StrSQL = StrSQL & " [Skandidater].Idriftfra, [Skandidater].Dagpengestart, [Skandidater].Ledigheduger, [Skandidater].Konsulent, [skandidater].afdeling, Format([næstemødedato],'dd/mm/yyyy'), [sbrugerdata].bruger, [sbrugerdata].password,"
    StrSQL = StrSQL & " [skandidatstatus]!beskrivelse, [skandidater].Status, [skandidater].internid, IIf(IsNull([20Tblanket]),'Nej',IIf(([20Tblanket]=False),'Nej','Ja'))"
    StrSQL = StrSQL & " HAVING ((NOT ([skandidater].Kandidatid) Is Null)) AND ([skandidater].konsulent>='" & request.form("frakonsulent") & "' AND [skandidater].konsulent<='" & Request.form("tilkonsulent") & "')"
    StrSQL = StrSQL & " AND ([skandidater].afdeling>='" & Request.form("fraafdeling") & "' AND [skandidater].afdeling<='" & request.form("tilafdeling") & "')"
    StrSQL = StrSQL & " AND ([skandidater].status>=" & fstatus & " AND [skandidater].status<=" & tstatus & ")"
    StrSQL = StrSQL & " AND ([skandidater].internid>=" & fihold & " AND [skandidater].internid<=" & tihold & ")"

    StrSQL = StrSQL & " ORDER BY [skandidatstatus]!beskrivelse"

    Set rs2 = Conn.Execute(StrSQL)
Avatar billede netro Nybegynder
20. oktober 2004 - 19:47 #8
Det var godt. En smule svært at overskue det enorme statement.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester