Access 2000 to Access 2003 conversion

B

bignerd

We unfortunately were given a laptop this year to run an application
that I wrote for MS Access 2000 (my first access app), so I ran Tools:
Converter on it.

Configuration
1. The app is running on a Windows XP Pro machine
2. The office 2003 has all the latest service packs - I've verified the
Jet, MDAC and Access 2003 SPs are the latest.
3. The crash happens when I navigate from a multi-record "launch page"
(you double click a record) to a master detail form that shows the
details for that current record.
4. The program uses all DAO code as I was under the impression that DAO
was what the forms and reports used internally anyway, and the MS VBA
2000 book I had did not mention anything about ADO.
5. The application has about 30 forms, 5 reports, 20 tables, 2 modules,
and about 60 queries.

When it runs now, it experiences a number of problems:
1. It constantly shuts down and displays a [Send Error Report] dialog.
The event id in the event log is 1000.
2. On startup it gives a security violation - the help says I can set
it to low and it wil run fine. I don't have any resources on access
2003 (well, help), and figured I'd dive into this one AFTER #1 was
addressed. I didn't remember putting any macros in the code as I was
writing it all in VBA.

Is there soomething I can do - step-by-step, to resolve this? I really
can't "go back" to the 2000 version as I've been trying to implement
fixes in this new release due to requirements that are changing and
this is the only hardware I have to run it on at this point.
 
A

Allen Browne

Hi bignerd

To avoid the security warning in A2003, change the setting under:
Tools | Macro | Security
If you don't see that option, reset the menu. Right-click on the space to
the right of the toolbar, and choose Customize. On the Toolbars tab, select
the Menu Bar, and click Reset.

The crash sounds like the new bug in A2002 and 2003 where they crash on a
form that has a subform. To cut a long story short, you need to add a text
box to the subform for the field(s) named in the LinkChildFields property of
the subform. More info:
http://allenbrowne.com/ser-48.html
It's #2 in the Usability section of the article.
 
A

Andy G

How can I make changes when it crashes before I can do anything? Will this
bug be fixed or is it not a bug anymore? Just wondering b/c this is
effecting a lot of applications we suport!

Thanks
Andy

Allen Browne said:
Hi bignerd

To avoid the security warning in A2003, change the setting under:
Tools | Macro | Security
If you don't see that option, reset the menu. Right-click on the space to
the right of the toolbar, and choose Customize. On the Toolbars tab,
select the Menu Bar, and click Reset.

The crash sounds like the new bug in A2002 and 2003 where they crash on a
form that has a subform. To cut a long story short, you need to add a text
box to the subform for the field(s) named in the LinkChildFields property
of the subform. More info:
http://allenbrowne.com/ser-48.html
It's #2 in the Usability section of the article.

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

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

bignerd said:
We unfortunately were given a laptop this year to run an application
that I wrote for MS Access 2000 (my first access app), so I ran Tools:
Converter on it.

Configuration
1. The app is running on a Windows XP Pro machine
2. The office 2003 has all the latest service packs - I've verified the
Jet, MDAC and Access 2003 SPs are the latest.
3. The crash happens when I navigate from a multi-record "launch page"
(you double click a record) to a master detail form that shows the
details for that current record.
4. The program uses all DAO code as I was under the impression that DAO
was what the forms and reports used internally anyway, and the MS VBA
2000 book I had did not mention anything about ADO.
5. The application has about 30 forms, 5 reports, 20 tables, 2 modules,
and about 60 queries.

When it runs now, it experiences a number of problems:
1. It constantly shuts down and displays a [Send Error Report] dialog.
The event id in the event log is 1000.
2. On startup it gives a security violation - the help says I can set
it to low and it wil run fine. I don't have any resources on access
2003 (well, help), and figured I'd dive into this one AFTER #1 was
addressed. I didn't remember putting any macros in the code as I was
writing it all in VBA.

Is there soomething I can do - step-by-step, to resolve this? I really
can't "go back" to the 2000 version as I've been trying to implement
fixes in this new release due to requirements that are changing and
this is the only hardware I have to run it on at this point.
 
A

Allen Browne

