Design Mode SLOW

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I can get a handle on why an app might well run slow in run-time, but I am
baffled at why my db is so very sluggish in design mode! I click a control
and wait for the selection handles to appear. I point to a selection handle
and wait for the cursor to change. Get up and walk around the room while a
form saves. And so on. It is extremely tedious. I have looked where I can
think to look and checked Alan Browne's tips, but nothing I've tried helps. I
saw on the board that someone had this problem a couple of years ago, but
never responded back whether they found a resolution. Any ideas?

Thanks in advance,
Kelly
 
Kelly, can you provide more info about your setup:

1. Version of Access?

2. Which Windows?

3. Is the MDB on your C: drive? Or on a network drive?

4. Is it split (separate front end and back end)?

5. Is anyone else using the database at the same time?

6. Is this a particular object (e.g. a report that has a crosstab query as
its source) or all objects?
 
couple of other ideas...

Tools->Options->Name AutoCorrect

if thats turned on, that can slow things down, especially when things get
big and complex!

(if you turn it off, of course you loose the feature)

You can also try regenerating the form such as
- copy your access db, delete the form, copy the form from the original db
- ctrl-a select all controls + cut + paste and then ctrl-a select all
background code + cut + paste (re-establishes controls events)
- make a copy of the form, start deleting it bit by bit, see if at any point
something you delete speeds things up alot
- cut/paste content (as above) into a new form
- check your machine isnt swapping its bottom off?

martin
 
Allen Browne said:
Kelly, can you provide more info about your setup:

1. Version of Access? 2003

2. Which Windows? XP

3. Is the MDB on your C: drive? Or on a network drive? local

4. Is it split (separate front end and back end)? Yes

5. Is anyone else using the database at the same time? No

6. Is this a particular object (e.g. a report that has a crosstab query as
its source) or all objects? all objects
 
Babbage said:
couple of other ideas...

Tools->Options->Name AutoCorrect

if thats turned on, that can slow things down, especially when things get
big and complex! did that already

(if you turn it off, of course you loose the feature)

You can also try regenerating the form such as
- copy your access db, delete the form, copy the form from the original db
- ctrl-a select all controls + cut + paste and then ctrl-a select all
background code + cut + paste (re-establishes controls events)
- make a copy of the form, start deleting it bit by bit, see if at any point
something you delete speeds things up alot
- cut/paste content (as above) into a new form
- check your machine isnt swapping its bottom off? I'm running in a virtual machine with memory set as high as it will let me

I haven't gone quite to the extreme you're suggesting, but I have re-created
the db and imported the objects -- twice -- without improvement.
 
Okay, something else is happening.

If you are using the Timer event in any form, remove it.

Temporarily disable your antivirus program before starting Access.

Close any other software you don't need.

Make sure the Name AutoCorrect boxes are unchecked in both the front end and
the back end files:
Tools | Options | General | Name AutoCorrect
Then compact the database.

In the back end, set the Subdatasheet Name to [None] in all tables.

Make sure the path to the back end is short.

More suggestions:
http://www.granite.ab.ca/access/performancefaq.htm
 
Ok - Thanks, Allen.
I have done most of these already after going through the tips on your
website. I didn't disable my antivirus so I'll try that, and I was kind of
hoping not to have to touch every table cuz there are so many, but I'll set
the subdatasheet property on the ones I haven't done that to yet (I did it on
all the main tables used in most of the forms and reports).

Kelly


Allen Browne said:
Okay, something else is happening.

If you are using the Timer event in any form, remove it.

Temporarily disable your antivirus program before starting Access.

Close any other software you don't need.

Make sure the Name AutoCorrect boxes are unchecked in both the front end and
the back end files:
Tools | Options | General | Name AutoCorrect
Then compact the database.

In the back end, set the Subdatasheet Name to [None] in all tables.

Make sure the path to the back end is short.

More suggestions:
http://www.granite.ab.ca/access/performancefaq.htm
 
Do this on the back end:

Function TurnOffSubDataSh()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim prp As DAO.Property
Const conPropName = "SubdatasheetName"
Const conPropValue = "[None]"

Set db = DBEngine(0)(0)
For Each tdf In db.TableDefs
If (tdf.Attributes And dbSystemObject) = 0 Then
If tdf.Connect = vbNullString And Asc(tdf.Name) <> 126 Then 'Not
attached, or temp.
If Not HasProperty(tdf, conPropName) Then
Set prp = tdf.CreateProperty(conPropName, dbText,
conPropValue)
tdf.Properties.Append prp
Else
If tdf.Properties(conPropName) <> conPropValue Then
tdf.Properties(conPropName) = conPropValue
End If
End If
End If
End If
Next

Set prp = Nothing
Set tdf = Nothing
Set db = Nothing
End Function
Public Function HasProperty(obj As Object, strPropName As String) As Boolean
'Purpose: Return true if the object has the property.
Dim varDummy As Variant

On Error Resume Next
varDummy = obj.Properties(strPropName)
HasProperty = (Err.Number = 0)
End Function

--
Allen Browne - Microsoft MVP. Perth, Western Australia

Reply to group, rather than allenbrowne at mvps dot org.

