By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,493 Members | 1,176 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,493 IT Pros & Developers. It's quick & easy.

Network Efficiency

P: n/a
I have read many of the posts here, but I want to ask one more time,
what can an non-network controlling person like me, be able to write a
Access DB that can be more responsive (load and look up query faster)?

I know having a better network (faster), increasing RAM, goto SQL
server... are not options for me at my work. It will take much more
than what I am able to change there. Therefore, the only options I
have are: split the DB to FE and BE, Break up Table to smaller ones,
Use VB codes that have an error handler, what else?

Sincerely,
Perry

Jul 19 '06 #1
Share this Question
Share on Google+
7 Replies


P: n/a
pe******@yahoo.com wrote:
I have read many of the posts here, but I want to ask one more time,
what can an non-network controlling person like me, be able to write a
Access DB that can be more responsive (load and look up query faster)?

I know having a better network (faster), increasing RAM, goto SQL
server... are not options for me at my work. It will take much more
than what I am able to change there. Therefore, the only options I
have are: split the DB to FE and BE, Break up Table to smaller ones,
Use VB codes that have an error handler, what else?
I don't believe any of the things you listed will radically change the
speed of your application. Increasing RAM (you don't say what you
currently have) is a fairly cheap upgrade. A good network card is
always nice (if you have a 10meg, get 100 meg), but that again is
hardware and network which you don't control.

What else? Make sure you use indexes on your tables. Or consider the
fact that if you have a crappy network that's down more than up, it's
possible the application you are working on won't receive much respect
no matter what you do.
>
Sincerely,
Perry
Jul 19 '06 #2

P: n/a
DFS
pe******@yahoo.com wrote:
I have read many of the posts here, but I want to ask one more time,
what can an non-network controlling person like me, be able to write a
Access DB that can be more responsive (load and look up query faster)?

I know having a better network (faster), increasing RAM, goto SQL
server... are not options for me at my work. It will take much more
than what I am able to change there. Therefore, the only options I
have are: split the DB to FE and BE, Break up Table to smaller ones,
Use VB codes that have an error handler, what else?
Few things that might help:

Proper column indexing, of course. Use the minimum field sizes required.
Transfer the minimum amount of data necessary: both rows and columns. Don't
use SELECT * if you can help it. Sort on indexed fields. Don't bind forms
(with SourceObject) until they're used. Set form Recordset Type to Snapshot
if possible. Open recordsets in code with dbForwardOnly or Snapshot option
if possible. Populate local lookup tables in the FE. Don't use subqueries
(SELECT * FROM TABLE WHERE FIELD IN (SELECT FIELD FROM...)).
Sincerely,
Perry

Jul 19 '06 #3

P: n/a
pe******@yahoo.com wrote in
news:11**********************@75g2000cwc.googlegro ups.com:
I know having a better network (faster), increasing RAM, goto SQL
server... are not options for me at my work. It will take much
more than what I am able to change there. Therefore, the only
options I have are: split the DB to FE and BE, Break up Table to
smaller ones, Use VB codes that have an error handler, what else?
The main thing is to request and load only the smallest data set
that can satisfy a user's needs. That means for regular forms, one
record at a time, for continuous forms as subforms, only the records
belonging to the parent record, for combo- and listboxes, fewer than
100 records, with rowsource assigned only after a couple of
keystrokes are typed when you have more than 100 or so records in
the table it's based on.

That's just for starters. The main thing is:

Never bind anything with a recordsource/rowsource to a full table --
always filter to the smallest dataset possible.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Jul 20 '06 #4

P: n/a
Thank you all for your insight. I got some of your points while others
I am not sure what steps to do... since I an pretty green in Access VB
coding.

"regular forms, one record at a time, for continuous forms as subforms,
only the records
belonging to the parent record,
>How do I control to open one record at a time? Isn't it usually is, anyhow?

for combo- and listboxes, fewer than
100 records, with rowsource assigned only after a couple of
keystrokes are typed when you have more than 100 or so records in
the table it's based on. "

This is interesting, again, how do I accomplish this?

Sincerely,
Perry

Jul 21 '06 #5

P: n/a
pe******@yahoo.com wrote in
news:11**********************@s13g2000cwa.googlegr oups.com:
Thank you all for your insight. I got some of your points while
others I am not sure what steps to do... since I an pretty green
in Access VB coding.

"regular forms, one record at a time, for continuous forms as
subforms, only the records
belonging to the parent record,
>>How do I control to open one record at a time? Isn't it usually
is, anyhow?
The default behavior in Access is to bind a form to an entire table,
though only one record at a time is displayed. The way to be
efficient is to bind the form to only one record (or a small group
of records) at a time. You do this by setting the WHERE clause of
the form's recordsource. You then provide a FIND facility on the
form so users can locate the records they want.
for combo- and listboxes, fewer than
100 records, with rowsource assigned only after a couple of
keystrokes are typed when you have more than 100 or so records in
the table it's based on. "

This is interesting, again, how do I accomplish this?
For a combo box, don't assign the rowsource until after a couple of
characters have been typed, and then filter the rowsource with a
WHERE clause using a LIKE on the characters already typed. You would
use the OnChange event to test the length of what has been typed and
then assign the rowsource at the point the desired length is
reached. There are some other details, like not having a blank
rowsource, but setting the rowsource in the form's OnCurrent event
so that it can display any existing values.

For listboxes, it's a little more complicated, as there's no
AutoComplete. You'd basically want to replicate a combo box with an
unbound textbox that filters the listbox.

I don't use listboxes in
these circumstances, so have never done it, but it's basically
exactly the same process with minor changes to account for two
controls instead of one. I find that when listboxes are needed, you
can basically obviate that need by using a combo box and dropping
down the list when the first keystroke is typed (or when the
rowsource is assigned). At that point, it's pretty much
indistinguishable from a listbox.

For either of these, if you don't know how to do them, ask and
someone will no doubt provide the details.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Jul 21 '06 #6

P: n/a
Sincere thank you to David. I have no idea on how to do anything such,
seems like reequiring some VB programmings. Well, I still appreciate
your insight, something for me to look forward to learning. Thanks
again.

Sincerely,
Perry

Jul 22 '06 #7

P: n/a
pe******@yahoo.com wrote in
news:11**********************@b28g2000cwb.googlegr oups.com:
Sincere thank you to David. I have no idea on how to do anything
such, seems like reequiring some VB programmings. Well, I still
appreciate your insight, something for me to look forward to
learning.
Yes, you do need to program to make an application network
efficient. Most of the default behaviors objects created with the
easy-to-use Access point-and-click interface are going to be *very*
inefficient, unfortunately. But you can use those as the starting
point and then code to make them efficient.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Jul 23 '06 #8

This discussion thread is closed

Replies have been disabled for this discussion.