Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations bkrike on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Help constructing a Permutation table using SQL 1

Status
Not open for further replies.

VickyC

Technical User
Sep 25, 2010
206
CA
hello

I have manually constructed table tblTemplates that has over 300 rows. I'd like to know if SQL could be used to generate this table automatically.
The table looks like this...

ID P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
1 Z1 Z2 Z3 Z4 Z5 C1 C2 C3 C4 C5
... etc ...
341 Z1 Z2 Z3 C2 Z4 C1 Z5 C4 C3 C5
... etc ...

ID is an autonumber field. The entries in fields P1 to P10 are the PERMUTATIONS WITHOUT REPEATS of the variables Z1 to Z5 and C1 to C5.

There are 3 rules that govern the order in which values may be selected.
a) Zn precedes Zn+1. Z1 comes before Z2 which comes before Z3...
This rule does NOT apply to the Cn values.

b) Zn must precede Cn

c) Zn cannot be immediately followed by Cn.

The rows shown in the table above comply with these rules. The following row is invalid - in fact it breaks all 3 rules.
(Z3 comes before Z2, C5 precedes Z5, C2 immediately follows Z2)

Z1 Z3 Z2 C2 Z4 C1 C5 C3 C4 Z5


Can this table (or a query would do) be built using SQL?

many thanks
Vicky
 
I cannot do it with a reasonable single query. They all are too complex or blow up. I can do it with a make table query, and then run a function on the make table query. i get 480 rows

