I have an application running on a 4 PCs -Compaqs, all run XP Home, 3 pcs run Access2K Runtime and 1 PC has OfficeXP. All have XP updates current and the one with OfficeXP also has SR2 applied.
This problem occured before and after the updates where make.
Problem is with the OfficeXP PC, sometimes it generates an error (Obj does not support this property) on the following line of code. me.fieldname.visible
there are many other lines simular and it may stop on any of them, it is always a line that references an object with me. instead of me!
if I change the line to me!fieldname.visible replacing the . with ! and continue the code it seems to work OK but may stop on another line of code with me. or it may run for days before stopping again.
If I change all the references to me! instead of me. the the amount of time it take to open the form increases form 10 seconds to 20 seconds.
The other pcs load the same form in 2 seconds! with the same version of the application.
This slow down also happens on my PC which is running xp pro and has Access2k installed after changing the referneces to !.
Note that sometimes it takes the OfficeXP over 2 minutes to load the same form, no data changes need to be make for this to happen, access is to data on the same PC and this occurs with nothing else running, (checked Processes to confirm nothing else is running)
So my questions for this issue are:
Why does AccessXP stop on me. sometimes?
Why does the form slow down when the references are changed to me!
Why is the Office XP version always much slower than Access2k runtime.
You use the ! and .(dot) operators in an identifier to indicate the type of item that immediately follows.
The ! operator indicates that what follows is a user-defined item (an element of a collection). For example, use the ! operator to refer to an open form, an open report, or a control on an open form or report.
The . (dot) operator usually indicates that what follows is an item defined by Microsoft Access. For example, use the . (dot) operator to refer to a property of a form, report, or control. or a control on an open form or report.
So both syntaxes you used are correct. The ! syntax probably takes longer due to Access having to search for something user defined vs something native to itself.
to be honest, my AccessXP is faster than Access2000 :-(
difference between ! and . is as FirstAndGoal4 said in in property vers. collection. I can only add (as I said many times before) STOP USING EXCLAMATION NOW!!!!
there are only few situations, where you have to use exclamation (query calles variable from form, ....). In most of the case, you can use DOT. Exclamation is Access special silly old feature and reg. visual basic does not use it.
so for example:
is the same as
is the same as
cauze Value is defaulf property
is the same as
the other problem is in form CACHE. Both Access2000 and AccessXP have the same problem (AccessXP can go around if you do not use FILTER on FORM)
Maybe it happened to you..... when you open the form, it takes many seconds to open it, when you close it and open it, it takes few seconds... and MDB file is bigger..... that's the CACHE. There are few tricks, how to play with it, but it's a topic for different email....
They still leve open the questions:
Why does AccessXP stop when me. is used instead of me! SOMETIMES?
And the question of why AccessXP is slower that Access2K, in my situlation there is deffently a speed difference expecially with the form in question. And why is AccessXP 10 times slower than Access2K runtime? Does this have anything to do with recompiling? is AccessXP and Access2K recompliling each time the form is loaded, if so why?