Benoit,
First solution works. For a sample you can check sample posted today earlier (search for 'SampleShortcut' - I remember that word as specific).
What might causing it no to work for you is probably that 'do form...'
But since you use SQL I suggest to go with 2nd.
Recordsource is only limited to 255 chars if you try to put SQL in PEM sheet. If you do it programmatically as I showed before in code you can use long strings (up to 8192 but never had an SQL that long).
You can also download FoxyClasses samples. The grids there use SQL recordsource and can be changed on the fly. Especially LocatorGrid4 sample is the one demonstrating underlying data set change.
Cetin