A similar question came up in the SQL forum and I replied :-
Are you quite sure about this? If the data is held in Access, then it certainly copies the whole table across the network, but I'm pretty sure that Sql Server does not. I spent quite some time running queries. I've just tried it. When I ask for a single route (it's all to do with lorries!) I get 60k bytes transmitted. If I ask for all routes I get 300k. I get about 60k for 8 records and 80k for 24 records. Whether this has something to do with page size? With Access as a backend, I get the whole table copied over first time, and then no network activity after that cos it's all here by then.
So SQL Server is clearly doing the work and sending back a subset of the data at least without me changing a thing.
I knocked up a vb6 programme that replicates one of the Access forms. The display in the (Janus) grid on vb is virtually instant whereas the Access one draws it in line by line. The amount of data transferred is however exactly the same in both cases. ( I am looking at 'non paged read bytes requested' in the NT Diagnostics prog. I hope this is a reasonable measure)
All I have done to the Access programme is replace the Access backend linked tables with SQL Server Linked tables and do me.RecordSource = "SELECT a,b,c FROM Orders WHERE Route = " & n
In VB6 I have
csql = "SELECT a,b,c FROM Orders WHERE Route = " & n
adoPrimaryRS.Open csql, db, adOpenStatic, adLockOptimistic
Set GridEX1.ADORecordset = adoPrimaryRS
So the question is why does Access appear to look so dreadfully slow when the back end is SQL when the network traffic is the same as VB, and what can I do about it. I'd like to stick with Access and SQL if possible as it's so easy.