Dawn,
The only thing I see that I would try differently is do not RETURN out of the IF statement. I normally put a GOTO (EndLabel) in my routines so I can clear variables and do other house keeping before RETURN. I also would not do a CLEAR ALL VAR as you might be clearing something that is needed! You might give the following a try....
> >>>>>IF vnum1 = .vnum2 THEN
> DROP tcolcheck
GoTo EndLabel
> ELSE
...... other lines
EndIf
Label EndLabel
Clear Var (list your variables from this EEP distinctly)
RETURN
Hope this helps!
-Bob
-------------- Original message --------------
> I have a form that runs fine either in ENTER or EDIT mode from the
> database explorer or the R>. When calling the form from a group bar
> menu in another form using ENTER using formname, it's fine also.
> However, when I run it using EDIT USING formname, I get an access
> violation every time I close the form. I've narrowed it down to the ON
> CLOSE EEP (see below). If I take out the IF vnum1 = .vnum2 THEN section
> up through the ELSE, I don't get the access violation. (I've also tried
> IF vnum1 <> .vnum2 and reversing the logic - it didn't help). Here's
> the eep, the offending section is preceded by >>>>>, any help would be
> appreciated.
>
> DELETE ROWS FROM colorformulas WHERE pigment IS NULL AND pigorder IS
> NULL
> DROP tcolcheck
> CREATE TEMP TABLE tcolcheck (tnumcol TEXT 12, tformula TEXT 200)
> (I then SET all variables used in cursors to TEXT = NULL)
> DECLARE cnumcol CURSOR FOR SELECT DISTINCT numcol FROM colornumbers
> ORDER BY numcol
> OPEN cnumcol
> FETCH cnumcol INTO vnumcol
> WHILE SQLCODE <> 100 THEN
> DECLARE c1 CURSOR FOR SELECT numcol, formline FROM formulaview WHERE
> numcol = .vnumcol
> OPEN c1
> FETCH c1 INTO vanumcol, vformline
> WHILE SQLCODE <> 100 THEN
> SET VAR vaformline = (.vaformline & .vformline)
> FETCH c1 INTO vanumcol, vformline
> ENDWHILE
> DROP CURSOR c1
> INSERT INTO tcolcheck tnumcol, tformula VALUES .vnumcol, .vaformline
> SET VAR vaformline = NULL
> FETCH cnumcol INTO vnumcol
> ENDWHILE
> DROP CURSOR cnumcol
> SELECT COUNT(tnumcol) INTO vnumcount FROM tcolcheck t1, tcolcheck t2
> WHERE t1.tnumcol <> t2.tnumcol AND t1.tformula=t2.tformula
> SET VAR vnum1 TEXT = '1'
> SET VAR vnum2 TEXT = '1'
> IF vnumcount > 1 THEN
> SELECT tnumcol INTO vnum1 FROM tcolcheck t1, tcolcheck t2 WHERE
> t1.tnumcol <> t2.tnumcol AND t1.tformula = t2.tformula AND COUNT = 1
> SELECT tnumcol INTO vnum2 FROM tcolcheck t1, tcolcheck t2 WHERE
> t1.tnumcol <> t2.tnumcol AND t1.tformula = t2.tformula AND COUNT = 2
> ENDIF
>
> >>>>>IF vnum1 = .vnum2 THEN
> DROP tcolcheck
> CLEAR ALL VAR
> RETURN
> ELSE
>
> >>>>this section by itself, without the if,then, else works fine. But I
> need the IF, then else!
>
> SET VAR vmsg = (.vnum2 & 'has the same formula as' & .vnum1 +
> (CHAR(013)) + 'It will be deleted')
> PAUSE 2 USING .vmsg CAPTION ERROR icon attention
> DELETE ROWS FROM colornumbers WHERE numcol = .vnum2
> DELETE ROWS FROM colorformulas WHERE numcol = .vnum2
> ENDIF
> DROP tcolcheck
> CLEAR ALL VAR
> RETURN
>
