The new version is MUCH better ! No errors at all !

But could you make it have an option for how many spaces to put for indent ?
Because 10 spaces is WAY too much for me, I like 4 spaces...

To give you an idea, this:
Code:
SELECT DISTINCT MFrom AS "From Model", MWith AS "To Model" FROM
(
SELECT DISTINCT MFrom, TRIM(IIF(MWith LIKE 'abc5%', MID(MWith, 5, 100), MWith)) AS MWith FROM
(
SELECT MFrom, IIF(INSTR(MWith, '(') = 0, MWith, LEFT(MWith, INSTR(MWith, '(')-1)) AS MWith FROM
(
SELECT DISTINCT MFrom, MWith FROM
(
SELECT MFrom, TRIM(IIF(Num3 = 0, MWith, LEFT(MWith, Num3 - 1))) AS MWith FROM
(
SELECT MFrom, MWith, IIF(Num3 = 0, Num2, Num3) AS Num3 FROM
(
SELECT MFrom, MWith, IIF(Num2 = 0, Num1, Num2) AS Num2, IIF(Num2 = 0, 0, INSTR(Num2 + 1, MWith, '-')) AS Num3
FROM
(
SELECT MFrom, MWith, Num1, IIF(Num1 = 0, 0, INSTR(Num1 + 1, MWith, '-')) AS Num2 FROM
(
SELECT MFrom, MWith, INSTR(MWith, '-') AS Num1 FROM
(
SELECT LEFT(m_ofl.Notes, INSTR(m_ofl.Notes, '|') - 1) AS MFrom
, IIF(INSTR(repl.Notes, ',') > 0, LEFT(repl.Notes, INSTR(repl.Notes, ',')-1), repl.Notes) AS MWith

FROM tblInvoice AS repl INNER JOIN
(
SELECT OrderNumber, Notes FROM tblInvoice
WHERE StatusCode = 4
AND INSTR(Notes, '|') > 0
) AS m_ofl ON m_ofl.OrderNumber = repl.OrderNumber

WHERE repl.RecordIDType = 'STAT'
AND repl.StatusCode = 7
AND repl.Notes NOT LIKE '%abc%'
AND repl.Notes NOT LIKE '%abc2%'
AND repl.Notes NOT LIKE '%abc3%'
AND ShipDate > #Apr 01, 2004#
))))))
WHERE LEN(MWith) > 1
)
WHERE INSTR(MWith, MFrom) = 0
))
ORDER BY MFrom, MWith
You get:
Code:
SELECT    DISTINCT MFrom AS "From Model",
          MWith AS "To Model"
FROM      (
                    SELECT    DISTINCT MFrom,
                              TRIM ( IIF ( MWith LIKE 'abc5%', MID ( MWith, 5, 100 ), MWith ) ) AS MWith
                    FROM      (
                                        SELECT    MFrom,
                                                  IIF ( INSTR ( MWith, '(' ) = 0, MWith, LEFT ( MWith, INSTR ( MWith, '(' ) - 1 ) ) AS MWith
                                        FROM      (
                                                            SELECT    DISTINCT MFrom,
                                                                      MWith
                                                            FROM      (
                                                                                SELECT    MFrom,
                                                                                          TRIM ( IIF ( Num3 = 0, MWith, LEFT ( MWith, Num3 - 1 ) ) ) AS MWith
                                                                                FROM      (
                                                                                                    SELECT    MFrom,
                                                                                                              MWith,
                                                                                                              IIF ( Num3 = 0, Num2, Num3 ) AS Num3
                                                                                                    FROM      (
                                                                                                                        SELECT    MFrom,
                                                                                                                                  MWith,
                                                                                                                                  IIF ( Num2 = 0, Num1, Num2 ) AS Num2,
                                                                                                                                  IIF ( Num2 = 0, 0, INSTR ( Num2 + 1, MWith, '-' ) ) AS Num3
                                                                                                                        FROM      (
                                                                                                                                            SELECT    MFrom,
                                                                                                                                                      MWith,
                                                                                                                                                      Num1,
                                                                                                                                                      IIF ( Num1 = 0, 0, INSTR ( Num1 + 1, MWith, '-' ) ) AS Num2
                                                                                                                                            FROM      (
                                                                                                                                                                SELECT    MFrom,
                                                                                                                                                                          MWith,
                                                                                                                                                                          INSTR ( MWith, '-' ) AS Num1
                                                                                                                                                                FROM      (
                                                                                                                                                                                    SELECT    LEFT ( m_ofl.Notes, INSTR ( m_ofl.Notes, '|' ) - 1 ) AS MFrom,
                                                                                                                                                                                              IIF ( INSTR ( repl.Notes, ',' ) > 0, LEFT ( repl.Notes, INSTR ( repl.Notes, ',' ) - 1 ), repl.Notes ) AS MWith
                                                                                                                                                                                    FROM      tblInvoice AS repl
                                                                                                                                                                                              INNER JOIN (
                                                                                                                                                                                                        SELECT    OrderNumber,
                                                                                                                                                                                                                  Notes
                                                                                                                                                                                                        FROM      tblInvoice
                                                                                                                                                                                                        WHERE     StatusCode = 4
                                                                                                                                                                                                                  AND INSTR ( Notes, '|' ) > 0
                                                                                                                                                                                              ) AS m_ofl ON m_ofl.OrderNumber = repl.OrderNumber
                                                                                                                                                                                    WHERE     repl.RecordIDType = 'STAT'
                                                                                                                                                                                              AND repl.StatusCode = 7
                                                                                                                                                                                              AND repl.Notes NOT LIKE '%abc%'
                                                                                                                                                                                              AND repl.Notes NOT LIKE '%abc2%'
                                                                                                                                                                                              AND repl.Notes NOT LIKE '%abc3%'
                                                                                                                                                                                              AND
(I could not paste all the code, too many characters)
Wich is way to much indenting for me....

Also, where whould I have to change your code to make it act as if {} brackets are like a string ? I don't want your formatter to make any changes between the {} brackets, so how do I do that ?