DOcmd.runsql Ik kan de fout Fout in mij syntax niet vinden

Status
Niet open voor verdere reacties.

castella

Gebruiker
Lid geworden
1 mrt 2013
Berichten
13
Ná Jaren ben ik weer eens met een DB aan de gang gegaan.
Ik loop al snel aan tegen een gebrek aan kennis m.b.t. een syntax.

Ik probeer een tijdelijke tabel te vullen met een sql query
Hieronder de commando's

Code:
Dim strSQL As String
 'DoCmd.RunSQL "DELETE * From Tijdelijk"
  strSQL = "INSERT INTO Tijdelijk (naam, Voornaam, Mail, AantalVanNaam )" _
& "SELECT tPersoon1.naam, tPersoon1.Voornaam, tPersoon1.Mail, Count(tActivity1.Naam) AS AantalVanNaam" _
& "FROM tPersoon1 INNER JOIN tActivity1 ON tPersoon1.Id = tActivity1.ResourceID" _
& "GROUP BY tPersoon1.naam, tPersoon1.Voornaam, tPersoon1.Mail" _
& "Having (((tPersoon1.Mail) Is Not Null) AND (Count(tActivity1.Naam)>0))"
DoCmd.RunSQL strSQL

Maar ik blijf een error 3067 krijgen.
Ik heb van alles geprobeerd mbv andere berichten op dit forum maar ik kom er ná een dagje lezen en proberen maar niet uit. Met en zonder brackets, met en zonde quotes.
Als ik de Sql gewoon in een "Query" stop doet i het prima.

Waar zit mijn fout?:(

M.v.g.
 
Laatst bewerkt:
Zet eens een spatie voor FROM, voor GROUP BY en voor HAVING.
Zoals je het nu hebt staan wordt alles direct aan elkaar geplakt en denk ik dat de syntax niet klopt.
 
Whow

Dat was snel.
En werkt perfect!!!
Daat maakt het dagje prutsen wel weer goed.

Thnx!!
Erg bedankt!!
 
Klopt helemaal; of een nieuwe regel natuurlijk, dat werkt ook prima:
Code:
 strSQL = "INSERT INTO Tijdelijk (naam, Voornaam, Mail, AantalVanNaam )" & vbLf _
 & "SELECT tPersoon1.naam, tPersoon1.Voornaam, tPersoon1.Mail, Count(tActivity1.Naam) AS AantalVanNaam " & vbLf _
 & "FROM tPersoon1 INNER JOIN tActivity1 ON tPersoon1.Id = tActivity1.ResourceID " & vbLf _
 & "GROUP BY tPersoon1.naam, tPersoon1.Voornaam, tPersoon1.Mail " & vbLf _
 & "Having (((tPersoon1.Mail) Is Not Null) AND (Count(tActivity1.Naam)>0))"
En de volgende keer graag code opmaken met de CODE knop :)
 
Graag gedaan :)
Netter is het om de voorgaande regel met een spatie te laten eindigen maar dit maakte het even wat makkelijker om te beschrijven.

Edit:
Of inderdaad, zoals Michel zegt, de voorgaande regel eindigen met een nieuwe regel (vbLf)
 
Laatst bewerkt:
Zal dat nog even aanpassen :)

Eigenlijk was dit stukje code een onderdeeltje van een puzzeltje waar ik mee bezig ben.
Ik twijfel nu of ik op de goede weg zit.

Ik ben bezig om een programmatje toe te voegen aan onze DB waarmee ik aan iedere medewerker op regelmatige basis een update van zijn/haar actviteiten stuur.

Vanuit een resource tabel en een activiteiten tabel check ik welke resources 1+ activiteiten heeft.
Vervolgens zou obv het resultaat, Array of tabel per resource een rapportje moeten worden gredraaid die in een mailtje wordt verwerkt en vervolgens gemaild.

Ik ben er nog niet helemaal uit hoe ik die individuele rapportjes in een mail krijg.

Iemad suggesties?

M.v.g.
 
Ik ken Access niet maar Michel (Octafish) weet daar alles van, wellicht dat hij op je vraag zal reageren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan