Mestre Detalhe

Boa tarde!

Estou com problema em uma aplicação mestre detalhe.
É o seguinte tenho 4 tabelas onde só posso inserir dados na segunda se a primeira tabela estiver preenchida, só posso inserir dados na terceira se a segunda tabela estiver preenchida e finalmente só posso inserir dados na quarta tabela se a terceira estiver preenchida ou seja se todas estiverem preenchidas posso inserir dados na quarta tabela.

Criei uma aplicação de mestre detalhe e separei em três blocos:
bloco 1 : detalhe tabela 2
bloco 2 : detalhe tabela 3
bloco 3: detalhe da tabela 4

O detalhe do bloco 1 só aparec com o mestre preenchido até ai ok.
Porém o detalhe do bloco 2 só deve aparecer caso os dados do detalhe do bloco 1 esteja preenchido e assim sucessivamente.

Só que todos os blocos estão aparecendo e estao abrindo com erro sql de dados nao encontrados isso pq uma tabela precisa dos dados da sua antecessora.
O que devo fazer pra que um bloco habilite caso o detalhe da antecessora esteja preenchida?

Como você trata o salvamento de cada tabela (bloco)?

Os blocos sao formados pelos detalhes das tabelas.
O bloco 1 é a tabela 2 em forma de detalhe.
Bloco 2 é a tablela 3 em forma de detalhe.
Bloco 3, tabela 4 em forma de detalhe.

Esses detalhes são formularios de grid editavel. O botão de incluir do proprio grid é que salva os registros no banco.

tabela 2, 3 e 4 estão no mesmo nível, todas são filhas da tabela 1 se você usou a metodologia de mestre detalhe do sc, não vai fazer o que você deseja usando dessa forma. terá que ser na unha.