SET EXCLUSIVE off SET EXACT on lcName1 = alltrim(thisform.text1.value) lcName2 = alltrim(thisform.text2.value) lcName3 = alltrim(thisform.text3.value) lcName4 = alltrim(thisform.text4.value) IF lcName1=="" AND lcName2 =="" AND lcName3 =="" AND lcName4<>"" if LEN(ALLTRIM(thisform.text4.value)) >= 3 Select F4,F1,name4,name3,name2,name1 from x2 where name4=lcName4; into cursor lcResultTable ************************************************ if LEN(ALLTRIM(thisform.text3.value)) >= 3 and LEN(ALLTRIM(thisform.text4.value)) >= 3 IF lcName1 =="" AND lcName2 =="" AND lcName3<>"" AND lcName4<>"" Select F4,F1,name4,name3,name2,name1 from x2 where name3=lcName3 AND name4=lcName4; into cursor lcResultTable ******************************************** if LEN(ALLTRIM(thisform.text3.value)) >= 3 and LEN(ALLTRIM(thisform.text4.value)) >= 3 and LEN(ALLTRIM(thisform.text2.value)) >= 3 IF lcName1 =="" AND lcName2 <>"" AND lcName3<>"" AND lcName4<>"" Select F4,F1,name4,name3,name2,name1 from x2 where name2=lcName2 and name3=lcName3 AND name4=lcName4; into cursor lcResultTable *********************************************** if LEN(ALLTRIM(thisform.text3.value)) >= 3 and LEN(ALLTRIM(thisform.text4.value)) >= 3 and LEN(ALLTRIM(thisform.text2.value)) >= 3 AND LEN(ALLTRIM(thisform.text1.value)) >= 3 IF lcName1 <>"" AND lcName2 <>"" AND lcName3<>"" AND lcName4<>"" Select F4,F1,name4,name3,name2,name1 from x2 where name1=lcName1 AND name2=lcName2 and name3=lcName3 AND name4=lcName4; into cursor lcResultTable NOFILTER ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF GO top thisform.Grid1.RecordSource="lcResultTable" thisform.grid1.Visible=.t.thanks for help
>>lcFromTable='x2' >>lcResultTable='crsMyCursor' >>For x=1 to 4 >> lcName=Evaluate('lcName'+Transform(x)) >> If !Empty(lcName) >> Select * from (lcFromTable) where name1=lcName or name2=lcName or name3=lcName or name4=lcName into cursor (lcResultTable) READWRITE >> lcFromTable=lcResultTable >> EndIf >>EndFor>>NB! I tested it this time. :-)
> Select * from (lcFromTable) where (m.lcName1=="" OR (name1=lcName1 or name2=lcName1 or name3=lcName1 or name4=lcName1) ) >AND ((m.lcName2=="" OR (name1=lcName2 or name2=lcName2 or name3=lcName2 or name4=lcName2) ) >AND ... > >>into cursor (lcResultTable)