Code:
P1	P2	P3	P4	P5	P6	P7	P8	P9	P10
Z1	Z2	C1	C2	C3	Z3	C5	Z4	Z5	C4
Z1	Z2	C1	C2	C3	Z3	Z4	C5	Z5	C4
Z1	Z2	C1	C2	C3	Z3	Z4	Z5	C4	C5
Z1	Z2	C1	C2	Z3	C4	C5	Z4	Z5	C3
Z1	Z2	C1	C2	Z3	C4	Z4	C5	Z5	C3
Z1	Z2	C1	C2	Z3	C4	Z4	Z5	C3	C5
Z1	Z2	C1	C2	Z3	Z4	C3	C5	Z5	C4
Z1	Z2	C1	C2	Z3	Z4	C3	Z5	C4	C5
Z1	Z2	C1	C2	Z3	Z4	C5	C3	Z5	C4
Z1	Z2	C1	C2	Z3	Z4	C5	C4	Z5	C3
Z1	Z2	C1	C2	Z3	Z4	C5	Z5	C3	C4
Z1	Z2	C1	C2	Z3	Z4	C5	Z5	C4	C3
Z1	Z2	C1	C2	Z3	Z4	Z5	C3	C4	C5
Z1	Z2	C1	C2	Z3	Z4	Z5	C3	C5	C4
Z1	Z2	C1	C2	Z3	Z4	Z5	C4	C3	C5
Z1	Z2	C1	C2	Z3	Z4	Z5	C4	C5	C3
Z1	Z2	C1	Z3	C2	C3	C5	Z4	Z5	C4
Z1	Z2	C1	Z3	C2	C3	Z4	C5	Z5	C4
Z1	Z2	C1	Z3	C2	C3	Z4	Z5	C4	C5
Z1	Z2	C1	Z3	C2	C4	C5	Z4	Z5	C3
Z1	Z2	C1	Z3	C2	C4	Z4	C5	Z5	C3
Z1	Z2	C1	Z3	C2	C4	Z4	Z5	C3	C5
Z1	Z2	C1	Z3	C2	Z4	C3	C5	Z5	C4
Z1	Z2	C1	Z3	C2	Z4	C3	Z5	C4	C5
Z1	Z2	C1	Z3	C2	Z4	C5	C3	Z5	C4
Z1	Z2	C1	Z3	C2	Z4	C5	C4	Z5	C3
Z1	Z2	C1	Z3	C2	Z4	C5	Z5	C3	C4
Z1	Z2	C1	Z3	C2	Z4	C5	Z5	C4	C3
Z1	Z2	C1	Z3	C2	Z4	Z5	C3	C4	C5
Z1	Z2	C1	Z3	C2	Z4	Z5	C3	C5	C4
Z1	Z2	C1	Z3	C2	Z4	Z5	C4	C3	C5
Z1	Z2	C1	Z3	C2	Z4	Z5	C4	C5	C3
Z1	Z2	C1	Z3	Z4	C2	C3	C5	Z5	C4
Z1	Z2	C1	Z3	Z4	C2	C3	Z5	C4	C5
Z1	Z2	C1	Z3	Z4	C2	C4	C5	Z5	C3
Z1	Z2	C1	Z3	Z4	C2	C4	Z5	C3	C5
Z1	Z2	C1	Z3	Z4	C2	C5	C3	Z5	C4
Z1	Z2	C1	Z3	Z4	C2	C5	C4	Z5	C3
Z1	Z2	C1	Z3	Z4	C2	C5	Z5	C3	C4
Z1	Z2	C1	Z3	Z4	C2	C5	Z5	C4	C3
Z1	Z2	C1	Z3	Z4	C2	Z5	C3	C4	C5
Z1	Z2	C1	Z3	Z4	C2	Z5	C3	C5	C4
Z1	Z2	C1	Z3	Z4	C2	Z5	C4	C3	C5
Z1	Z2	C1	Z3	Z4	C2	Z5	C4	C5	C3
Z1	Z2	C1	Z3	Z4	C3	C2	C5	Z5	C4
Z1	Z2	C1	Z3	Z4	C3	C2	Z5	C4	C5
Z1	Z2	C1	Z3	Z4	C3	C4	C5	Z5	C2
Z1	Z2	C1	Z3	Z4	C3	C4	Z5	C2	C5
Z1	Z2	C1	Z3	Z4	C3	C5	C2	Z5	C4
Z1	Z2	C1	Z3	Z4	C3	C5	C4	Z5	C2
Z1	Z2	C1	Z3	Z4	C3	C5	Z5	C2	C4
Z1	Z2	C1	Z3	Z4	C3	C5	Z5	C4	C2
Z1	Z2	C1	Z3	Z4	C3	Z5	C2	C4	C5
Z1	Z2	C1	Z3	Z4	C3	Z5	C2	C5	C4
Z1	Z2	C1	Z3	Z4	C3	Z5	C4	C2	C5
Z1	Z2	C1	Z3	Z4	C3	Z5	C4	C5	C2
Z1	Z2	C1	Z3	Z4	Z5	C2	C3	C4	C5
Z1	Z2	C1	Z3	Z4	Z5	C2	C3	C5	C4
Z1	Z2	C1	Z3	Z4	Z5	C2	C4	C3	C5
Z1	Z2	C1	Z3	Z4	Z5	C2	C4	C5	C3
Z1	Z2	C1	Z3	Z4	Z5	C2	C5	C3	C4
Z1	Z2	C1	Z3	Z4	Z5	C2	C5	C4	C3
Z1	Z2	C1	Z3	Z4	Z5	C3	C2	C4	C5
Z1	Z2	C1	Z3	Z4	Z5	C3	C2	C5	C4
Z1	Z2	C1	Z3	Z4	Z5	C3	C4	C2	C5
Z1	Z2	C1	Z3	Z4	Z5	C3	C4	C5	C2
Z1	Z2	C1	Z3	Z4	Z5	C3	C5	C2	C4
Z1	Z2	C1	Z3	Z4	Z5	C3	C5	C4	C2
Z1	Z2	C1	Z3	Z4	Z5	C4	C2	C3	C5
Z1	Z2	C1	Z3	Z4	Z5	C4	C2	C5	C3
Z1	Z2	C1	Z3	Z4	Z5	C4	C3	C2	C5
Z1	Z2	C1	Z3	Z4	Z5	C4	C3	C5	C2
Z1	Z2	C1	Z3	Z4	Z5	C4	C5	C2	C3
Z1	Z2	C1	Z3	Z4	Z5	C4	C5	C3	C2
Z1	Z2	Z3	C1	C2	C3	C5	Z4	Z5	C4
Z1	Z2	Z3	C1	C2	C3	Z4	C5	Z5	C4
Z1	Z2	Z3	C1	C2	C3	Z4	Z5	C4	C5
Z1	Z2	Z3	C1	C2	C4	C5	Z4	Z5	C3
Z1	Z2	Z3	C1	C2	C4	Z4	C5	Z5	C3
Z1	Z2	Z3	C1	C2	C4	Z4	Z5	C3	C5
Z1	Z2	Z3	C1	C2	Z4	C3	C5	Z5	C4
Z1	Z2	Z3	C1	C2	Z4	C3	Z5	C4	C5
Z1	Z2	Z3	C1	C2	Z4	C5	C3	Z5	C4
Z1	Z2	Z3	C1	C2	Z4	C5	C4	Z5	C3
Z1	Z2	Z3	C1	C2	Z4	C5	Z5	C3	C4
Z1	Z2	Z3	C1	C2	Z4	C5	Z5	C4	C3
Z1	Z2	Z3	C1	C2	Z4	Z5	C3	C4	C5
Z1	Z2	Z3	C1	C2	Z4	Z5	C3	C5	C4
Z1	Z2	Z3	C1	C2	Z4	Z5	C4	C3	C5
Z1	Z2	Z3	C1	C2	Z4	Z5	C4	C5	C3
Z1	Z2	Z3	C1	C3	C2	C5	Z4	Z5	C4
Z1	Z2	Z3	C1	C3	C2	Z4	C5	Z5	C4
Z1	Z2	Z3	C1	C3	C2	Z4	Z5	C4	C5
Z1	Z2	Z3	C1	C3	C4	C5	Z4	Z5	C2
Z1	Z2	Z3	C1	C3	C4	Z4	C5	Z5	C2
Z1	Z2	Z3	C1	C3	C4	Z4	Z5	C2	C5
Z1	Z2	Z3	C1	C3	Z4	C2	C5	Z5	C4
Z1	Z2	Z3	C1	C3	Z4	C2	Z5	C4	C5
Z1	Z2	Z3	C1	C3	Z4	C5	C2	Z5	C4
Z1	Z2	Z3	C1	C3	Z4	C5	C4	Z5	C2
Z1	Z2	Z3	C1	C3	Z4	C5	Z5	C2	C4
Z1	Z2	Z3	C1	C3	Z4	C5	Z5	C4	C2
Z1	Z2	Z3	C1	C3	Z4	Z5	C2	C4	C5
Z1	Z2	Z3	C1	C3	Z4	Z5	C2	C5	C4
Z1	Z2	Z3	C1	C3	Z4	Z5	C4	C2	C5
Z1	Z2	Z3	C1	C3	Z4	Z5	C4	C5	C2
Z1	Z2	Z3	C1	Z4	C2	C3	C5	Z5	C4
Z1	Z2	Z3	C1	Z4	C2	C3	Z5	C4	C5
Z1	Z2	Z3	C1	Z4	C2	C4	C5	Z5	C3
Z1	Z2	Z3	C1	Z4	C2	C4	Z5	C3	C5
Z1	Z2	Z3	C1	Z4	C2	C5	C3	Z5	C4
Z1	Z2	Z3	C1	Z4	C2	C5	C4	Z5	C3
Z1	Z2	Z3	C1	Z4	C2	C5	Z5	C3	C4
Z1	Z2	Z3	C1	Z4	C2	C5	Z5	C4	C3
Z1	Z2	Z3	C1	Z4	C2	Z5	C3	C4	C5
Z1	Z2	Z3	C1	Z4	C2	Z5	C3	C5	C4
Z1	Z2	Z3	C1	Z4	C2	Z5	C4	C3	C5
Z1	Z2	Z3	C1	Z4	C2	Z5	C4	C5	C3
Z1	Z2	Z3	C1	Z4	C3	C2	C5	Z5	C4
Z1	Z2	Z3	C1	Z4	C3	C2	Z5	C4	C5
Z1	Z2	Z3	C1	Z4	C3	C4	C5	Z5	C2
Z1	Z2	Z3	C1	Z4	C3	C4	Z5	C2	C5
Z1	Z2	Z3	C1	Z4	C3	C5	C2	Z5	C4
Z1	Z2	Z3	C1	Z4	C3	C5	C4	Z5	C2
Z1	Z2	Z3	C1	Z4	C3	C5	Z5	C2	C4
Z1	Z2	Z3	C1	Z4	C3	C5	Z5	C4	C2
Z1	Z2	Z3	C1	Z4	C3	Z5	C2	C4	C5
Z1	Z2	Z3	C1	Z4	C3	Z5	C2	C5	C4
Z1	Z2	Z3	C1	Z4	C3	Z5	C4	C2	C5
Z1	Z2	Z3	C1	Z4	C3	Z5	C4	C5	C2
Z1	Z2	Z3	C1	Z4	Z5	C2	C3	C4	C5
Z1	Z2	Z3	C1	Z4	Z5	C2	C3	C5	C4
Z1	Z2	Z3	C1	Z4	Z5	C2	C4	C3	C5
Z1	Z2	Z3	C1	Z4	Z5	C2	C4	C5	C3
Z1	Z2	Z3	C1	Z4	Z5	C2	C5	C3	C4
Z1	Z2	Z3	C1	Z4	Z5	C2	C5	C4	C3
Z1	Z2	Z3	C1	Z4	Z5	C3	C2	C4	C5
Z1	Z2	Z3	C1	Z4	Z5	C3	C2	C5	C4
Z1	Z2	Z3	C1	Z4	Z5	C3	C4	C2	C5
Z1	Z2	Z3	C1	Z4	Z5	C3	C4	C5	C2
Z1	Z2	Z3	C1	Z4	Z5	C3	C5	C2	C4
Z1	Z2	Z3	C1	Z4	Z5	C3	C5	C4	C2
Z1	Z2	Z3	C1	Z4	Z5	C4	C2	C3	C5
Z1	Z2	Z3	C1	Z4	Z5	C4	C2	C5	C3
Z1	Z2	Z3	C1	Z4	Z5	C4	C3	C2	C5
Z1	Z2	Z3	C1	Z4	Z5	C4	C3	C5	C2
Z1	Z2	Z3	C1	Z4	Z5	C4	C5	C2	C3
Z1	Z2	Z3	C1	Z4	Z5	C4	C5	C3	C2
Z1	Z2	Z3	C2	C1	C3	C5	Z4	Z5	C4
Z1	Z2	Z3	C2	C1	C3	Z4	C5	Z5	C4
Z1	Z2	Z3	C2	C1	C3	Z4	Z5	C4	C5
Z1	Z2	Z3	C2	C1	C4	C5	Z4	Z5	C3
Z1	Z2	Z3	C2	C1	C4	Z4	C5	Z5	C3
Z1	Z2	Z3	C2	C1	C4	Z4	Z5	C3	C5
Z1	Z2	Z3	C2	C1	Z4	C3	C5	Z5	C4
Z1	Z2	Z3	C2	C1	Z4	C3	Z5	C4	C5
Z1	Z2	Z3	C2	C1	Z4	C5	C3	Z5	C4
Z1	Z2	Z3	C2	C1	Z4	C5	C4	Z5	C3
Z1	Z2	Z3	C2	C1	Z4	C5	Z5	C3	C4
Z1	Z2	Z3	C2	C1	Z4	C5	Z5	C4	C3
Z1	Z2	Z3	C2	C1	Z4	Z5	C3	C4	C5
Z1	Z2	Z3	C2	C1	Z4	Z5	C3	C5	C4
Z1	Z2	Z3	C2	C1	Z4	Z5	C4	C3	C5
Z1	Z2	Z3	C2	C1	Z4	Z5	C4	C5	C3
Z1	Z2	Z3	C2	C3	C1	C5	Z4	Z5	C4
Z1	Z2	Z3	C2	C3	C1	Z4	C5	Z5	C4
Z1	Z2	Z3	C2	C3	C1	Z4	Z5	C4	C5
Z1	Z2	Z3	C2	C3	C4	C5	Z4	Z5	C1
Z1	Z2	Z3	C2	C3	C4	Z4	C5	Z5	C1
Z1	Z2	Z3	C2	C3	C4	Z4	Z5	C1	C5
Z1	Z2	Z3	C2	C3	Z4	C1	C5	Z5	C4
Z1	Z2	Z3	C2	C3	Z4	C1	Z5	C4	C5
Z1	Z2	Z3	C2	C3	Z4	C5	C1	Z5	C4
Z1	Z2	Z3	C2	C3	Z4	C5	C4	Z5	C1
Z1	Z2	Z3	C2	C3	Z4	C5	Z5	C1	C4
Z1	Z2	Z3	C2	C3	Z4	C5	Z5	C4	C1
Z1	Z2	Z3	C2	C3	Z4	Z5	C1	C4	C5
Z1	Z2	Z3	C2	C3	Z4	Z5	C1	C5	C4
Z1	Z2	Z3	C2	C3	Z4	Z5	C4	C1	C5
Z1	Z2	Z3	C2	C3	Z4	Z5	C4	C5	C1
Z1	Z2	Z3	C2	Z4	C1	C3	C5	Z5	C4
Z1	Z2	Z3	C2	Z4	C1	C3	Z5	C4	C5
Z1	Z2	Z3	C2	Z4	C1	C4	C5	Z5	C3
Z1	Z2	Z3	C2	Z4	C1	C4	Z5	C3	C5
Z1	Z2	Z3	C2	Z4	C1	C5	C3	Z5	C4
Z1	Z2	Z3	C2	Z4	C1	C5	C4	Z5	C3
Z1	Z2	Z3	C2	Z4	C1	C5	Z5	C3	C4
Z1	Z2	Z3	C2	Z4	C1	C5	Z5	C4	C3
Z1	Z2	Z3	C2	Z4	C1	Z5	C3	C4	C5
Z1	Z2	Z3	C2	Z4	C1	Z5	C3	C5	C4
Z1	Z2	Z3	C2	Z4	C1	Z5	C4	C3	C5
Z1	Z2	Z3	C2	Z4	C1	Z5	C4	C5	C3
Z1	Z2	Z3	C2	Z4	C3	C1	C5	Z5	C4
Z1	Z2	Z3	C2	Z4	C3	C1	Z5	C4	C5
Z1	Z2	Z3	C2	Z4	C3	C4	C5	Z5	C1
Z1	Z2	Z3	C2	Z4	C3	C4	Z5	C1	C5
Z1	Z2	Z3	C2	Z4	C3	C5	C1	Z5	C4
Z1	Z2	Z3	C2	Z4	C3	C5	C4	Z5	C1
Z1	Z2	Z3	C2	Z4	C3	C5	Z5	C1	C4
Z1	Z2	Z3	C2	Z4	C3	C5	Z5	C4	C1
Z1	Z2	Z3	C2	Z4	C3	Z5	C1	C4	C5
Z1	Z2	Z3	C2	Z4	C3	Z5	C1	C5	C4
Z1	Z2	Z3	C2	Z4	C3	Z5	C4	C1	C5
Z1	Z2	Z3	C2	Z4	C3	Z5	C4	C5	C1
Z1	Z2	Z3	C2	Z4	Z5	C1	C3	C4	C5
Z1	Z2	Z3	C2	Z4	Z5	C1	C3	C5	C4
Z1	Z2	Z3	C2	Z4	Z5	C1	C4	C3	C5
Z1	Z2	Z3	C2	Z4	Z5	C1	C4	C5	C3
Z1	Z2	Z3	C2	Z4	Z5	C1	C5	C3	C4
Z1	Z2	Z3	C2	Z4	Z5	C1	C5	C4	C3
Z1	Z2	Z3	C2	Z4	Z5	C3	C1	C4	C5
Z1	Z2	Z3	C2	Z4	Z5	C3	C1	C5	C4
Z1	Z2	Z3	C2	Z4	Z5	C3	C4	C1	C5
Z1	Z2	Z3	C2	Z4	Z5	C3	C4	C5	C1
Z1	Z2	Z3	C2	Z4	Z5	C3	C5	C1	C4
Z1	Z2	Z3	C2	Z4	Z5	C3	C5	C4	C1
Z1	Z2	Z3	C2	Z4	Z5	C4	C1	C3	C5
Z1	Z2	Z3	C2	Z4	Z5	C4	C1	C5	C3
Z1	Z2	Z3	C2	Z4	Z5	C4	C3	C1	C5
Z1	Z2	Z3	C2	Z4	Z5	C4	C3	C5	C1
Z1	Z2	Z3	C2	Z4	Z5	C4	C5	C1	C3
Z1	Z2	Z3	C2	Z4	Z5	C4	C5	C3	C1
Z1	Z2	Z3	Z4	C1	C2	C3	C5	Z5	C4
Z1	Z2	Z3	Z4	C1	C2	C3	Z5	C4	C5
Z1	Z2	Z3	Z4	C1	C2	C4	C5	Z5	C3
Z1	Z2	Z3	Z4	C1	C2	C4	Z5	C3	C5
Z1	Z2	Z3	Z4	C1	C2	C5	C3	Z5	C4
Z1	Z2	Z3	Z4	C1	C2	C5	C4	Z5	C3
Z1	Z2	Z3	Z4	C1	C2	C5	Z5	C3	C4
Z1	Z2	Z3	Z4	C1	C2	C5	Z5	C4	C3
Z1	Z2	Z3	Z4	C1	C2	Z5	C3	C4	C5
Z1	Z2	Z3	Z4	C1	C2	Z5	C3	C5	C4
Z1	Z2	Z3	Z4	C1	C2	Z5	C4	C3	C5
Z1	Z2	Z3	Z4	C1	C2	Z5	C4	C5	C3
Z1	Z2	Z3	Z4	C1	C3	C2	C5	Z5	C4
Z1	Z2	Z3	Z4	C1	C3	C2	Z5	C4	C5
Z1	Z2	Z3	Z4	C1	C3	C4	C5	Z5	C2
Z1	Z2	Z3	Z4	C1	C3	C4	Z5	C2	C5
Z1	Z2	Z3	Z4	C1	C3	C5	C2	Z5	C4
Z1	Z2	Z3	Z4	C1	C3	C5	C4	Z5	C2
Z1	Z2	Z3	Z4	C1	C3	C5	Z5	C2	C4
Z1	Z2	Z3	Z4	C1	C3	C5	Z5	C4	C2
Z1	Z2	Z3	Z4	C1	C3	Z5	C2	C4	C5
Z1	Z2	Z3	Z4	C1	C3	Z5	C2	C5	C4
Z1	Z2	Z3	Z4	C1	C3	Z5	C4	C2	C5
Z1	Z2	Z3	Z4	C1	C3	Z5	C4	C5	C2
Z1	Z2	Z3	Z4	C1	C4	C2	C5	Z5	C3
Z1	Z2	Z3	Z4	C1	C4	C2	Z5	C3	C5
Z1	Z2	Z3	Z4	C1	C4	C3	C5	Z5	C2
Z1	Z2	Z3	Z4	C1	C4	C3	Z5	C2	C5
Z1	Z2	Z3	Z4	C1	C4	C5	C2	Z5	C3
Z1	Z2	Z3	Z4	C1	C4	C5	C3	Z5	C2
Z1	Z2	Z3	Z4	C1	C4	C5	Z5	C2	C3
Z1	Z2	Z3	Z4	C1	C4	C5	Z5	C3	C2
Z1	Z2	Z3	Z4	C1	C4	Z5	C2	C3	C5
Z1	Z2	Z3	Z4	C1	C4	Z5	C2	C5	C3
Z1	Z2	Z3	Z4	C1	C4	Z5	C3	C2	C5
Z1	Z2	Z3	Z4	C1	C4	Z5	C3	C5	C2
Z1	Z2	Z3	Z4	C1	Z5	C2	C3	C4	C5
Z1	Z2	Z3	Z4	C1	Z5	C2	C3	C5	C4
Z1	Z2	Z3	Z4	C1	Z5	C2	C4	C3	C5
Z1	Z2	Z3	Z4	C1	Z5	C2	C4	C5	C3
Z1	Z2	Z3	Z4	C1	Z5	C2	C5	C3	C4
Z1	Z2	Z3	Z4	C1	Z5	C2	C5	C4	C3
Z1	Z2	Z3	Z4	C1	Z5	C3	C2	C4	C5
Z1	Z2	Z3	Z4	C1	Z5	C3	C2	C5	C4
Z1	Z2	Z3	Z4	C1	Z5	C3	C4	C2	C5
Z1	Z2	Z3	Z4	C1	Z5	C3	C4	C5	C2
Z1	Z2	Z3	Z4	C1	Z5	C3	C5	C2	C4
Z1	Z2	Z3	Z4	C1	Z5	C3	C5	C4	C2
Z1	Z2	Z3	Z4	C1	Z5	C4	C2	C3	C5
Z1	Z2	Z3	Z4	C1	Z5	C4	C2	C5	C3
Z1	Z2	Z3	Z4	C1	Z5	C4	C3	C2	C5
Z1	Z2	Z3	Z4	C1	Z5	C4	C3	C5	C2
Z1	Z2	Z3	Z4	C1	Z5	C4	C5	C2	C3
Z1	Z2	Z3	Z4	C1	Z5	C4	C5	C3	C2
Z1	Z2	Z3	Z4	C2	C1	C3	C5	Z5	C4
Z1	Z2	Z3	Z4	C2	C1	C3	Z5	C4	C5
Z1	Z2	Z3	Z4	C2	C1	C4	C5	Z5	C3
Z1	Z2	Z3	Z4	C2	C1	C4	Z5	C3	C5
Z1	Z2	Z3	Z4	C2	C1	C5	C3	Z5	C4
Z1	Z2	Z3	Z4	C2	C1	C5	C4	Z5	C3
Z1	Z2	Z3	Z4	C2	C1	C5	Z5	C3	C4
Z1	Z2	Z3	Z4	C2	C1	C5	Z5	C4	C3
Z1	Z2	Z3	Z4	C2	C1	Z5	C3	C4	C5
Z1	Z2	Z3	Z4	C2	C1	Z5	C3	C5	C4
Z1	Z2	Z3	Z4	C2	C1	Z5	C4	C3	C5
Z1	Z2	Z3	Z4	C2	C1	Z5	C4	C5	C3
Z1	Z2	Z3	Z4	C2	C3	C1	C5	Z5	C4
Z1	Z2	Z3	Z4	C2	C3	C1	Z5	C4	C5
Z1	Z2	Z3	Z4	C2	C3	C4	C5	Z5	C1
Z1	Z2	Z3	Z4	C2	C3	C4	Z5	C1	C5
Z1	Z2	Z3	Z4	C2	C3	C5	C1	Z5	C4
Z1	Z2	Z3	Z4	C2	C3	C5	C4	Z5	C1
Z1	Z2	Z3	Z4	C2	C3	C5	Z5	C1	C4
Z1	Z2	Z3	Z4	C2	C3	C5	Z5	C4	C1
Z1	Z2	Z3	Z4	C2	C3	Z5	C1	C4	C5
Z1	Z2	Z3	Z4	C2	C3	Z5	C1	C5	C4
Z1	Z2	Z3	Z4	C2	C3	Z5	C4	C1	C5
Z1	Z2	Z3	Z4	C2	C3	Z5	C4	C5	C1
Z1	Z2	Z3	Z4	C2	C4	C1	C5	Z5	C3
Z1	Z2	Z3	Z4	C2	C4	C1	Z5	C3	C5
Z1	Z2	Z3	Z4	C2	C4	C3	C5	Z5	C1
Z1	Z2	Z3	Z4	C2	C4	C3	Z5	C1	C5
Z1	Z2	Z3	Z4	C2	C4	C5	C1	Z5	C3
Z1	Z2	Z3	Z4	C2	C4	C5	C3	Z5	C1
Z1	Z2	Z3	Z4	C2	C4	C5	Z5	C1	C3
Z1	Z2	Z3	Z4	C2	C4	C5	Z5	C3	C1
Z1	Z2	Z3	Z4	C2	C4	Z5	C1	C3	C5
Z1	Z2	Z3	Z4	C2	C4	Z5	C1	C5	C3
Z1	Z2	Z3	Z4	C2	C4	Z5	C3	C1	C5
Z1	Z2	Z3	Z4	C2	C4	Z5	C3	C5	C1
Z1	Z2	Z3	Z4	C2	Z5	C1	C3	C4	C5
Z1	Z2	Z3	Z4	C2	Z5	C1	C3	C5	C4
Z1	Z2	Z3	Z4	C2	Z5	C1	C4	C3	C5
Z1	Z2	Z3	Z4	C2	Z5	C1	C4	C5	C3
Z1	Z2	Z3	Z4	C2	Z5	C1	C5	C3	C4
Z1	Z2	Z3	Z4	C2	Z5	C1	C5	C4	C3
Z1	Z2	Z3	Z4	C2	Z5	C3	C1	C4	C5
Z1	Z2	Z3	Z4	C2	Z5	C3	C1	C5	C4
Z1	Z2	Z3	Z4	C2	Z5	C3	C4	C1	C5
Z1	Z2	Z3	Z4	C2	Z5	C3	C4	C5	C1
Z1	Z2	Z3	Z4	C2	Z5	C3	C5	C1	C4
Z1	Z2	Z3	Z4	C2	Z5	C3	C5	C4	C1
Z1	Z2	Z3	Z4	C2	Z5	C4	C1	C3	C5
Z1	Z2	Z3	Z4	C2	Z5	C4	C1	C5	C3
Z1	Z2	Z3	Z4	C2	Z5	C4	C3	C1	C5
Z1	Z2	Z3	Z4	C2	Z5	C4	C3	C5	C1
Z1	Z2	Z3	Z4	C2	Z5	C4	C5	C1	C3
Z1	Z2	Z3	Z4	C2	Z5	C4	C5	C3	C1
Z1	Z2	Z3	Z4	C3	C1	C2	C5	Z5	C4
Z1	Z2	Z3	Z4	C3	C1	C2	Z5	C4	C5
Z1	Z2	Z3	Z4	C3	C1	C4	C5	Z5	C2
Z1	Z2	Z3	Z4	C3	C1	C4	Z5	C2	C5
Z1	Z2	Z3	Z4	C3	C1	C5	C2	Z5	C4
Z1	Z2	Z3	Z4	C3	C1	C5	C4	Z5	C2
Z1	Z2	Z3	Z4	C3	C1	C5	Z5	C2	C4
Z1	Z2	Z3	Z4	C3	C1	C5	Z5	C4	C2
Z1	Z2	Z3	Z4	C3	C1	Z5	C2	C4	C5
Z1	Z2	Z3	Z4	C3	C1	Z5	C2	C5	C4
Z1	Z2	Z3	Z4	C3	C1	Z5	C4	C2	C5
Z1	Z2	Z3	Z4	C3	C1	Z5	C4	C5	C2
Z1	Z2	Z3	Z4	C3	C2	C1	C5	Z5	C4
Z1	Z2	Z3	Z4	C3	C2	C1	Z5	C4	C5
Z1	Z2	Z3	Z4	C3	C2	C4	C5	Z5	C1
Z1	Z2	Z3	Z4	C3	C2	C4	Z5	C1	C5
Z1	Z2	Z3	Z4	C3	C2	C5	C1	Z5	C4
Z1	Z2	Z3	Z4	C3	C2	C5	C4	Z5	C1
Z1	Z2	Z3	Z4	C3	C2	C5	Z5	C1	C4
Z1	Z2	Z3	Z4	C3	C2	C5	Z5	C4	C1
Z1	Z2	Z3	Z4	C3	C2	Z5	C1	C4	C5
Z1	Z2	Z3	Z4	C3	C2	Z5	C1	C5	C4
Z1	Z2	Z3	Z4	C3	C2	Z5	C4	C1	C5
Z1	Z2	Z3	Z4	C3	C2	Z5	C4	C5	C1
Z1	Z2	Z3	Z4	C3	C4	C1	C5	Z5	C2
Z1	Z2	Z3	Z4	C3	C4	C1	Z5	C2	C5
Z1	Z2	Z3	Z4	C3	C4	C2	C5	Z5	C1
Z1	Z2	Z3	Z4	C3	C4	C2	Z5	C1	C5
Z1	Z2	Z3	Z4	C3	C4	C5	C1	Z5	C2
Z1	Z2	Z3	Z4	C3	C4	C5	C2	Z5	C1
Z1	Z2	Z3	Z4	C3	C4	C5	Z5	C1	C2
Z1	Z2	Z3	Z4	C3	C4	C5	Z5	C2	C1
Z1	Z2	Z3	Z4	C3	C4	Z5	C1	C2	C5
Z1	Z2	Z3	Z4	C3	C4	Z5	C1	C5	C2
Z1	Z2	Z3	Z4	C3	C4	Z5	C2	C1	C5
Z1	Z2	Z3	Z4	C3	C4	Z5	C2	C5	C1
Z1	Z2	Z3	Z4	C3	Z5	C1	C2	C4	C5
Z1	Z2	Z3	Z4	C3	Z5	C1	C2	C5	C4
Z1	Z2	Z3	Z4	C3	Z5	C1	C4	C2	C5
Z1	Z2	Z3	Z4	C3	Z5	C1	C4	C5	C2
Z1	Z2	Z3	Z4	C3	Z5	C1	C5	C2	C4
Z1	Z2	Z3	Z4	C3	Z5	C1	C5	C4	C2
Z1	Z2	Z3	Z4	C3	Z5	C2	C1	C4	C5
Z1	Z2	Z3	Z4	C3	Z5	C2	C1	C5	C4
Z1	Z2	Z3	Z4	C3	Z5	C2	C4	C1	C5
Z1	Z2	Z3	Z4	C3	Z5	C2	C4	C5	C1
Z1	Z2	Z3	Z4	C3	Z5	C2	C5	C1	C4
Z1	Z2	Z3	Z4	C3	Z5	C2	C5	C4	C1
Z1	Z2	Z3	Z4	C3	Z5	C4	C1	C2	C5
Z1	Z2	Z3	Z4	C3	Z5	C4	C1	C5	C2
Z1	Z2	Z3	Z4	C3	Z5	C4	C2	C1	C5
Z1	Z2	Z3	Z4	C3	Z5	C4	C2	C5	C1
Z1	Z2	Z3	Z4	C3	Z5	C4	C5	C1	C2
Z1	Z2	Z3	Z4	C3	Z5	C4	C5	C2	C1
Z1	Z2	Z3	Z4	Z5	C1	C2	C3	C4	C5
Z1	Z2	Z3	Z4	Z5	C1	C2	C3	C5	C4
Z1	Z2	Z3	Z4	Z5	C1	C2	C4	C3	C5
Z1	Z2	Z3	Z4	Z5	C1	C2	C4	C5	C3
Z1	Z2	Z3	Z4	Z5	C1	C2	C5	C3	C4
Z1	Z2	Z3	Z4	Z5	C1	C2	C5	C4	C3
Z1	Z2	Z3	Z4	Z5	C1	C3	C2	C4	C5
Z1	Z2	Z3	Z4	Z5	C1	C3	C2	C5	C4
Z1	Z2	Z3	Z4	Z5	C1	C3	C4	C2	C5
Z1	Z2	Z3	Z4	Z5	C1	C3	C4	C5	C2
Z1	Z2	Z3	Z4	Z5	C1	C3	C5	C2	C4
Z1	Z2	Z3	Z4	Z5	C1	C3	C5	C4	C2
Z1	Z2	Z3	Z4	Z5	C1	C4	C2	C3	C5
Z1	Z2	Z3	Z4	Z5	C1	C4	C2	C5	C3
Z1	Z2	Z3	Z4	Z5	C1	C4	C3	C2	C5
Z1	Z2	Z3	Z4	Z5	C1	C4	C3	C5	C2
Z1	Z2	Z3	Z4	Z5	C1	C4	C5	C2	C3
Z1	Z2	Z3	Z4	Z5	C1	C4	C5	C3	C2
Z1	Z2	Z3	Z4	Z5	C1	C5	C2	C3	C4
Z1	Z2	Z3	Z4	Z5	C1	C5	C2	C4	C3
Z1	Z2	Z3	Z4	Z5	C1	C5	C3	C2	C4
Z1	Z2	Z3	Z4	Z5	C1	C5	C3	C4	C2
Z1	Z2	Z3	Z4	Z5	C1	C5	C4	C2	C3
Z1	Z2	Z3	Z4	Z5	C1	C5	C4	C3	C2
Z1	Z2	Z3	Z4	Z5	C2	C1	C3	C4	C5
Z1	Z2	Z3	Z4	Z5	C2	C1	C3	C5	C4
Z1	Z2	Z3	Z4	Z5	C2	C1	C4	C3	C5
Z1	Z2	Z3	Z4	Z5	C2	C1	C4	C5	C3
Z1	Z2	Z3	Z4	Z5	C2	C1	C5	C3	C4
Z1	Z2	Z3	Z4	Z5	C2	C1	C5	C4	C3
Z1	Z2	Z3	Z4	Z5	C2	C3	C1	C4	C5
Z1	Z2	Z3	Z4	Z5	C2	C3	C1	C5	C4
Z1	Z2	Z3	Z4	Z5	C2	C3	C4	C1	C5
Z1	Z2	Z3	Z4	Z5	C2	C3	C4	C5	C1
Z1	Z2	Z3	Z4	Z5	C2	C3	C5	C1	C4
Z1	Z2	Z3	Z4	Z5	C2	C3	C5	C4	C1
Z1	Z2	Z3	Z4	Z5	C2	C4	C1	C3	C5
Z1	Z2	Z3	Z4	Z5	C2	C4	C1	C5	C3
Z1	Z2	Z3	Z4	Z5	C2	C4	C3	C1	C5
Z1	Z2	Z3	Z4	Z5	C2	C4	C3	C5	C1
Z1	Z2	Z3	Z4	Z5	C2	C4	C5	C1	C3
Z1	Z2	Z3	Z4	Z5	C2	C4	C5	C3	C1
Z1	Z2	Z3	Z4	Z5	C2	C5	C1	C3	C4
Z1	Z2	Z3	Z4	Z5	C2	C5	C1	C4	C3
Z1	Z2	Z3	Z4	Z5	C2	C5	C3	C1	C4
Z1	Z2	Z3	Z4	Z5	C2	C5	C3	C4	C1
Z1	Z2	Z3	Z4	Z5	C2	C5	C4	C1	C3
Z1	Z2	Z3	Z4	Z5	C2	C5	C4	C3	C1
Z1	Z2	Z3	Z4	Z5	C3	C1	C2	C4	C5
Z1	Z2	Z3	Z4	Z5	C3	C1	C2	C5	C4
Z1	Z2	Z3	Z4	Z5	C3	C1	C4	C2	C5
Z1	Z2	Z3	Z4	Z5	C3	C1	C4	C5	C2
Z1	Z2	Z3	Z4	Z5	C3	C1	C5	C2	C4
Z1	Z2	Z3	Z4	Z5	C3	C1	C5	C4	C2
Z1	Z2	Z3	Z4	Z5	C3	C2	C1	C4	C5
Z1	Z2	Z3	Z4	Z5	C3	C2	C1	C5	C4
Z1	Z2	Z3	Z4	Z5	C3	C2	C4	C1	C5
Z1	Z2	Z3	Z4	Z5	C3	C2	C4	C5	C1
Z1	Z2	Z3	Z4	Z5	C3	C2	C5	C1	C4
Z1	Z2	Z3	Z4	Z5	C3	C2	C5	C4	C1
Z1	Z2	Z3	Z4	Z5	C3	C4	C1	C2	C5
Z1	Z2	Z3	Z4	Z5	C3	C4	C1	C5	C2
Z1	Z2	Z3	Z4	Z5	C3	C4	C2	C1	C5
Z1	Z2	Z3	Z4	Z5	C3	C4	C2	C5	C1
Z1	Z2	Z3	Z4	Z5	C3	C4	C5	C1	C2
Z1	Z2	Z3	Z4	Z5	C3	C4	C5	C2	C1
Z1	Z2	Z3	Z4	Z5	C3	C5	C1	C2	C4
Z1	Z2	Z3	Z4	Z5	C3	C5	C1	C4	C2
Z1	Z2	Z3	Z4	Z5	C3	C5	C2	C1	C4
Z1	Z2	Z3	Z4	Z5	C3	C5	C2	C4	C1
Z1	Z2	Z3	Z4	Z5	C3	C5	C4	C1	C2
Z1	Z2	Z3	Z4	Z5	C3	C5	C4	C2	C1
Z1	Z2	Z3	Z4	Z5	C4	C1	C2	C3	C5
Z1	Z2	Z3	Z4	Z5	C4	C1	C2	C5	C3
Z1	Z2	Z3	Z4	Z5	C4	C1	C3	C2	C5
Z1	Z2	Z3	Z4	Z5	C4	C1	C3	C5	C2
Z1	Z2	Z3	Z4	Z5	C4	C1	C5	C2	C3
Z1	Z2	Z3	Z4	Z5	C4	C1	C5	C3	C2
Z1	Z2	Z3	Z4	Z5	C4	C2	C1	C3	C5
Z1	Z2	Z3	Z4	Z5	C4	C2	C1	C5	C3
Z1	Z2	Z3	Z4	Z5	C4	C2	C3	C1	C5
Z1	Z2	Z3	Z4	Z5	C4	C2	C3	C5	C1
Z1	Z2	Z3	Z4	Z5	C4	C2	C5	C1	C3
Z1	Z2	Z3	Z4	Z5	C4	C2	C5	C3	C1
Z1	Z2	Z3	Z4	Z5	C4	C3	C1	C2	C5
Z1	Z2	Z3	Z4	Z5	C4	C3	C1	C5	C2
Z1	Z2	Z3	Z4	Z5	C4	C3	C2	C1	C5
Z1	Z2	Z3	Z4	Z5	C4	C3	C2	C5	C1
Z1	Z2	Z3	Z4	Z5	C4	C3	C5	C1	C2
Z1	Z2	Z3	Z4	Z5	C4	C3	C5	C2	C1
Z1	Z2	Z3	Z4	Z5	C4	C5	C1	C2	C3
Z1	Z2	Z3	Z4	Z5	C4	C5	C1	C3	C2
Z1	Z2	Z3	Z4	Z5	C4	C5	C2	C1	C3
Z1	Z2	Z3	Z4	Z5	C4	C5	C2	C3	C1
Z1	Z2	Z3	Z4	Z5	C4	C5	C3	C1	C2
Z1	Z2	Z3	Z4	Z5	C4	C5	C3	C2	C1

