2nd Try re Tab Control Form problem

  • Thread starter Thread starter Noel
  • Start date Start date
N

Noel

Hi, I posted this on 30th Sep but did not receive a reply.
Can anyone help with this please? Since I posted this the
problem seems a bit more random. When I tried the process
as described below on another PC, the problem did not
occurr, so I do not really know why this window pops up on
certain occasions and not on others. Any thoughts wold be
appreciated.

I have a Tab Control type form (called Tab Form Master)
which I use to call up a load of other forms, each one
having a ReQuery set. If I open the Tab Control form and
click on any tab other than the one the form opens with, I
get this message "Tab Form Master has been changed since
the last time you opened it, either by another user or
because another instance of it .......". If I simply open
the Tab Control form and close it, I do not get the
message. The database is used by more than one user at a
time. Is the message harmless and if so, how can I get rid
of it? Thanks, Noel
 
Noel-

What is the record source of the form? It sounds like you have subforms on
each of the tabs. What is the record source of those? What code do you
have behind the form to do the requeries?

Does the message reference the form object or one of the recordsets that you
are trying to display? Please post the complete text of the message.

You can get a message similar to this when you have more than one recordset
open on the same table(s) in one copy of Access. Basically, each recordset
is open on its own thread, so you are two "users" in one session. If one
recordset has pending edits and then you try to make a change in another
copy, Access warns you that you are conflicting with yourself. Is this what
is happening?

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)
 
Thanks for replying John. I have a number of Tabs on the
Tab Control form, most of them fronted by a query and each
tab displays a subform. Some of these tab subforms have
another subform in them. Some of the tab queries sort
from a descrete table but four of the tabs use their own
query to sort data from a common table. The On Change
Requery is:

Private Sub TabCtl1_Change()
If Me!TabCtl1 = Me!PGCE.PageIndex Then Me![Students
PGCE].Requery
If Me!TabCtl1 = Me![BEd Year 1].PageIndex Then Me!
[Students BEd Year 1].Requery
If Me!TabCtl1 = Me![BEd Year 2].PageIndex Then Me!
[Students BEd Year 2].Requery
If Me!TabCtl1 = Me![BEd Year 3].PageIndex Then Me!
[Students BEd Year 3].Requery
If Me!TabCtl1 = Me![BEd Year 4].PageIndex Then Me!
[Students BEd Year 4].Requery
If Me!TabCtl1 = Me![RolleTutors].PageIndex Then Me![Rolle
Tutors].Requery
End Sub

I will send you the full text of the message when it next
pops up so please bear with me. I am not sure if I
understand your last point re pending edits. The message
appears only when a user tries to close down Access - it
does not appear during normal use. Sometimes this is one
user with another still logged on but I have had it happen
to me when I was the only user logged on. It seems to be
random - sometimes it appears and sometimes not. Also, it
happens more to some users than others (It is fairly rare
for me to get this message myself even though I am in and
out making normal and design changes. I initially though
it was my doing design work that caused the message but it
appears on days when I do not work on the database). By
the way, the database has a general password but no other
security has yet been set up. Will supply more info when I
can. Thanks again, Noel
 
Noel-

Why are you requerying the subforms? Access loads all the subforms and
their recordsets when you open the form. If you have related data on the
outer form (which is why I asked you for the record source of the form
containing the tab control) and you have set the Link Master and Link Child
properties correctly, Access filters the subforms when you move to a new
record in the outer form.

It's also not clear to me whether we're working on one problem or two. Do
you think the Requery has something to do with the error message? You're
now telling me that the user sees the error only when closing the
application.

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)
http://www.deanforamerica.com/site/TR?pg=personal&fr_id=1090&px=1434411
Noel said:
Thanks for replying John. I have a number of Tabs on the
Tab Control form, most of them fronted by a query and each
tab displays a subform. Some of these tab subforms have
another subform in them. Some of the tab queries sort
from a descrete table but four of the tabs use their own
query to sort data from a common table. The On Change
Requery is:

