Why would that be "more efficient"? The query is always executed by the front
end regardless of where you might store it. Just put the query in the front
ends.
I did a bunch of experimentation with this concept about two years
ago, and contrary to expectations, a query executed in the backend is
*much* faster than a query executed in the frontend. Doesn't seem like
it should be, but I found a 10 times increase in speed. I used some
query-timing software to measure the results, but the speed difference
was noticeable even to the naked eye.
My technique returned a DAO recordset, and I never figured out a
generic solution to bind it to a form. So without making the leap into
unbound forms, I was unwilling to modify my applications to use the
technique and take advantage of the speed increase.
Speed increases were especially noticeable when the backend was on a
network server, as one would expect.
Here's what I did:
1. Make a public function in the backend that returns a recordset. The
input parameter to the function should be the name of a query in the
backend. Alternatively, an SQL statement will work just as well.
2. The function should open a DAO recordset on the query, and return
it as the function return value.
3. The frontend must REFERENCE the backend. This additional "binding"
of the frontend to the backend was also a detraction to using the
technique.
4. Call the public function in the backend from the frontend. Public
functions in referenced databases can be called from an external
database.
Action queries were similarly speed enhanced.
**********************
(e-mail address removed)
remove uppercase letters for true email
http://www.geocities.com/jacksonmacd/ for info on MS Access security