If you believe it is the AccessField bug (where you have a field, not
acontrol named in LinkChildFields), you can open the subform in design view
and add a control for the field(s) named in the subform control's
LinkChildFields. Save. Close. Open the main form, Remove the LinkChildFields
and LinkMasterFields properties. Save. Close. Compact. Open the main form
again, and set the 2 properties again, so Access now knows these are
controls.

Make sure Name AutoCorrect is off before you do that. You don't want Access
remembering what things used to be.

Microsoft is not interested in fixing a bug unless a lot of people complain
about it. If you are able to demonstrate that this is the bug biting you, I
suggest you contact them and complain loudly. I have personally spent weeks
in explaining bugs to them and generating 100% reproducable scenarios to
show them some really basic bugs, but they are not interested in fixing them
unless there is a big business impact. So all I can do is notify users that
Access is unreliable in the following cases:
http://allenbrowne.com/tips.html#flaws

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

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

Andy G said:
How can I make changes when it crashes before I can do anything? Will
this bug be fixed or is it not a bug anymore? Just wondering b/c this is
effecting a lot of applications we suport!

Thanks
Andy

Allen Browne said:
Hi bignerd

To avoid the security warning in A2003, change the setting under:
Tools | Macro | Security
If you don't see that option, reset the menu. Right-click on the space to
the right of the toolbar, and choose Customize. On the Toolbars tab,
select the Menu Bar, and click Reset.

The crash sounds like the new bug in A2002 and 2003 where they crash on a
form that has a subform. To cut a long story short, you need to add a
text box to the subform for the field(s) named in the LinkChildFields
property of the subform. More info:
http://allenbrowne.com/ser-48.html
It's #2 in the Usability section of the article.

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

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

bignerd said:
We unfortunately were given a laptop this year to run an application
that I wrote for MS Access 2000 (my first access app), so I ran Tools:
Converter on it.

Configuration
1. The app is running on a Windows XP Pro machine
2. The office 2003 has all the latest service packs - I've verified the
Jet, MDAC and Access 2003 SPs are the latest.
3. The crash happens when I navigate from a multi-record "launch page"
(you double click a record) to a master detail form that shows the
details for that current record.
4. The program uses all DAO code as I was under the impression that DAO
was what the forms and reports used internally anyway, and the MS VBA
2000 book I had did not mention anything about ADO.
5. The application has about 30 forms, 5 reports, 20 tables, 2 modules,
and about 60 queries.

When it runs now, it experiences a number of problems:
1. It constantly shuts down and displays a [Send Error Report] dialog.
The event id in the event log is 1000.
2. On startup it gives a security violation - the help says I can set
it to low and it wil run fine. I don't have any resources on access
2003 (well, help), and figured I'd dive into this one AFTER #1 was
addressed. I didn't remember putting any macros in the code as I was
writing it all in VBA.

Is there soomething I can do - step-by-step, to resolve this? I really
can't "go back" to the 2000 version as I've been trying to implement
fixes in this new release due to requirements that are changing and
this is the only hardware I have to run it on at this point.
 
B

bignerd

Sorry for taking so long to respond. I tried it on the form that
crashed the most. Both the Link Child Fields for the subform were part
of combo boxes rather than text boxes. I really don't need them
displayed at all, so I removed them, recreated them as text boxes and
then set visible to No. I'm hoping all goes well.
Thanks for the tips!
 
B

bignerd

Allen...

In regards to the security option, currently it is set to Medium and I
am prompted when I start the application. However, I'm hesitent to set
it at low. Can I "sign" my app or do something so that I don't have to
change the security settings? Does this apply for ALL MDBs that I'd
open? I just don't want to have any problems with this.

Thanks
 
A

Allen Browne

Hmm. If you already had combo boxes in the subform for the items named in
LinkChildFields, then replacing them with text boxes won't solve the
problem.

If I understand the issue correctly, the problem is with the way Access
handles objects of type AccessField. If you have controls of any kind, then
Access will recognise the LinkChildFields references are referring to the
controls, and the bug with the AccessField type will not be part of the
equation.
 
A

Allen Browne

Yes, you can purchase a certificate and pay annual fees if you have a
company (not as an individual).

It's not a great solution though. The user still gets the message every time
they open the database. And you have to resign the application any time you
make a change to any code, action query, etc. And there is also the issues
with Sandbox mode.

