And you can't open a recordset in VBA with this SQL statement?
As an alternative, you could look at OpenSchema from ADODB.
TableDefs could also be run through, but I don't know how to get only the user tables. Unless it is enough to exclude the schema sys.