On your first question, I can't see anything off hand that might cause a problem. Check field and window names to make sure they exist.
On the second question, there is a better way.
Primarily, under Mac OS X, you shouldn't do this via the Finder. There's no guarantee the Finder is running, especially in a multi-user environment or if you're running in the background. You should 'tell application "System Events"' instead.
Other than that, your code is fine.