Efficiency, eh?
In some simple queries, the Execute method will be faster, because it
doesn't call the Expression Service (to evaluate parameters.)
When you use the Execute method in code, you know that the query has run to
completion before the next line of code executes. You can't be sure of that
with RunSQL, so there might be cases where the code resumes before the
RunSQL completes. If so, would you consider the RunSQL to be faster
(releasing earlier) or less reliable (you may be trying to perform further
operations on the table that hasn't completed yet?) I can't be sure of that
scenario with RunSQL, whereas I know for sure I can trust the Exeucte method
(e.g. testing RecordsAffected on the next line of code.)
Summary of other differences:
Action queries: suppressing dialogs, while knowing results
at:
http://allenbrowne.com/ser-60.html