Private Sub TabCtl1_Change()
If Me!TabCtl1 = Me!PGCE.PageIndex Then Me![Students
PGCE].Requery
If Me!TabCtl1 = Me![BEd Year 1].PageIndex Then Me!
[Students BEd Year 1].Requery
If Me!TabCtl1 = Me![BEd Year 2].PageIndex Then Me!
[Students BEd Year 2].Requery
If Me!TabCtl1 = Me![BEd Year 3].PageIndex Then Me!
[Students BEd Year 3].Requery
If Me!TabCtl1 = Me![BEd Year 4].PageIndex Then Me!
[Students BEd Year 4].Requery
If Me!TabCtl1 = Me![RolleTutors].PageIndex Then Me![Rolle
Tutors].Requery
End Sub

I will send you the full text of the message when it next
pops up so please bear with me. I am not sure if I
understand your last point re pending edits. The message
appears only when a user tries to close down Access - it
does not appear during normal use. Sometimes this is one
user with another still logged on but I have had it happen
to me when I was the only user logged on. It seems to be
random - sometimes it appears and sometimes not. Also, it
happens more to some users than others (It is fairly rare
for me to get this message myself even though I am in and
out making normal and design changes. I initially though
it was my doing design work that caused the message but it
appears on days when I do not work on the database). By
the way, the database has a general password but no other
security has yet been set up. Will supply more info when I
can. Thanks again, Noel
-----Original Message-----
Noel-

What is the record source of the form? It sounds like you have subforms on
each of the tabs. What is the record source of those? What code do you
have behind the form to do the requeries?

Does the message reference the form object or one of the recordsets that you
are trying to display? Please post the complete text of the message.

You can get a message similar to this when you have more than one recordset
open on the same table(s) in one copy of Access. Basically, each recordset
is open on its own thread, so you are two "users" in one session. If one
recordset has pending edits and then you try to make a change in another
copy, Access warns you that you are conflicting with yourself. Is this what
is happening?

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)



.
 
Hi again John, Sorry for not being very clear in my
earlier posts. Let me try to answer all of your questions.
What is the record source of the form? – it has none. It
is a Tab Control type form with subforms embedded on each
Tab page. Each of the subforms has its own control source,
as mentioned earlier sometimes this is a Table, sometimes
a query. Those that are based on queries have a requery
set on them to refresh the subform each time its Tab is
clicked. I did this (with advise from this usergroup)
because previously the queries that supply some of the
Tabbed forms would only run when the Tab Control form was
first loaded. I need the users to be able to modify data
via one Tabbed form and for that modified data to
be ‘seen’ by other Tabbed forms. This does not happen
unless Requeries are provided.

I had an instance of the message appearing today and tried
to isolate the exact reason for its appearance without
conclusion. (The Tab Control form is called Tab Control
Master). The full message is “ ‘Tab Control Master’ has
been changed since the last time you opened it, either by
another user or because another instance of it was opened
on your machine. Do you wish to replace that you or
another user made? *To save your most recent changes and
discard the other users changes or your previous changes,
click Yes. *To save this version of the object with
another name, click No” Then there are Yes and No boxes.
The Yes box is always chosen and causes no problems.

When I went to the group using the database today, three
users had it loaded. Lets call them user A, B and C. All
three were doing a range of tasks but no design work. User
C closed down the Tab Control form and then access without
the error message. Same for user B. User C closes the Tab
Control form and the message appears. I answer Yes to the
message and load up the Tab Control form again. It loads
and opens at the first Tabs subform, as normal, whose
record source is a Table. I close the form without error
message appearing. I open it again and this time click on
one of the Tabs that causes a Requery to run. When the Tab
Control Form is closed up pops the message. I then try
this sequence repeatedly, and prove that the message only
appears when I close down the Tab Control form after
having clicked on a Tab that causes a Requery to run.
Success I think – but no. I fully close down access on
user A then load the database on user C and try this
sequence but cannot cause the message to appear. Then I
close down C and load on A again and cannot get the
message to appear there either! So the problem seems to be
repeatable and then its not. This seeming link to
requeries is why I mentioned them in the first place but I
really have no idea what causes this random problem.

