Access the answers to your technology questions today.
Subscribe Now
30-day free trial. Register in 60 seconds.
What Makes Experts Exchange Unique?
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.
Try it out and discover for yourself.
Subscribe Now
30-day free trial. Register in 60 seconds.
Join the Community
Give a Little. Get a Lot.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Join the Community
by: ornicarPosted on 2002-02-07 at 01:48:17ID: 6785104
Yes, A2K is slower than 97.
tes And dbSystemObject) = 0 Then
es(propNam e).Value <> propVal Then es(propNam e).Value = propVal
operty(pro pName) es.Append MyProperty
The most slow down I experienced is the forms opening when many forms are present in the database.
A2000 has a different way to store the code. In A97 it was stored in tables. In A2K its not.
To suppress the slow opening on forms, all their code must be stored in a module, and the events called not by a code event, but by a function like =MyFormNameOnOpen().
I did this on a database and the opening of forms went very fast. The bad new is that it needs a lot of work: One module for each form, one function for each event with a kind of naming convention, all Me. changed to Forms!.. syntax. But the result is worth the effort.
Another annoyance is the slow opening of linked tables. This can be corrected by turning off the 'subdatasheet' option. Here is some code to suppress this option on all tables. Must be run on the backend database:
Function TurnOffSubDataSheets()
Dim MyDB As DAO.Database
Dim MyProperty As DAO.Property
Dim propName As String
Dim propType As Integer
Dim propVal As String
Dim strS As String
Dim i, intChangedTables
Set MyDB = CurrentDb
propName = "SubDataSheetName"
propType = 10
propVal = "[NONE]"
On Error Resume Next
For i = 0 To MyDB.TableDefs.Count - 1
If (MyDB.TableDefs(i).Attribu
If MyDB.TableDefs(i).Properti
MyDB.TableDefs(i).Properti
intChangedTables = intChangedTables + 1
End If
If Err.Number = 3270 Then
Set MyProperty = MyDB.TableDefs(i).CreatePr
MyProperty.Type = propType
MyProperty.Value = propVal
MyDB.TableDefs(i).Properti
Else
If Err.Number <> 0 Then
MsgBox "Error: " & Err.Number & " on Table " _
& MyDB.TableDefs(i).Name & "."
MyDB.Close
Exit Function
End If
End If
End If
Next i
MsgBox "The " & propName & _
" value for all non-system tables has been updated to " & propVal & "."
MyDB.Close
End Function
I tried also to store all ActiveX objects on a ramdrive. It improved performance a bit when loading them, but its a hell to configure all client's computers like this.