Per cominciare devi fare le seguenti considerazioni:
1)Un controllo MSHFlexGrid non puo "contenere" una tabella se questa tabella non c'è nel database. Il controllo MSHFlexGrid viene riempito (popolato) se viene connesso con la tabella che c'è nel database.
2)La ricerca la puoi fare in una sola tabella, amenochè non usi due controlli, ognuno collegato a una sua tabella.
Poi, scusa, mi pare che il tuo progetto sia tutto da reimpostare.