the first trick is to make ten tables. Each table has a single column P1 ...P10. Then only put viable values in the tables that represent columns. Based on the rules you can determine when a value can be in play and when it is done. For example z1 can come in as early as column 1 and no later than column 5. C1 can come in as early as column 3 and as late as column 5.


Build the first query to return permutations without replacement
Code:
SELECT tblP1.P1, tblP2.P2, tblP3.P3, tblP4.P4, tblP5.P5, tblP6.P6, tblP7.P7, tblP8.P8, tblP9.P9, tblP10.P10
FROM tblP1, tblP2, tblP3, tblP4, tblP5, tblP6, tblP7, tblP8, tblP9, tblP10
WHERE (((tblP1.P1)<>[P2] And (tblP1.P1)<>[P3] And (tblP1.P1)<>[P4] And (tblP1.P1)<>[P5] And (tblP1.P1)<>[P6] And (tblP1.P1)<>[P7] And (tblP1.P1)<>[P8] And (tblP1.P1)<>[P9] And (tblP1.P1)<>[P10]) AND ((tblP2.P2)<>[P1] And (tblP2.P2)<>[P3] And (tblP2.P2)<>[P4] And (tblP2.P2)<>[P5] And (tblP2.P2)<>[P6] And (tblP2.P2)<>[P7] And (tblP2.P2)<>[P8] And (tblP2.P2)<>[P9] And (tblP2.P2)<>[P10]) AND ((tblP3.P3)<>[P2] And (tblP3.P3)<>[P1] And (tblP3.P3)<>[P4] And (tblP3.P3)<>[P5] And (tblP3.P3)<>[P6] And (tblP3.P3)<>[P7] And (tblP3.P3)<>[P8] And (tblP3.P3)<>[P9] And (tblP3.P3)<>[P10]) AND ((tblP4.P4)<>[P2] And (tblP4.P4)<>[P3] And (tblP4.P4)<>[P1] And (tblP4.P4)<>[P5] And (tblP4.P4)<>[P6] And (tblP4.P4)<>[P7] And (tblP4.P4)<>[P8] And (tblP4.P4)<>[P9] And (tblP4.P4)<>[P10]) AND ((tblP5.P5)<>[P2] And (tblP5.P5)<>[P3] And (tblP5.P5)<>[P4] And (tblP5.P5)<>[P1] And (tblP5.P5)<>[P6] And (tblP5.P5)<>[P7] And (tblP5.P5)<>[P8] And (tblP5.P5)<>[P9] And (tblP5.P5)<>[P10]) AND ((tblP6.P6)<>[P2] And (tblP6.P6)<>[P3] And (tblP6.P6)<>[P4] And (tblP6.P6)<>[P5] And (tblP6.P6)<>[P1] And (tblP6.P6)<>[P7] And (tblP6.P6)<>[P8] And (tblP6.P6)<>[P9] And (tblP6.P6)<>[P10]) AND ((tblP7.P7)<>[P2] And (tblP7.P7)<>[P3] And (tblP7.P7)<>[P4] And (tblP7.P7)<>[P5] And (tblP7.P7)<>[P6] And (tblP7.P7)<>[P1] And (tblP7.P7)<>[P8] And (tblP7.P7)<>[P9] And (tblP7.P7)<>[P10]) AND ((tblP8.P8)<>[P2] And (tblP8.P8)<>[P3] And (tblP8.P8)<>[P4] And (tblP8.P8)<>[P5] And (tblP8.P8)<>[P6] And (tblP8.P8)<>[P7] And (tblP8.P8)<>[P1] And (tblP8.P8)<>[P9] And (tblP8.P8)<>[P10]) AND ((tblP9.P9)<>[P2] And (tblP9.P9)<>[P3] And (tblP9.P9)<>[P4] And (tblP9.P9)<>[P5] And (tblP9.P9)<>[P6] And (tblP9.P9)<>[P7] And (tblP9.P9)<>[P8] And (tblP9.P9)<>[P1] And (tblP9.P9)<>[P10]) AND ((tblP10.P10)<>[P2] And (tblP10.P10)<>[P3] And (tblP10.P10)<>[P4] And (tblP10.P10)<>[P5] And (tblP10.P10)<>[P6] And (tblP10.P10)<>[P7] And (tblP10.P10)<>[P8] And (tblP10.P10)<>[P9] And (tblP10.P10)<>[P1]))
ORDER BY tblP1.P1, tblP2.P2, tblP3.P3, tblP4.P4, tblP5.P5, tblP6.P6, tblP7.P7, tblP8.P8, tblP9.P9, tblP10.P10;