Setting it to low yields exactly the same results as all previous versions
of Access. Unless you are accepting databases from unknown people who could
have malicious intentions, this whole macro security thing is a non-issue
that MS is trying to pretend to be doing somehthing useful about. It's about
as useful as forcing people who wear seatbelts on bicycles.
 
B

bignerd

The application flow is:
1. switchboard menu - user selects a form to show teachers who are
absent awaiting a substitute assignment
2. in open absence review screen, the user can double click a row to
launch the assignment fulfillment screen
3. The assignment fulfillment screen shows the absence at the top, and
then available substitutes in a grid in the center. This subform has
an additional subform, and both of these are in "datasheet" mode. The
query that displays records for this form is a multi table join. The
options from the form form are [assign] , [log a call], [close], and
[switch view].

The most "peculiar" feature coded in the form is a "flag column". Not
really knowing access at the time, I wrote dlookup macro for the flag
to return whether or not the "available sub" had been called (the call
being in a call log table for the absence record). IF this "flag" is
set, then the record is to be highlighted so the operator does not call
the same substitute twice.

The expression for that "flag" is:
=Nz(DLookUp("[AbsenceId]","Absence_Call_Log","[AbsenceId]=" &
[Forms]![Fill Absences]!AbsenceID & " AND [SubstituteID]=" &
[Forms]![Fill Absences]!Available_Substitutes.Form!SubstituteID),0)

I was thinking I would remove this dlookup and add a subquery as a
SELECT clause column and see if that helps. I know in Oracle you would
not be able to use two tables to outer join to a single table
(assignments and subs to the call log table). However, I could
probably create intermediate queries and handle this problem.

The query gets kind of complex because it has to:
show subs who
1. are willing to work at this school
2. are certified in the subject, or willing to work in the subject, or
simply a sub
3. will work a full day if it's a full day absence and will work half
days if it is an AM or PM absence
4. Is not already assigned for this day for any non-canceled assignment
5. IS willing to work for the period of all days the teacher absence
entails, factoring out weekends and any holiday dates
6. prioritizing the order of selection by:
a) committed subs for this specific school
b) subs in the "committed" program for the district
c) substitute type (professional, guest, retired)
d) certified/willing status
e) last, first

oops, who has not declined an assignment for this specific day (only
applying to single day absences)

Anyway, I do appreciate all your advice.

Oh, do you recommend any good books on Access 2003? Right now I have
three MS access 2000 books, 2 of which I've never cracked but wanted to
- you know, deadlines, anyway:
Beginning Access 2000 VBA - Wrox
Sybex Access 2000 developer handbook: volume 1
Sybex Access 2000 vba
 
A

Allen Browne

Okay, eric/andy/bignerd/whoever.

There's a fair bit of complexity on this form, which makes it difficult to
trace the source of the crash. You will probably have to split it down into
smaller components to discover which part is causing Access to GPF. If you
have a 100% repro crash, that's fairly easy: just half the complexity and
halve it again, and again, until you pinpoint the issue. If you have an
intermittent crash, that's still the approach, but it's much more time
consuming.

You're talking about subqueries: if you already have any, they are one of
the things that cause Access to crash. I'm *certainly* not suggesting not to
use them: when they crash, they are pretty consistent, but all versions of
JET have problems with certain subqueries.

There's another problem with Default Values in the fields of the tables that
are part of a query that are part of a form's RecordSource. If the problem
occurs on adding a new record, you might want to remove any Default Values.
There's another issue with grouping by yes/no fields that are on the outer
side of a join, because JET can't cope with the Null you get in the yes/no
field; the workaround is GROUP BY Nz([MyYesNoField], False)

DLookup() is way slower than a subquery, but has the advantage that it does
not make the recordset read-only.

The Developer's Handbook by Ken Getz et al is as good as you are going to
get.

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

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

bignerd said:
The application flow is:
1. switchboard menu - user selects a form to show teachers who are
absent awaiting a substitute assignment
2. in open absence review screen, the user can double click a row to
launch the assignment fulfillment screen
3. The assignment fulfillment screen shows the absence at the top, and
then available substitutes in a grid in the center. This subform has
an additional subform, and both of these are in "datasheet" mode. The
query that displays records for this form is a multi table join. The
options from the form form are [assign] , [log a call], [close], and
[switch view].

