Todd,
As Hector's sample code shows, the only way to know if you can open a table is to open it and see if an error occurs. Even if there were a function to use you could call the function and then before your USE command fires someone else opens the table exclusively. The same is true for locks, the only way to know if you can get a lock is to get the lock and react to what happens.