make a table from the resutlts. need to then apply rule 1,2,3.

Code:
SELECT table1Permutes.P1, table1Permutes.P2, table1Permutes.P3, table1Permutes.P4, table1Permutes.P5, table1Permutes.P6, table1Permutes.P7, table1Permutes.P8, table1Permutes.P9, table1Permutes.P10, isvalid([p1],[p2],[p3],[p4],[p5],[p6],[p7],[p8],[p9],[p10]) AS Valid
FROM table1Permutes
WHERE (((isvalid([p1],[p2],[p3],[p4],[p5],[p6],[p7],[p8],[p9],[p10]))=True));
function used in above code
Code:
Public Function IsValid(ParamArray Ps() As Variant) As Boolean
  Dim Zmax As Integer
  Dim theVal As Integer
  Dim theChar As String
  Dim i As Integer
  Dim j As Integer
  Dim Found As Boolean
  Dim P As Variant
  For Each P In Ps
    theChar = Left(P, 1)
    theVal = Right(P, 1)
    
    'Check no repeated character
    If i > 0 Then
       For j = 0 To i - 1
           If P = Ps(j) Then Exit Function
           'Check Zn before Zn+1
           If theChar = "Z" And Left(Ps(j), 1) = "Z" Then
             If theVal < Right(Ps(j), 1) Then Exit Function
           End If
       Next j
    End If
    
    If theChar = "C" Then
      'Zn not followed by Cn
      If theVal = Right(Ps(i - 1), 1) Then Exit Function
        'Check Zn before Cn
       If i > 0 Then
         For j = 0 To i
            If theVal = Right(Ps(j), 1) Then
               Found = True
          Exit For
        End If
        Next j
      End If
      If Not Found Then Exit Function
    End If
    i = i + 1
  Next P
  IsValid = True