As I said in an earlier post, I do not think my
potentially having more than one recordset open on the
same table is the problem here – the message seems to be
saying the design of the Tab Control Form is changing but
it is not. Again, thanks for your time. Any suggestions?
Cheers, Noel
-----Original Message-----
Noel-

Why are you requerying the subforms? Access loads all the subforms and
their recordsets when you open the form. If you have related data on the
outer form (which is why I asked you for the record source of the form
containing the tab control) and you have set the Link Master and Link Child
properties correctly, Access filters the subforms when you move to a new
record in the outer form.

It's also not clear to me whether we're working on one problem or two. Do
you think the Requery has something to do with the error message? You're
now telling me that the user sees the error only when closing the
application.

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)
http://www.deanforamerica.com/site/TR? pg=personal&fr_id=1090&px=1434411
Noel said:
Thanks for replying John. I have a number of Tabs on the
Tab Control form, most of them fronted by a query and each
tab displays a subform. Some of these tab subforms have
another subform in them. Some of the tab queries sort
from a descrete table but four of the tabs use their own
query to sort data from a common table. The On Change
Requery is:

Private Sub TabCtl1_Change()
If Me!TabCtl1 = Me!PGCE.PageIndex Then Me![Students
PGCE].Requery
If Me!TabCtl1 = Me![BEd Year 1].PageIndex Then Me!
[Students BEd Year 1].Requery
If Me!TabCtl1 = Me![BEd Year 2].PageIndex Then Me!
[Students BEd Year 2].Requery
If Me!TabCtl1 = Me![BEd Year 3].PageIndex Then Me!
[Students BEd Year 3].Requery
If Me!TabCtl1 = Me![BEd Year 4].PageIndex Then Me!
[Students BEd Year 4].Requery
If Me!TabCtl1 = Me![RolleTutors].PageIndex Then Me! [Rolle
Tutors].Requery
End Sub

I will send you the full text of the message when it next
pops up so please bear with me. I am not sure if I
understand your last point re pending edits. The message
appears only when a user tries to close down Access - it
does not appear during normal use. Sometimes this is one
user with another still logged on but I have had it happen
to me when I was the only user logged on. It seems to be
random - sometimes it appears and sometimes not. Also, it
happens more to some users than others (It is fairly rare
for me to get this message myself even though I am in and
out making normal and design changes. I initially though
it was my doing design work that caused the message but it
appears on days when I do not work on the database). By
the way, the database has a general password but no other
security has yet been set up. Will supply more info when I
can. Thanks again, Noel
-----Original Message-----
Noel-

What is the record source of the form? It sounds like you have subforms on
each of the tabs. What is the record source of those? What code do you
have behind the form to do the requeries?

Does the message reference the form object or one of
the
recordsets that you
are trying to display? Please post the complete text
of
the message.
You can get a message similar to this when you have
more
than one recordset
open on the same table(s) in one copy of Access. Basically, each recordset
is open on its own thread, so you are two "users" in
one
session. If one
recordset has pending edits and then you try to make a change in another
copy, Access warns you that you are conflicting with yourself. Is this what
is happening?

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)
Hi, I posted this on 30th Sep but did not receive a reply.
Can anyone help with this please? Since I posted this the
problem seems a bit more random. When I tried the process
as described below on another PC, the problem did not
occurr, so I do not really know why this window pops
up
on
certain occasions and not on others. Any thoughts
wold
be
appreciated.

I have a Tab Control type form (called Tab Form Master)
which I use to call up a load of other forms, each one
having a ReQuery set. If I open the Tab Control form and
click on any tab other than the one the form opens with, I
get this message "Tab Form Master has been changed since
the last time you opened it, either by another user or
because another instance of it .......". If I simply open
the Tab Control form and close it, I do not get the
message. The database is used by more than one user at a
time. Is the message harmless and if so, how can I
get
rid
of it? Thanks, Noel



.


.
 
Oh, this sounds nasty. I don't recall the original thread, so I don't know
the reason why a Requery seems to be necessary. Are the subforms dependent
on one another? Are you editing the same or similar data different ways in
each subform? It is fundamentally a bad idea to have the same rows open for
editing in more than one place at a time in an Access application. When you
do this, it's easy to get "data has been updated by another user" error -
even though you're the only one in the application.