The most "peculiar" feature coded in the form is a "flag column". Not
really knowing access at the time, I wrote dlookup macro for the flag
to return whether or not the "available sub" had been called (the call
being in a call log table for the absence record). IF this "flag" is
set, then the record is to be highlighted so the operator does not call
the same substitute twice.

The expression for that "flag" is:
=Nz(DLookUp("[AbsenceId]","Absence_Call_Log","[AbsenceId]=" &
[Forms]![Fill Absences]!AbsenceID & " AND [SubstituteID]=" &
[Forms]![Fill Absences]!Available_Substitutes.Form!SubstituteID),0)

I was thinking I would remove this dlookup and add a subquery as a
SELECT clause column and see if that helps. I know in Oracle you would
not be able to use two tables to outer join to a single table
(assignments and subs to the call log table). However, I could
probably create intermediate queries and handle this problem.

The query gets kind of complex because it has to:
show subs who
1. are willing to work at this school
2. are certified in the subject, or willing to work in the subject, or
simply a sub
3. will work a full day if it's a full day absence and will work half
days if it is an AM or PM absence
4. Is not already assigned for this day for any non-canceled assignment
5. IS willing to work for the period of all days the teacher absence
entails, factoring out weekends and any holiday dates
6. prioritizing the order of selection by:
a) committed subs for this specific school
b) subs in the "committed" program for the district
c) substitute type (professional, guest, retired)
d) certified/willing status
e) last, first

oops, who has not declined an assignment for this specific day (only
applying to single day absences)

Anyway, I do appreciate all your advice.

Oh, do you recommend any good books on Access 2003? Right now I have
three MS access 2000 books, 2 of which I've never cracked but wanted to
- you know, deadlines, anyway:
Beginning Access 2000 VBA - Wrox
Sybex Access 2000 developer handbook: volume 1
Sybex Access 2000 vba
 
B

bignerd

I changed the query to include a subquery in the select clause for the
flag and it did not make a difference. I noted something else that is
a "little" strange, but I'm not sure it's an issue:
Two fields at the top are filled in during a form_current event - it
looks up the AM, PM start times and the end time for each school for
display. I changed those fields as well to read the values from a
query - the top of the form is based on a query.

No dice -
IF I double click the launch and go in and out of 3-5 records, it gives
me the dreaded "send error report" message.

ARGH!
 
B

bignerd

here are the queried:
1. top of fill absence form - open absences:

SELECT [Staff_Absences].[AbsenceID], [Staff_Absences].[TeacherID],
[Staff_Absences].[Start_Date], [Staff_Absences].[End_Date],
[Staff_Absences].[Absence_Type], [Staff_Absences].[ReasonID],
[Staff_Absences].[Special_Comments], [Staff_Absences].[Void],
[Staff_Absences].[No_Sub_Required], [Staff_Absences].[No_Sub_Found],
[Staff_Absences].[SchoolID], [Staff].[StaffTypeId],
[Staff].[SpecialtyID], [Staff].[Grade], [Staff].[Subject],
[School_Type].[SchoolFilterType], [Specialties].[Specialty],
IIf([Staff_Absences].[Absence_Type]="PM", Schools.[Start_Time_PM],
Schools.[Start_Time]) AS Assignment_StartTime,
IIf([Staff_Absences].[Absence_Type] = "AM", Schools.[Start_Time_PM],
Schools.[End_Time]) AS Assignment_EndTime
FROM (Staff INNER JOIN Specialties ON
[Staff].[SpecialtyID]=[Specialties].[SpecialtyID]) INNER JOIN
(School_Type INNER JOIN (Staff_Absences INNER JOIN Schools ON
[Staff_Absences].[SchoolID]=[Schools].[School ID]) ON
[School_Type].[ID]=[Schools].[School Type ID]) ON
[Staff].[TeacherID]=[Staff_Absences].[TeacherID]
WHERE Staff_Absences.Void<>Yes AND Staff_Absences.No_Sub_Required
<>Yes AND Staff_Absences.No_Sub_Found <> Yes
AND not exists (Select * from Assignments
Where Assignments.[Absense ID] = [Staff_Absences].[AbsenceID]
AND STATUS <> 'CANCELED' )
ORDER BY [staff_absences].[absenceid];


2. available substitutes - base line query (the form's query uses
this):
These are which subs will work at which schools, and their specialties.

