Is Access running under a minute if you run it from the client-side or the server? If you're issuing a SQL statement in VB from the client-side, all 150,000+ records are being returned to the client where the filtering occurs. If you were in SQL Server, you could use a Stored Procedure to do the filtering on the server. In Access, you maybe could use a parameter query. You need something to do the bulk of that processing on the server where you have greater resources.