BUG: Access 2002 / Windows XP

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

Guest

This is a difficult one to explain, but I am seeing a bug when Access 200
is used on a system with Windows XP (Home or Pro). The problem is with
subform on a wizard

The following code is executed when the user goes to the next page in th
wizard

Select Case mintCurrentPag
Case 1 To 3, 7 To clsAddEntityWiz1.LastPag
Me.fsubPage.LinkChildFields = "MemberID
Me.fsubPage.LinkMasterFields = "txtMemberID
Case 4 To
If IsNothing(Me.txtMemberID_Partner) The
Me.fsubPage.LinkChildFields = "
Me.fsubPage.LinkMasterFields = "
Els
Me.fsubPage.LinkChildFields = "MemberID
Me.fsubPage.LinkMasterFields = "txtMemberID_Partner
End I
End Selec

txtMemberID_Partner is null when the problem occurs. Nevertheless, in ste
4, the page is being displayed as if LinkChildFileds = "MemberID" an
LinkMasterFields = "txtMemberID". This is causing me and my customers a lot of grief wit
users running Access 2002 on Windows XP

The database is compiled in 2000 format. The problem does not occur o
systems with Access 2002 and Windows 2000. Nor does it occur on system
with Access 2000 on any OS. The same code base is used in Access 97...an
the problem does not occur with any OS. Anyone else run into a simila
problem? Any resolution

TI

-
Paul Overwa
Logico Solutions, LL
www.logico-solutions.co
 
Paul Overway said:
This is a difficult one to explain, but I am seeing a bug when Access
2002
is used on a system with Windows XP (Home or Pro). The problem is
with a
subform on a wizard.

The following code is executed when the user goes to the next page in
the
wizard:

Select Case mintCurrentPage
Case 1 To 3, 7 To clsAddEntityWiz1.LastPage
Me.fsubPage.LinkChildFields = "MemberID"
Me.fsubPage.LinkMasterFields = "txtMemberID"
Case 4 To 6
If IsNothing(Me.txtMemberID_Partner) Then
Me.fsubPage.LinkChildFields = ""
Me.fsubPage.LinkMasterFields = ""
Else
Me.fsubPage.LinkChildFields = "MemberID"
Me.fsubPage.LinkMasterFields =
"txtMemberID_Partner" End If
End Select

txtMemberID_Partner is null when the problem occurs. Nevertheless,
in step 4, the page is being displayed as if LinkChildFileds =
"MemberID" and
LinkMasterFields = "txtMemberID". This is causing me and my
customers a lot of grief with users running Access 2002 on Windows XP.

The database is compiled in 2000 format. The problem does not occur
on
systems with Access 2002 and Windows 2000. Nor does it occur on
systems
with Access 2000 on any OS. The same code base is used in Access
97...and
the problem does not occur with any OS. Anyone else run into a
similar
problem? Any resolution?

TIA

Paul -

I'm curious about this line:
If IsNothing(Me.txtMemberID_Partner) Then

Would I be right in guessing that IsNothing is a user-defined function
that returns True if the value passed is Null or a zero-length string?

What do you see happening when you step through the code? Can you pin
down where the code goes astray, and whether the expected code path is
followed?
 
Dirk:

Unfortunately, I don't currently have a PC setup with this
configuration...that will be my next step. Nevertheless, what I see on a PC
with Access 2002 and Windows 2000 is that it works as expected. Likewise,
Access 2000 on Win98/ME/2K/XP. Likewise, Access 97 on Win98/ME/2K/XP.

IsNothing is indeed a UDF and it returns true if the arg is Null or empty or
nothing. There is nothing wrong with my code...otherwise, it would fail in
the other environments. And I've use the same UDF in numerous places and
numerous apps for years.

The problem is really pretty straightforward...it just appears that the
LinkChildFields and LinkMasterFields properties are not being set when my
app is used with Access 2002 and Windows XP...because I am seeing data that
indicates:

Me.fsubPage.LinkChildFields = "MemberID"
Me.fsubPage.LinkMasterFields = "txtMemberID"

when the properties should be:

Me.fsubPage.LinkChildFields = "MemberID"
Me.fsubPage.LinkMasterFields = "txtMemberID_Partner"

These properties are set to start a new entry....but I'm seeing data from
previous steps.

I HAVE seen the problem on a customer's PC...and I've had others call about
it. So, it is repeatable. But I am at a loss as to why Access 2002 would
work properly on Windows 2000 and not Windows XP.
 
Paul Overway said:
Dirk:

Unfortunately, I don't currently have a PC setup with this
configuration...that will be my next step. Nevertheless, what I see
on a PC with Access 2002 and Windows 2000 is that it works as
expected. Likewise, Access 2000 on Win98/ME/2K/XP. Likewise, Access
97 on Win98/ME/2K/XP.

IsNothing is indeed a UDF and it returns true if the arg is Null or
empty or nothing. There is nothing wrong with my code...otherwise,
it would fail in the other environments. And I've use the same UDF
in numerous places and numerous apps for years.