I don't have a clue why Access thinks the form *design* is changing. I
would have to see all the code behind the form to try to guess. Also, it
seems to be repeatable only with one user. Are you using security? Are the
users signed in with different IDs? Are you sharing this database on a
server - or does each user have a copy of the "code" database using linked
table to a shared mdb?

Note that there are lots of places in Access where saving a changed object
fails "silently" because Access realizes that the user doesn't have
ownership rights to the object. For example, changing the default printer
for a report will work, but Access won't save the change if the user isn't
the owner.

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)
http://www.deanforamerica.com/site/TR?pg=personal&fr_id=1090&px=1434411
Hi again John, Sorry for not being very clear in my
earlier posts. Let me try to answer all of your questions.
What is the record source of the form? – it has none. It
is a Tab Control type form with subforms embedded on each
Tab page. Each of the subforms has its own control source,
as mentioned earlier sometimes this is a Table, sometimes
a query. Those that are based on queries have a requery
set on them to refresh the subform each time its Tab is
clicked. I did this (with advise from this usergroup)
because previously the queries that supply some of the
Tabbed forms would only run when the Tab Control form was
first loaded. I need the users to be able to modify data
via one Tabbed form and for that modified data to
be ‘seen’ by other Tabbed forms. This does not happen
unless Requeries are provided.

I had an instance of the message appearing today and tried
to isolate the exact reason for its appearance without
conclusion. (The Tab Control form is called Tab Control
Master). The full message is “ ‘Tab Control Master’ has
been changed since the last time you opened it, either by
another user or because another instance of it was opened
on your machine. Do you wish to replace that you or
another user made? *To save your most recent changes and
discard the other users changes or your previous changes,
click Yes. *To save this version of the object with
another name, click No” Then there are Yes and No boxes.
The Yes box is always chosen and causes no problems.

When I went to the group using the database today, three
users had it loaded. Lets call them user A, B and C. All
three were doing a range of tasks but no design work. User
C closed down the Tab Control form and then access without
the error message. Same for user B. User C closes the Tab
Control form and the message appears. I answer Yes to the
message and load up the Tab Control form again. It loads
and opens at the first Tabs subform, as normal, whose
record source is a Table. I close the form without error
message appearing. I open it again and this time click on
one of the Tabs that causes a Requery to run. When the Tab
Control Form is closed up pops the message. I then try
this sequence repeatedly, and prove that the message only
appears when I close down the Tab Control form after
having clicked on a Tab that causes a Requery to run.
Success I think – but no. I fully close down access on
user A then load the database on user C and try this
sequence but cannot cause the message to appear. Then I
close down C and load on A again and cannot get the
message to appear there either! So the problem seems to be
repeatable and then its not. This seeming link to
requeries is why I mentioned them in the first place but I
really have no idea what causes this random problem.

As I said in an earlier post, I do not think my
potentially having more than one recordset open on the
same table is the problem here – the message seems to be
saying the design of the Tab Control Form is changing but
it is not. Again, thanks for your time. Any suggestions?
Cheers, Noel
 
Thanks John. I spent a lot of time last night at home
replying to your last post but my message seems to have
disappeared and I dont have a copy. Will have to do again
bu dont have time just now. Will do soon (I wonder where
my message actually went? - Ill try a search). Cheers, Noel
 
Hi again John, Sorry for not being very clear in my
earlier posts. Let me try to answer all of your questions.
What is the record source of the form? it has none. It
is a Tab Control type form with subforms embedded on each
Tab page. Each of the subforms has its own control source,
as mentioned earlier sometimes this is a Table, sometimes
a query. Those that are based on queries have a requery
set on them to refresh the subform each time its Tab is
clicked. I did this (with advise from this usergroup)
because previously the queries that supply some of the
Tabbed forms would only run when the Tab Control form was
first loaded. I need the users to be able to modify data
via one Tabbed form and for that modified data to
be seen by other Tabbed forms. This does not happen
unless Requeries are provided.

