Results 1 to 8 of 8
  1. #1
    Join Date
    Mar 2004
    Posts
    660

    Unanswered: performance is too slow

    I tried to open the same database on two computers. One of them is too slow. I tried this, if i closed the database in another computer. It will quickly open the form. But if i leave form open, when i open the same database in another PC. It tool so long to open it. Anybody, please help. Thanks in advance!

  2. #2
    Join Date
    May 2005
    Location
    Nevada, USA
    Posts
    2,888
    Provided Answers: 6

  3. #3
    Join Date
    Dec 2004
    Location
    Madison, WI
    Posts
    3,926
    I would try opening the form based on criteria (ie. a search box on the form) verses opening the entire recordset when the form first opens. My question is: is it slow on "any" other PC when the form is first opened on 1 PC or does it not matter? If it is slow regardless of the PC and is always slow due to the form first being opened on another PC, my guess would be that the form is opening up with a large recordset (on the form or on subforms) with a lot of things happening either in a timer or onCurrent event which is causing the slowness on other PC's for the form first loading.

    I'm guessing it doesn't matter which PC you're on. If the form is already opened on another PC, it always loads slowly on a 2nd PC (doesn't matter what PC it is). This seems to indicate a lot of resources being devoted to the table for the PC which initially opens the form causing a slowdown on another PC. For example, if I were to have a lot of code "continuosly" going against the recordset/table for the form, opening that same form on another PC might cause it to open slowly.

    Look for things such as me.requery or Refresh commands, or anything which may requery the recordset in the main/sub forms. You can test out what I mean here by setting a timer on the main form to issue a me.requery command every 1-2 seconds (not something you'd want to normally do.) When the form is open, then try opening it on another PC.
    Last edited by pkstormy; 08-20-07 at 22:21.
    Expert Database Programming
    MSAccess since 1.0, SQL Server since 6.5, Visual Basic (5.0, 6.0)

  4. #4
    Join Date
    May 2003
    Location
    Dallas
    Posts
    817
    Provided Answers: 5
    are all of the objects in the same mdb - and the whole file is being shared? If so use linked tables and launch the front end independently from both machines - I am willing to bet that this equalizes the performance - taking into account that both machines are equal in performance and specs.
    Dale Houston, TX

  5. #5
    Join Date
    Mar 2004
    Posts
    660
    Quote Originally Posted by pkstormy
    I would try opening the form based on criteria (ie. a search box on the form) verses opening the entire recordset when the form first opens. My question is: is it slow on "any" other PC when the form is first opened on 1 PC or does it not matter? If it is slow regardless of the PC and is always slow due to the form first being opened on another PC, my guess would be that the form is opening up with a large recordset (on the form or on subforms) with a lot of things happening either in a timer or onCurrent event which is causing the slowness on other PC's for the form first loading.

    I'm guessing it doesn't matter which PC you're on. If the form is already opened on another PC, it always loads slowly on a 2nd PC (doesn't matter what PC it is). This seems to indicate a lot of resources being devoted to the table for the PC which initially opens the form causing a slowdown on another PC. For example, if I were to have a lot of code "continuosly" going against the recordset/table for the form, opening that same form on another PC might cause it to open slowly.

    Look for things such as me.requery or Refresh commands, or anything which may requery the recordset in the main/sub forms. You can test out what I mean here by setting a timer on the main form to issue a me.requery command every 1-2 seconds (not something you'd want to normally do.) When the form is open, then try opening it on another PC.
    Thank you very much! I never use me.requery. I am not quite understand it. But i would like to try later and back to you. Thanks.

  6. #6
    Join Date
    Mar 2004
    Posts
    660
    Quote Originally Posted by axsprog
    are all of the objects in the same mdb - and the whole file is being shared? If so use linked tables and launch the front end independently from both machines - I am willing to bet that this equalizes the performance - taking into account that both machines are equal in performance and specs.
    Yes, all of the objects in the same mdb. But the back end database is seperate. I also create mde file. So i could try to launch the front end mde file to each machine. I am going to do it once i finish. Thank you very much!

  7. #7
    Join Date
    Dec 2004
    Location
    Madison, WI
    Posts
    3,926
    yyu,

    Regarding the me.requery...The concept is that you might have a lot of events going on against the table which is bound to the form (think of it as when you first start a car - initially you draw a lot of juice from the battery - ie. when the form first loads, a lot of juice is being drawn against the table.) If another form is eating up all the juice by continously drawing against the battery, the other forms against that same table tend to load slower. Once the form loads (ie. after the 3-5 second delay you're mentioning), everything stabilizes. A me.requery command is like turning the key to the ignition and restarting the car again and anything which "requeries" or "loads" the recordset to the form, draws juice from the table.

    Not sure if that's the best analogy (and someone will probably think it's a poor example) but it's the best I can think of.

    axsprog is correct in that using linked tables will help but you still need to look at all the events firing against the table(s) the bound main form/subform(s) are based on.
    Last edited by pkstormy; 08-21-07 at 12:47.
    Expert Database Programming
    MSAccess since 1.0, SQL Server since 6.5, Visual Basic (5.0, 6.0)

  8. #8
    Join Date
    Mar 2004
    Posts
    660
    Quote Originally Posted by pkstormy
    yyu,

    Regarding the me.requery...The concept is that you might have a lot of events going on against the table which is bound to the form (think of it as when you first start a car - initially you draw a lot of juice from the battery - ie. when the form first loads, a lot of juice is being drawn against the table.) If another form is eating up all the juice by continously drawing against the battery, the other forms against that same table tend to load slower. Once the form loads (ie. after the 3-5 second delay you're mentioning), everything stabilizes. A me.requery command is like turning the key to the ignition and restarting the car again and anything which "requeries" or "loads" the recordset to the form, draws juice from the table.

    Not sure if that's the best analogy (and someone will probably think it's a poor example) but it's the best I can think of.

    axsprog is correct in that using linked tables will help but you still need to look at all the events firing against the table(s) the bound main form/subform(s) are based on.
    Thank you Paul! I like this explaination. I am going to learn and try. Thanks again!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •