Expression in SQL VBA werkt niet

Status
Niet open voor verdere reacties.

Matjes

Gebruiker
Lid geworden
21 jun 2016
Berichten
76
Goedendag,

Ik ben al een tijdje aan het worstelen met onderstaande SQL in VBA:

Code:
strSQL = "SELECT tblProjectleden.ProjectlidID, [Achternaam] & "," & [Tussenvoegsel] & " " & [Voornaam] AS exprProjectlid, tblProjectleden.PartijID " _
        & "FROM tblProjectleden " _
        & "WHERE (((tblProjectleden.PartijID) = " & Me.cboPartijID & ")) " _
        & "ORDER BY [Achternaam] & "," & [Tussenvoegsel] & " " & [Voornaam];"

Ik vermoed dat het komt omdat ik een expression gebruik. Iemand een idee wat hier fout gaat?

Alvast bedankt!
 
De fout is vrij simpel, maar je moet het wel weten. Je hebt de code vermoedelijk letterlijk uit een query gekopieerd waar hij wel werkte, en nu gaat het dus fout. De reden is, dat de " in VBA een onderscheidingsteken is; je geeft er strings mee aan. Daarom begin je met een " en eindig je er mee. Zo leest VBA jouw string dus ook, en hij leest dus eigenlijk dit: "SELECT ProjectlidID, [Achternaam] & ". Bij de tweede quoot eindigt de string dus. Dat moet natuurlijk niet, die moet doorlopen naar het eind. Je lost dat op door het quootje twee keer te plaatsen. VBA weet dan dat hij de quoot als onderdeel van de string moet behandelen, en niet als eindpunt van de string. Omdat je dat een paar keer hebt, een quoot in je string, moet je dat overal toepassen. Je krijgt dus:

PHP:
    strSQL = "SELECT ProjectlidID, [Achternaam] & "", "" & [Tussenvoegsel] & "" "" & [Voornaam] AS exprProjectlid, PartijID " _
        & "FROM tblProjectleden " _
        & "WHERE (PartijID = " & Me.cboPartijID & ") " _
        & "ORDER BY [Achternaam] & "", "" & [Tussenvoegsel] & "" "" & [Voornaam];"
En dan zal de SQL wél werken.
 
OctaFisch, dank voor het aandragen van de oplossing. Werkt prima nu :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan