Though ADO is flexible enough to allow you to perform actions through a recordset opening statement (incase the RDBMS supports multiple statements) it's never a good idea.
(However it's not a good practice at all. If you ever had such a need then an SP which performed the actions and then returned the recordset would be appropriate).
You should execute the command through a command object - or against the connection directly.
cnn.Execute strSQLDelete
If you still get an error then post back.