SELECT Substitutes.[First Name], Substitutes.[Last Name],
Substitutes.Email, Substitutes.Phone, Substitutes.Certification,
Substitutes.Restrictions, Substitutes.Notes, Substitutes.SubType,
Substitutes.[Half Days] AS HalfDays, IIf(Substitutes.Committed,1,2) AS
Committed_Flag, Substitute_Types.StaffTypeId,
IIf(Substitutes.Retired='Y',99,Substitute_Types.order_by) AS Order_By,
IIf(Substitutes.Retired='Y','Retired/','') &
IIf(Substitutes.Committed,'Committed/ ','') &
IIf(Substitutes.Certification_Inactive,'Nonactive ','') &
Substitute_Types.SubTypeDesc AS SubTypeDesc,
Substitute_School_Preferences.[School ID],
Substitute_School_Preferences.SubstituteID,
IIf(Substitute_School_Preferences.Status='ELEMCOMMITTED',1,2) AS
Elementary_Committed_Flag,
Substitute_Specialties_XREF.Certified_Or_Willing,
Substitute_Specialties_XREF.SpecialtyID, Specialties.Specialty,
Substitutes.Inactive
FROM Substitute_Types INNER JOIN ((Substitutes INNER JOIN ((School_Type
INNER JOIN Schools ON School_Type.ID = Schools.[School Type ID]) INNER
JOIN Substitute_School_Preferences ON Schools.[School ID] =
Substitute_School_Preferences.[School ID]) ON Substitutes.SUBID =
Substitute_School_Preferences.SubstituteID) INNER JOIN (Specialties
INNER JOIN Substitute_Specialties_XREF ON Specialties.SpecialtyID =
Substitute_Specialties_XREF.SpecialtyID) ON Substitutes.SUBID =
Substitute_Specialties_XREF.SubstituteID) ON Substitute_Types.SubTypeID
= Substitutes.SubType
WHERE (((Substitutes.Inactive)<>Yes) AND
((Substitute_School_Preferences.Status) In
('ACTIVE','ELEMCOMMITTED')));

3. The available subs form uses this query to filter the subs even
further.
This is the "easier query" (w/o the must work the days of the absence
in full minus holidays)

SELECT qrySubs_To_Fill_Absence_Specialty.[First Name],
qrySubs_To_Fill_Absence_Specialty.[Last Name],
qrySubs_To_Fill_Absence_Specialty.Email,
qrySubs_To_Fill_Absence_Specialty.Phone,
qrySubs_To_Fill_Absence_Specialty.Specialty,
qrySubs_To_Fill_Absence_Specialty.HalfDays,
qrySubs_To_Fill_Absence_Specialty.Certified_Or_Willing,
qrySubs_To_Fill_Absence_Specialty.Restrictions,
qrySubs_To_Fill_Absence_Specialty.Notes,
qrySubs_To_Fill_Absence_Specialty.SubTypeDesc,
qrySubs_To_Fill_Absence_Specialty.SubType,
qrySubs_To_Fill_Absence_Specialty.Order_By,
qrySubs_To_Fill_Absence_Specialty.[School ID],
qrySubs_To_Fill_Absence_Specialty.SubstituteID,
IIf([qrySubs_To_Fill_Absence_Specialty].[Specialty]=[Forms]![Fill
Absences].[Specialty],1,2) AS Sort_Ord1, IIf(Exists (Select * From
Absence_Call_Log Where Absence_Call_Log.[AbsenceId]=[Forms]![Fill
Absences]!AbsenceID AND Absence_Call_Log.[SubstituteID]=
qrySubs_To_Fill_Absence_Specialty.SubstituteID),1,0) AS Sub_Call_Flag
FROM qrySubs_To_Fill_Absence_Specialty
WHERE (((Exists (SELECT * From Assignments Where
Assignments.SubstituteID =
qrySubs_To_Fill_Absence_Specialty.SubstituteID AND
Assignments.StartDate <= Forms![Fill Absences].[End_Date] AND
Assignments.EndDate >= Forms![Fill Absences].[Start_Date] and
Assignments.Status <> "CANCELED" ))=False) AND
((qrySubs_To_Fill_Absence_Specialty.StaffTypeId)=[Forms]![Fill
Absences].[StaffTypeId]))
ORDER BY
IIf([qrySubs_To_Fill_Absence_Specialty].[Specialty]=[Forms]![Fill
Absences].[Specialty],1,2),
qrySubs_To_Fill_Absence_Specialty.Specialty,
qrySubs_To_Fill_Absence_Specialty.Elementary_Committed_Flag,
qrySubs_To_Fill_Absence_Specialty.Committed_Flag,
qrySubs_To_Fill_Absence_Specialty.Order_By,
qrySubs_To_Fill_Absence_Specialty.Certified_Or_Willing,
qrySubs_To_Fill_Absence_Specialty.[Last Name],
qrySubs_To_Fill_Absence_Specialty.[First Name];


