Je moet alle nummers CAST naar nvarchar in de aaneenschakeling.
Er is geen impliciete conversie van VBA-stijl naar string. In SQL Server betekent prioriteit van het gegevenstype dat ints hoger zijn dan nvarchar:dus de hele string probeert te worden CAST naar int.
SET @SQL = 'SELECT ' + @GName + ' AS GrName ,' + @BR
+ CAST(@T_ID AS nvarchar(10)) + ' AS To_ID ,' ...
Bewerken:Will A heeft een goed punt:let op NULL's!