You can create a query in MS Access:
INSERT INTO Table1
SELECT FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xlsm].[Sheet1$] s
WHERE s.SomeField=2
Or
SELECT * INTO Table1
FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xlsm].[Sheet1$] s
WHERE s.SomeField=2
You can also refer to named ranges and ranges. You can also simply set up a query and allow users to create their own make table queries.
In VBA
Dim db As Database
Set db = CurrentDB
ssql="SELECT * INTO Table1 " _
& "FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xlsm].[Sheet1$] s " _
& "WHERE s.SomeField=2"
db.Execute ssql, dbFailOnError
Application.FileDialog.. When the user chooses the file, the VBA should select some columns to copy to a table in the database .. Later, another form will do some searches based on user input.