pe,
I see the others have also suggested the use of Advanced Filter.
However, be AWARE... that when you record a macro... this is one of the areas where you are likely to run into one of Excel's BUGS. It tells you that you CANNOT extract data to a SEPARATE sheet. This is FALSE - i.e. you CAN extract data to a separate sheet.
There's a second BUG that tells you it's NOT possible to place your "criteria" on a SEPARATE sheet. Again, NOT true - i.e. it IS possible.
Here's an example of a routine for extracting data. It uses the following range names:
a) "data" - to refer to your database
b) "crit" - to refer to your criteria
c) "out" - to refer to your extraction range. Normally you would assign this name to the top row only - i.e. the one containing the field names.
Sub Extract_Data()
Range("data"

.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:="crit", _
CopyToRange:=Range("out"

, _
Unique:=False
End Sub
Hope this helps.

If you run into any difficulty, please be sure to ask. There are some "quirks" related to setting up the "criteria", so expect to encounter some difficulties.
Regards, ...Dale Watson dwatson@bsi.gov.mb.ca