Would I attack this by simply removing the "available subs" subform and
seeing if I can just launch the fill absence from the open absence
review screen? The only difference in these screens is that the one
just allows you to "find a row to work on". That rows pk, the absence#
is passed to the fill absence screen, and it just shows this query -
with a lot more detail columns.

Eric Givler - Access User
I'm not the Andy account. My account is "bignerd" < eric at
givlerville dot com >

Thanks again, and again.
 
B

bignerd

I commented out the following lines of code and the form did not crash
after cycling through the 13 opens absences. The code conditionally
highlights the records based on if they have been called.

I found this on an MS site somewhere, but the idea was that you would
apply the font change / conditional formatting to one field, then
invoke this and it would copy it to the other fields. I noted that if
at runtime, I tried to change the conditonal formatting of other
fields, it did not seem to effect the row - unsure why - do I need to
close and re-enter the form (assuming it was taking that runtime
change)?

Anyway, here are the two code snippets:

available subs (subform of fill absence):

Private Sub Form_Load()
Dim FormatsAdded As Integer
FormatsAdded = AddFormats(Me![First Name], Me)
End Sub

the code behind this...

Option Compare Database

Option Explicit

Function AddFormats(ctlSource As Control, frm As Form) As Integer

Dim ctl As Control
Dim fcdSource As FormatCondition
Dim fcdDestination As FormatCondition
Dim varOperator As Variant
Dim varType As Variant
Dim varExpression1 As Variant
Dim varExpression2 As Variant
Dim intConditionCount As Integer
Dim intCount As Integer

intConditionCount = ctlSource.FormatConditions.Count

For Each ctl In frm.Controls
If ctl.Name = ctlSource.Name Then
' This is the source. Don't apply formatting.
ElseIf ctl.ControlType = acTextBox Or ctl.ControlType =
acComboBox Then
intCount = 0

' Bulk remove all current FormatConditions
ctl.FormatConditions.Delete

Do Until intCount = intConditionCount
Set fcdSource =
ctlSource.FormatConditions.Item(intCount)

varOperator = fcdSource.Operator
varType = fcdSource.Type
varExpression1 = fcdSource.Expression1
varExpression2 = fcdSource.Expression2

' Add the FormatCondition
ctl.FormatConditions.Add varType, varOperator,
varExpression1, varExpression2

' Reference the FormatCondition to apply formatting.
' Note: The FormatCondition cannot be referenced
' in this manner until it exists.
Set fcdDestination =
ctl.FormatConditions.Item(intCount)

With fcdDestination
.BackColor = fcdSource.BackColor
.FontBold = fcdSource.FontBold
.FontItalic = fcdSource.FontItalic
.FontUnderline = fcdSource.FontUnderline
.ForeColor = fcdSource.ForeColor
End With

' Move to the next FormatCondition
intCount = intCount + 1

Loop
End If
Next ctl

' Cleanup
AddFormats = intConditionCount
' MsgBox "There were " & AddFormats & " Conditional Format(s)
applied to all text and combo boxes except the source."
Set ctl = Nothing
Set fcdSource = Nothing
Set fcdDestination = Nothing
Set varOperator = Nothing
Set varType = Nothing
Set varExpression1 = Nothing
Set varExpression2 = Nothing
intConditionCount = 0
intCount = 0

End Function


*** I did not set a breakpoint on this code and attempt to step it/run
it on each invokation.
I'll try that later. If I don't call this code, the only field that is
highlighted is the subs "first name" field.
 
A

Allen Browne

Any code that dirties the record in Form_Current is always suspect. That's
highly undesirable.

You're on the track of narrowing down which parts are causing the crash, so
I will have to leave it with you from here.

All the best
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top