Well, how about you set a variable which will determine if the key has been picked up by the player, or not yet? Then use that variable to determine if the function for your area collide will activate, or not.
Alternatively, instead of a variable, you can can use this to determine the item's state instead:
Quote:bool HasItem(string& asName);
Checks whether the player has an item in his inventory.
That's just an idea I'm throwing out. If you need more help, post your script, and we'll see if we can help you alter it properly!