End Function
 
Thank you MajP for taking the time! Would you be able to send the SQL you used for the Make Table query and the Function you wrote to work on the Make Table query..

Many thanks
Vicky
 
just take the original query and turn it into a select into query. I included the function. In the sql you see
...WHERE (((isvalid([p1],[p2],[p3],[p4],[p5],[p6],[p7],[p8],[p9],[p10]))=True));

the function isvalid is posted above.
 
hi again MajP

I know I'm missing something, but I don't see the SQL code or the function that you say is posted above. (I can only see the resulting output of the query) I especially want to see the IsValid function.

Thanks. Sorry to be a pest!
Vicky
 
1) The first query provided returns the permutations without replacement. Lets call the query "qryPermutes". Save that query.
2) Create a new query. In the design view pull in "qryPermutes" to your new query. Choose all the fields. Now choose make table from the design ribbon. When it asks for a new table name call it "table1Permutes". It will dump the qryPermutes into a new table. called "table1Permutes"
3) Now build the second query to apply rules 1,2,3. Call it whatever you want.
You will see that this query calls a vba function in its where clause

WHERE (((isvalid([p1],[p2],[p3],[p4],[p5],[p6],[p7],[p8],[p9],[p10]))=True))

4) The function "isValid" is shown above in the last white code box. This function goes in a vba standard module. Not in a form or report module.

