Avatar billede majafjensen Nybegynder
29. december 2008 - 11:22 Der er 3 kommentarer

SQL Syntakstfejl i sproget VBA

Hej

Jeg får nogle syntakstfejl med min SQL-sætning som jeg har kodet i VBA.

Har jeg blot lavet en stavefejl et sted eller er min SQL-sætning gal?

SQL4 = "SELECT DATO_AKTIVITET, Team, Navn, count(R1.Aktivitetsnummer)as RødTråd " & _
    "FROM (SELECT DATO_AKTIVITET, Team, Navn FROM OpsparerAktiviteter INNER JOIN MedarbejderListe ON OpsparerAktiviteter.INITIAL=MedarbejderListe.Initialer)as liste1 LEFT JOIN (OpsparerAktiviteter LEFT OUTER JOIN (SELECT * FROM Rødtråd WHERE tilmeld = true)as R1 ON OpsparerAktiviteter.aktivitetsnummer=R1.Aktivitetsnummer)as liste2 ON liste1.DATO_AKTIVITET=liste2.DATO_AKTIVITET " & _
    "WHERE DATO_AKTIVITET >= #" + month + "-" + day + "-" + year + "# " & _
      "AND DATO_AKTIVITET <= #" + month2 + "-" + day2 + "-" + year2 + "# "
Avatar billede Slettet bruger
29. december 2008 - 13:54 #1
Hvilken type database er forespørgslen skrevet til?
Står der ikke noget mere end syntaxfejl?
Er det VBA eller kørslen af forespørgslen der generer fejlen?
Hvad står der  reelt i variablerne du anvender? (day, month, year)
Det kunne være interessant at kende det samlede indhold i variablen SQL4
Du kan f.eks. skrive debug.print SQL4 og aflæse den præcise sql-forespørgsel der sendes til databasen.
Avatar billede arne_v Ekspert
29. december 2008 - 14:48 #2
Det er syntaxen som er gal.

Så vidt jeg kan tælle har du 4 venstre parenteser og 3 højre parenteser.

Derudover ligner det noget forfærdeligt ineffektivt SQL.
Avatar billede majafjensen Nybegynder
30. december 2008 - 13:42 #3
Nej desværre intet af det, men er nået lidt længere.. nu ser det sådan ud:

SQL4 = "SELECT liste1.DATO_AKTIVITET, Team, Navn, count(R1.Aktivitetsnummer) " & _
    '"FROM (SELECT DATO_AKTIVITET, Team, Navn, Initialer FROM OpsparerAktiviteter INNER JOIN MedarbejderListe ON OpsparerAktiviteter.INITIAL=MedarbejderListe.Initialer)as liste1 LEFT JOIN (OpsparerAktiviteter LEFT OUTER JOIN (SELECT * FROM Rødtråd WHERE tilmeld = true)as R1 ON OpsparerAktiviteter.aktivitetsnummer=R1.Aktivitetsnummer) ON liste1.DATO_AKTIVITET=OpsparerAktiviteter.DATO_AKTIVITET " & _
    '"WHERE OpsparerAktiviteter.DATO_AKTIVITET >= #" + month + "-" + day + "-" + year + "# " & _
      '"AND OpsparerAktiviteter.DATO_AKTIVITET <= #" + month2 + "-" + day2 + "-" + year2 + "# "
     

Problemet er at den ikke vil benytte count:S hvad kan man gøre?
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