I call Sybase stored procedures regularly. They use @ at the start of
parameter names. Works fine. The @ is simply @. I doubt that SQL Server
will be any different.
How do you know the query syntax is actually correct? My bet would be that
it isn't.
You absolutely need to put the whole SQL statement into a string variable,
and inspect it (e.g. with a MsgBox call). Then, pass that string variable
to SQL Server.
I expect that you will find that the SQL being passed is wrong. Typical
problems include: missing spaces; numeric variables put into the statement
as names, rather than as values; missing quotes around string values;
missing commas. Looking at the code that produces the SQL statement is not
the best way to find these types of problems - looking at the actual SQL
statement you are sending to the DB engine is the best way.
Once your SQL is working correctly, comment out the MsgBox call. (Don't
delete it - you'll just need it again, next time you change the query.)