I did not note / notice any 'block' of declarations ("Dim
SomeVar As
ThisType"

, only individual declarations immediatly above their first use. While this is not my usual practice, I thought I had followed your convention and (again thinking <> doing) placed the line:
[tab]Dim Idx as Integer
Immediatly above the line you cite in the above post.
While on other matters (yesterday) the concept of what you are attempting to accomplish finally wriggled past my mental defense mechanisim(s) and I realized that both you original code and my change are probably NOT accomplishing what you 'said':
"
if a group of the numbers are not the same, such as A1, E50, or Q3, then Those three numbers appear with a note of where they were garnered so the person can go find their input error and then rerun the queries again, checking the matches. So all numbers are the same, else it displays said numbers"
This implies that EACH block should be seperatly evaluated and ALL groups of mis-mathed values should be displayed/checked /evaluated. Both your original structure (large number of ElseIf 'blocks' and my change to individual If blocks present one amd only one such mis-mstch. This, in turn, implies (requires) the user to re-run the procedure repeatedly until there are no more controls displayed. From other parts of your discussion and the overall structure of the procedures, this further implies that the form must be closed and re-opened until NO controls pop-up. Which is a bad thing! In my structure, you can make all error conditions apear at the same time by removong the last line in each of the individual If Blocke (the one which says "GoTo CondFnd" (in retrieving this I also noticed that I left off the GoTo in some of the blocks, so in every case {Block} you need to either rempove the line or fix it}.
With the number of possible groups of controls to be revealed it further seems likely that the approach / soloution uses a fairly small form and the various groups would overlap, so additional effort would be necessary to change the placement of the groups of controls to avoid the overlap.
More woes occur to me in that the process
seems like the logic is somewhat reversed. I would NOT display a "finished" button until all the relevant criteria were met. This would, in part, provide an alternative ("Cancel"?) button, to allow the user to exit gracefully which would ALWAYS be displayed, and enable the finished button ONLY when all of the criteria statements were satisfied. Additionally, it should be possible to have the criteria refreshed after any corrections are made to the 'source documents'.
Opening numerous reports to retrieve ONE value from each seems like it is more 'thrashing' (and time consuming) than should be necessary. Generally, reports include ONLY values directly from or based on values in the reports. The more common approach would be to get the value (or their elements) from the 'recordsource' {query}. not open the actual report.
While I obviously do not know the overall environment of this app, the above and a few other issues give me some concerns about the application and wheather it is doing what the business needs. I see numerous potential faults which could propigate incorrect information throughout the business unit, which -in turn- could provide generate bad decisions .
MichaelRed
m.red@att.net
Searching for employment in all the wrong places