You can't search on global fields as they have the same value for every record, so they cannot isolate any found set. I think you have mixed up a couple of different ways to do what you want.
Set the field as global, with the colour value list (as you have).
Write a script:
- Set Variable [$Colour ; Table::Color ]
- Enter Find Mode
- Set Field [Table::Color ; $Colour ]
- Perform Find
(Actually, this script will work by just setting the Table::Color field directly from the global, but I prefer this more universal and flexible method)
You could attach a script trigger to the global field to run this script on modify, for example, although as a user I don't like that method as it takes me by surprise: I prefer to choose the colour and then click a button marked 'Find', which runs that script.
Hmmm... thanks! I have it set a little differently, which must be missing something...
I have the global field (Table::SelectColor) on the layout with a dropdown based on the value list ("red", etc)
I have a one line script ("Set Color")which says:
I set this script to run with a script trigger "On Modify", so that the variable should be set when the field is modified
Then I have a "Find" button which has a Perform Find script which reads:
Find Records with criteria "Table::Color[=$$SColor]
I want the user to be able to pick a color, then have the Find button find items with that color.
When I run that, my data viewer says Table::Color = Red (for example), and $$SColor = Red. However, I get the message that there's no match.
Where have I gone wrong??
Is table::color a field of type text? If it were of type number, you'd get the results you are seeing.
This script also works for performing a find when the search criteria is entered into a global field:
Enter Find Mode // clear the pause check box
Set Field [YourTable::Color ; YourTable::SelectColor ] //this step only works if SelectColor has global storage specified
Set Error Capture [on] // keeps "no records found" dialog from interrupting your script
Perform find 
Note that sorbsbuster and I don't spell out the criteria instead Enter find mode, nor in Perform find. That's a preference of many developers as we've found that this produces a script where we can see all the criteria at a glance--we don't have to open up a dialog box to check to see what criteria was used.
Also, If your dropdown permits typing data directly into the drop down, each separate keystroke will separately trip the onObjectModify trigger. I usually use OnObjectSave for the trigger when using a drop down--saving OnObjectModify for pop up menus, radio buttons and check boxes.