KJW said:
Ok - Thanks, Allen.
I have done most of these already after going through the tips on your
website. I didn't disable my antivirus so I'll try that, and I was kind of
hoping not to have to touch every table cuz there are so many, but I'll
set
the subdatasheet property on the ones I haven't done that to yet (I did it
on
all the main tables used in most of the forms and reports).

Kelly


Allen Browne said:
Okay, something else is happening.

If you are using the Timer event in any form, remove it.

Temporarily disable your antivirus program before starting Access.

Close any other software you don't need.

Make sure the Name AutoCorrect boxes are unchecked in both the front end
and
the back end files:
Tools | Options | General | Name AutoCorrect
Then compact the database.

In the back end, set the Subdatasheet Name to [None] in all tables.

Make sure the path to the back end is short.

More suggestions:
http://www.granite.ab.ca/access/performancefaq.htm

--
Allen Browne - Microsoft MVP. Perth, Western Australia

Reply to group, rather than allenbrowne at mvps dot org.

KJW said:
:

Kelly, can you provide more info about your setup:

1. Version of Access? 2003

2. Which Windows? XP

3. Is the MDB on your C: drive? Or on a network drive? local

4. Is it split (separate front end and back end)? Yes

5. Is anyone else using the database at the same time? No

6. Is this a particular object (e.g. a report that has a crosstab
query
as
its source) or all objects? all objects

--
Allen Browne - Microsoft MVP. Perth, Western Australia

Reply to group, rather than allenbrowne at mvps dot org.

I can get a handle on why an app might well run slow in run-time, but
I
am
baffled at why my db is so very sluggish in design mode! I click a
control
and wait for the selection handles to appear. I point to a selection
handle
and wait for the cursor to change. Get up and walk around the room
while a
form saves. And so on. It is extremely tedious. I have looked where
I
can
think to look and checked Alan Browne's tips, but nothing I've tried
helps. I
saw on the board that someone had this problem a couple of years
ago,
but
never responded back whether they found a resolution. Any ideas?

Thanks in advance,
Kelly
 
Cool!
Thanks, Allen.

Allen Browne said:
Do this on the back end:

Function TurnOffSubDataSh()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim prp As DAO.Property
Const conPropName = "SubdatasheetName"
Const conPropValue = "[None]"

Set db = DBEngine(0)(0)
For Each tdf In db.TableDefs
If (tdf.Attributes And dbSystemObject) = 0 Then
If tdf.Connect = vbNullString And Asc(tdf.Name) <> 126 Then 'Not
attached, or temp.
If Not HasProperty(tdf, conPropName) Then
Set prp = tdf.CreateProperty(conPropName, dbText,
conPropValue)
tdf.Properties.Append prp
Else
If tdf.Properties(conPropName) <> conPropValue Then
tdf.Properties(conPropName) = conPropValue
End If
End If
End If
End If
Next

Set prp = Nothing
Set tdf = Nothing
Set db = Nothing
End Function
Public Function HasProperty(obj As Object, strPropName As String) As Boolean
'Purpose: Return true if the object has the property.
Dim varDummy As Variant

On Error Resume Next
varDummy = obj.Properties(strPropName)
HasProperty = (Err.Number = 0)
End Function

--
Allen Browne - Microsoft MVP. Perth, Western Australia

Reply to group, rather than allenbrowne at mvps dot org.

KJW said:
Ok - Thanks, Allen.
I have done most of these already after going through the tips on your
website. I didn't disable my antivirus so I'll try that, and I was kind of
hoping not to have to touch every table cuz there are so many, but I'll
set
the subdatasheet property on the ones I haven't done that to yet (I did it
on
all the main tables used in most of the forms and reports).

Kelly


Allen Browne said:
Okay, something else is happening.

If you are using the Timer event in any form, remove it.

Temporarily disable your antivirus program before starting Access.

Close any other software you don't need.

Make sure the Name AutoCorrect boxes are unchecked in both the front end
and
the back end files:
Tools | Options | General | Name AutoCorrect
Then compact the database.

In the back end, set the Subdatasheet Name to [None] in all tables.

Make sure the path to the back end is short.

More suggestions:
http://www.granite.ab.ca/access/performancefaq.htm

--
Allen Browne - Microsoft MVP. Perth, Western Australia

Reply to group, rather than allenbrowne at mvps dot org.



:

Kelly, can you provide more info about your setup:

1. Version of Access? 2003

2. Which Windows? XP

3. Is the MDB on your C: drive? Or on a network drive? local

4. Is it split (separate front end and back end)? Yes

5. Is anyone else using the database at the same time? No

6. Is this a particular object (e.g. a report that has a crosstab
query
as
its source) or all objects? all objects

--
Allen Browne - Microsoft MVP. Perth, Western Australia

Reply to group, rather than allenbrowne at mvps dot org.

I can get a handle on why an app might well run slow in run-time, but
I
am
baffled at why my db is so very sluggish in design mode! I click a
control
and wait for the selection handles to appear. I point to a selection
handle
and wait for the cursor to change. Get up and walk around the room
while a
form saves. And so on. It is extremely tedious. I have looked where
I
can
think to look and checked Alan Browne's tips, but nothing I've tried
helps. I
saw on the board that someone had this problem a couple of years
ago,
but
never responded back whether they found a resolution. Any ideas?

Thanks in advance,
Kelly
 
Back
Top