The problem is really pretty straightforward...it just appears that
the LinkChildFields and LinkMasterFields properties are not being set
when my app is used with Access 2002 and Windows XP...because I am
seeing data that indicates:

Me.fsubPage.LinkChildFields = "MemberID"
Me.fsubPage.LinkMasterFields = "txtMemberID"

when the properties should be:

Me.fsubPage.LinkChildFields = "MemberID"
Me.fsubPage.LinkMasterFields = "txtMemberID_Partner"

These properties are set to start a new entry....but I'm seeing data
from previous steps.

I HAVE seen the problem on a customer's PC...and I've had others call
about it. So, it is repeatable. But I am at a loss as to why Access
2002 would work properly on Windows 2000 and not Windows XP.

In no way did I mean to imply that your code is at fault. But somewhere
along the line a statement is being executed that doesn't give the
expected result. But with the information available I can't guess
whether mintCurrentPage doesn't have the expected value (due to an error
occurring elsewhere), or IsNothing is giving an incorrect result
(doesn't look like it; the outcome would be different), or the
assignments to the Link Master/Child Fields are failing for some unknown
reason, or whether the assignments are being properly made but Access
just isn't requerying or refiltering the data. I have no more idea
what's wrong than you do, probably less, but knowing which (if any) of
the above situations is true would give us a place to start looking.
 
Dirk:

Good points and I can see you are looking at this closely.

1. mintCurrentPage does have the expected value (it is used earlier in the
routine to change the subform being used)
2. I'm going to rule out IsNothing because that function is so basic and if
anything were wrong with it, I'd have all kinds of problems besides this one
3. The data in the subform is being requeried...but it is the wrong data
because LinkChildFields and LinkMasterFields are still the same in step 4 as
they were in step 3.

So...it seems that the assignments for LinkChildFields and LinkMasterFields
are not working for some reason.

I've attached code for the entire routine. There IS error handling, and I
would expect a message if there were a problem. Note that the first section
of code was inserted to help with troubleshooting the problem. This is just
SO basic I can't see why it would fail.

Thanks for looking at this.
 
Dirk:

I misspoke in my earlier post...the assignments in this situation are
supposed to be "" (empty string) because txtMemberID_Partner is null. Not
sure it matters...but just to clarify. In any case, the assignments aren't
being made as expected.
 
Paul Overway said:
Dirk:

Good points and I can see you are looking at this closely.

1. mintCurrentPage does have the expected value (it is used earlier
in the routine to change the subform being used)
2. I'm going to rule out IsNothing because that function is so basic
and if anything were wrong with it, I'd have all kinds of problems
besides this one
3. The data in the subform is being requeried...but it is the wrong
data because LinkChildFields and LinkMasterFields are still the same
in step 4 as they were in step 3.

So...it seems that the assignments for LinkChildFields and
LinkMasterFields are not working for some reason.

I've attached code for the entire routine. There IS error handling,
and I would expect a message if there were a problem. Note that the
first section of code was inserted to help with troubleshooting the
problem. This is just SO basic I can't see why it would fail.

Thanks for looking at this.

I'm probably not going to see anything you don't, but I'll look as hard
as I can. Before I wade in real deep, though, there's one possibility
I'd like to eliminate. I notice you're changing the SourceObject of
your subform. It seems to me that I've had issues with Name Autocorrect
when changing SourceObjects. Now, if you're like me you habitually turn
that option off on your own systems, but since this problem you're
reporting is turning up on some installations and not others, could it
be simply that some installations don't have the option turned off and
it's messing things up?
 
Dirk:

After further testing, it turns out that the bug does exist with Access 2002
on Windows 2000. So, it is definitely a Access 2002 bug. It does not occur
in Access 2000.

I have determined that the LinkChildFields and LinkMasterFields are
definitely being assigned as expected. But the subform is not being
requeried. Still, it is strange...I moved to step 5 and then back to
4....and then it worked! The code for Back is essentially the same as for
Next.

So, I figured out a temporary work around. Not the best work-around for my
customers, but it will have to do until I come up with a better one. Hope
Microsoft fixes this.

I hadn't thought about the Name Autocorrect...but it IS turned off on my
system. So, that isn't the problem.

Thanks for the suggestions.
 
This bug exists in Access 2003 as well. I have implemented a work-around in
code, but I hate using kludges.
 
Paul Overway said:
This bug exists in Access 2003 as well. I have implemented a
work-around in code, but I hate using kludges.

I don't blame you, and I don't see offhand what could be wrong.
Unfortunately, the demands of earning a living have kept me from a
thorough study of the problem. Would you be interested in sending me a
cut-down copy of the database to look at? If so, you'll have to
de-antispam my e-mail address. I have a dial-up connection, so I'd
rather not receive a file larger than 1MB or so.
 
Paul Overway said:
Dirk:

Thanks for the offer...I've already got Microsoft looking at it.

Let's hope they find an explanation and have a fix forthcoming. I'd
appreciate it if you'd post back with the outcome.
 
Back
Top