In truth the above where clause could be added to the original query and you could skip the intermediate steps of building a table. I did it in parts because the original where clause is so long and wanted to show the difference.

But this should work in the original
...And (tblP10.P10)<>[P9] And (tblP10.P10)<>[P1]) AND isvalid([p1],[p2],[p3],[p4],[p5],[p6],[p7],[p8],[p9],[p10])= True)
 
MajP said:
The function "isValid" is shown above in the last white code box
Sorry, but it is not there.
The only think in the box is the results.


Randy
 
Create a new query. Switch to SQL view and paste the following.

Code:
SELECT tblP1.P1, tblP2.P2, tblP3.P3, tblP4.P4, tblP5.P5, tblP6.P6, tblP7.P7, tblP8.P8, tblP9.P9, tblP10.P10
FROM tblP1, tblP2, tblP3, tblP4, tblP5, tblP6, tblP7, tblP8, tblP9, tblP10
WHERE (((tblP1.P1)<>[P2] And (tblP1.P1)<>[P3] And (tblP1.P1)<>[P4] And (tblP1.P1)<>[P5] And (tblP1.P1)<>[P6] And (tblP1.P1)<>[P7] And (tblP1.P1)<>[P8] And (tblP1.P1)<>[P9] And (tblP1.P1)<>[P10]) AND ((tblP2.P2)<>[P1] And (tblP2.P2)<>[P3] And (tblP2.P2)<>[P4] And (tblP2.P2)<>[P5] And (tblP2.P2)<>[P6] And (tblP2.P2)<>[P7] And (tblP2.P2)<>[P8] And (tblP2.P2)<>[P9] And (tblP2.P2)<>[P10]) AND ((tblP3.P3)<>[P2] And (tblP3.P3)<>[P1] And (tblP3.P3)<>[P4] And (tblP3.P3)<>[P5] And (tblP3.P3)<>[P6] And (tblP3.P3)<>[P7] And (tblP3.P3)<>[P8] And (tblP3.P3)<>[P9] And (tblP3.P3)<>[P10]) AND ((tblP4.P4)<>[P2] And (tblP4.P4)<>[P3] And (tblP4.P4)<>[P1] And (tblP4.P4)<>[P5] And (tblP4.P4)<>[P6] And (tblP4.P4)<>[P7] And (tblP4.P4)<>[P8] And (tblP4.P4)<>[P9] And (tblP4.P4)<>[P10]) AND ((tblP5.P5)<>[P2] And (tblP5.P5)<>[P3] And (tblP5.P5)<>[P4] And (tblP5.P5)<>[P1] And (tblP5.P5)<>[P6] And (tblP5.P5)<>[P7] And (tblP5.P5)<>[P8] And (tblP5.P5)<>[P9] And (tblP5.P5)<>[P10]) AND ((tblP6.P6)<>[P2] And (tblP6.P6)<>[P3] And (tblP6.P6)<>[P4] And (tblP6.P6)<>[P5] And (tblP6.P6)<>[P1] And (tblP6.P6)<>[P7] And (tblP6.P6)<>[P8] And (tblP6.P6)<>[P9] And (tblP6.P6)<>[P10]) AND ((tblP7.P7)<>[P2] And (tblP7.P7)<>[P3] And (tblP7.P7)<>[P4] And (tblP7.P7)<>[P5] And (tblP7.P7)<>[P6] And (tblP7.P7)<>[P1] And (tblP7.P7)<>[P8] And (tblP7.P7)<>[P9] And (tblP7.P7)<>[P10]) AND ((tblP8.P8)<>[P2] And (tblP8.P8)<>[P3] And (tblP8.P8)<>[P4] And (tblP8.P8)<>[P5] And (tblP8.P8)<>[P6] And (tblP8.P8)<>[P7] And (tblP8.P8)<>[P1] And (tblP8.P8)<>[P9] And (tblP8.P8)<>[P10]) AND ((tblP9.P9)<>[P2] And (tblP9.P9)<>[P3] And (tblP9.P9)<>[P4] And (tblP9.P9)<>[P5] And (tblP9.P9)<>[P6] And (tblP9.P9)<>[P7] And (tblP9.P9)<>[P8] And (tblP9.P9)<>[P1] And (tblP9.P9)<>[P10]) AND ((tblP10.P10)<>[P2] And (tblP10.P10)<>[P3] And (tblP10.P10)<>[P4] And (tblP10.P10)<>[P5] And (tblP10.P10)<>[P6] And (tblP10.P10)<>[P7] And (tblP10.P10)<>[P8] And (tblP10.P10)<>[P9] And (tblP10.P10)<>[P1]) AND  isvalid([p1],[p2],[p3],[p4],[p5],[p6],[p7],[p8],[p9],[p10]))
ORDER BY tblP1.P1, tblP2.P2, tblP3.P3, tblP4.P4, tblP5.P5, tblP6.P6, tblP7.P7, tblP8.P8, tblP9.P9, tblP10.P10;

This will do it all in a single query.
 
MajP - thanks for a thorough and clear explanation. I plan modify the IsValid function and use it is a few other places as well.

Vicky
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top