Nothing wrong with having a dialog for that. But displaying it directly in the constructor of a Form while it's being created is not a good choice, especially if you want to cancel that creation. Better to have the caller display the dialog first, and if it is not canceled then create the Form, passing it the dialog's selected option.
If you really want to be able to reset the Form with a new table without closing and recreating the Form,, then you should move that logic into a separate method of the Form, and then call it when needed, ie when the Form is shown, and in a button/menu handler on the Form. I wouldn't call it directly in the constructor, though, but the constructor can trigger it asynchrously, such as with PostMessage() or TThread.ForceQueue(), so the Form can be constructed normally. Or use the Form's OnShow event.