A text field formatted with a drop down list that also includes the auto-complete option should serve. If you define this as a field with global storage, you can set up a script like this to run when the field is exited:
Go To layout [//select your accounts layout]
Enter Find Mode //clear pause check box
Set Field [AccountsTable::AccountName ; YourTable::GlobalField]
Set Error Capture [on]
This assumes unique account names. If duplicate account names are possible, you'd need a longer script to process situations where more than one account record was found.
Is there anyway to limit the user from typing in a value that doesn't exist? Or can we disable the gotolayout if it doesn't exist (i.e. do nothing).
For example, if we have only one item in the drop down named "Apple Computers" and the user types in "Orange" then exits the drop down, the script will go to the accounts layout, but it will be blank (no record).
My request is similar to a "limit to list" setting in MS Access.
Isempty ( FilterValues ( ValueListItems ( Get ( FileName ) ; "ValueListNameInQuotes" ) ; YourTable::GlobalField ) )
Will be true if the selected value is not from the drop down list.
You can also use Get ( FoundCount ) after the find to check for zero records found and then return the user to the main screen and display a message in a custom dialog to tell them what happened.