I had an instance of the message appearing today and tried
to isolate the exact reason for its appearance without
conclusion. (The Tab Control form is called Tab Control
Master). The full message is quote, Tab Control Master has
been changed since the last time you opened it, either by
another user or because another instance of it was opened
on your machine. Do you wish to replace that you or
another user made? *To save your most recent changes and
discard the other users changes or your previous changes,
click Yes. *To save this version of the object with
another name, click No unquote, Then there are Yes and No
boxes.
The Yes box is always chosen and causes no problems.

When I went to the group using the database today, three
users had it loaded. Lets call them user A, B and C. All
three were doing a range of tasks but no design work. User
C closed down the Tab Control form and then access without
the error message. Same for user B. User C closes the Tab
Control form and the message appears. I answer Yes to the
message and load up the Tab Control form again. It loads
and opens at the first Tabs subform, as normal, whose
record source is a Table. I close the form without error
message appearing. I open it again and this time click on
one of the Tabs that causes a Requery to run. When the Tab
Control Form is closed up pops the message. I then try
this sequence repeatedly, and prove that the message only
appears when I close down the Tab Control form after
having clicked on a Tab that causes a Requery to run.
Success I think, but no. I fully close down access on
user A then load the database on user C and try this
sequence but cannot cause the message to appear. Then I
close down C and load on A again and cannot get the
message to appear there either! So the problem seems to be
repeatable and then its not. This seeming link to
requeries is why I mentioned them in the first place but I
really have no idea what causes this random problem.

As I said in an earlier post, I do not think my
potentially having more than one recordset open on the
same table is the problem here, the message seems to be
saying the design of the Tab Control Form is changing but
it is not. Again, thanks for your time. Any suggestions?
Cheers, Noel
 
Noel-

I see another copy of your previous lengthy reply, but nothing new.

More thoughts: Are any or all of the subforms in Datasheet view? If so, do
you get his message because the user has changed the width of any of the
columns? (Changing the width of a column in Datasheet view is a design
change.) Access is supposed to silently save any column width changes.

Also, which version of Access are you using? Do all the users have the same
service pack applied?

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)
http://www.deanforamerica.com/site/TR?pg=personal&fr_id=1090&px=1434411
 
Thanks John. No I dont use datasheet view in any of the
subforms but Ill have a think about other similar things
that might be happening. Obviously Access thinks the Tab
Control form is being changed somehow. Its Access97. The
database is accessed over a network so yes all users must
be using the same verion. I still would like to clear this
up at source but if all else fails can I trap the message
somehow (or answer Yes to it without the users seeing it).
I only suggest this because the database is working fine
so the message is spurious. Thanks again for your time. (I
can only see one copy of my long message for some reason).
Noel
 
Noel-

When sharing an mdb application over a network, the users *should not* be
opening and sharing the same copy of the code. You should create a "data
only" mdb and use linked tables to the shared data. Give each user their
own copy of the "code" file that contains local tables and all queries,
forms, reports, macros, and modules.

First, loading the "executable" object definitions over the network is much
slower than opening a local copy. Secondly, Access does "silent" saves all
over the place for objects it thinks have been modified. This happens often
for reports if the users go into Page Setup. If two users have the same
object open and Access thinks one of the users has modified the object, you
get collisions.

Try splitting the database to see if the problem goes away.

--
John Viescas, author
"Microsoft Office Access 2003 Inside Out"
"Running Microsoft Access 2000"
"SQL Queries for Mere Mortals"
http://www.viescas.com/
(Microsoft Access MVP since 1993)
http://www.deanforamerica.com/site/TR?pg=personal&fr_id=1090&px=1434411
 
John, Hmmmm things just got very complicated. The business
I am in shares everything over the network, mdbs, Word,
Excel, you name it, its shared. Secondly, I simply do not
have the knowledge to do what you suggest. If I asked for
help locally I think the response would be *dont be daft,
it must be your database*. So I am stuck. Can the message
be blocked in any way or an automatic Yes be injected?
Thanks again for your time, Noel
 
Ok Ill try that. Thanks for all your time over this one
John. You and others provide a great service - I would be
lost otherwise. Cheers, Noel
 
Back
Top