Perché non hai relazionato le tabelle...? Scelta estremamente strana... e se non consapevole tecnicamente direi discutibile.
Le relazioni sono di 2 tipi, ma di solito ci si limita alla relazione 1-Molti(M)... per relazionare le tabelle devono esserci record con dati correlati... insomma servirebbe tu avessi conoscenza della Normalizzazione ed almeno delle prime 3 regole di 5.
Quando dici che le query le scrivi con riferimenti espliciti ai campi in realtà intendevi ai controlli nelle Form... in caso definizione criteri...?(purtroppo dobbiamo capirci... serve usare un.minimo di tecnicismi).
In relazione alle query con MOLTI CRITERI e di cui magari non tutti saranno compilati... in molti scrivono pasticci tipo:
SELECT * FROM T1
WHERE
[Campo1]=Forms!NomeForm!Nomecontrollo1 OR Forms!NomeForm!Nomecontrollo1 IS NULL
[Campo2]=Forms!NomeForm!Nomecontrollo2 OR Forms!NomeForm!Nomecontrollo2 IS NULLcode]
Ecc...
Oppure usa:
SELECT * FROM T1
WHERE IIF(IsNull(Forms!NomeForm!Nomecontrollo);'*';Forms!NomeForm!Nomecontrollo.... ecc...
Questo per non ottenere nulla quando non tutti i CRITERI sono soddisfatti...
La tecnicanin questione va bene se il.critrrio è uno massimo 2...ma basta analizzare con lo showplan i piani di esecuzione per vedere che viene rieseguta la query più volte al fine di soddisfare le Variabili condizionali... ne consegue lentezza...
Tralascio.ovviamentr la questione del SELECT * che rimane tecnica ma in questo contesto credo sia una pagliuzza.
Tenere aperto un rs sicuramente è una cosa da sapere e da fare...
In tutti i casi non ho ben chiaro se lavori in rete LAN... lascio stare il gprs...
Tieninsempre presente che Access o meglio JET non è fatto per lavorare in lan figurati se lo sviluppo include errori strutturali sostanziali.
Certamente se la latenza si avverte anche aprendo il BE in Filesharing potrebbe essere ci siano problemi di infrastruttura...
Fai un check di tutto, ma a prescindere le cose che ti ho esposto sono un MUST non un di più...