DELETE EM CASCATA

MARCELOFAZAN 08/08/2010 14:47:38
#349737
Pessoal uso o codigo abaixo para deletar um registro só que preciso deletar em cascata outra tabela relacionada
obs : nao tenho relacionado a chave estrangeira

Geralmente eu utilizaria um Do while para fazer esse Delete em cascata Nao sei se tem como

o que necessariamente poderia alterar , para conseguir deletar
precisaria deletar todos os registros da tabela frequencia where o buscar.id = frequencia.aluno





Dim sql As String
Dim rs As New ADODB.Recordset

If MsgBox([Ô]Confirma Exclusão [Ô], vbQuestion + vbYesNo, [Ô] Gravação [Ô]) = vbYes Then

Set rs = New ADODB.Recordset
sql = [Ô]Select * From buscar Order BY id[Ô]
rs.Open sql, conexao, adOpenKeyset, adLockPessimistic

If rs.BOF = True And rs.EOF = True Then
MsgBox [Ô]Não existe registro para ser excluido. ![Ô]
Exit Sub
Else

sql = [Ô]DELETE FROM buscar WHERE id=[Ô] & txtid.Text
conexao.Execute sql
MsgBox [Ô]Registro Excluido![Ô], vbInformation

CmdBuscar.SetFocus
End If
End If

Obrigado
Abs
Marcelo Fazan
TRTNCG 08/08/2010 16:11:08
#349740
Não entendi o queres fazer, dá para detalhar
MARCELOFAZAN 08/08/2010 16:43:22
#349742
tenho 2 tabelas

uma de cliente outra de frequencia onde elas estao relacionadas
onde 1 cliente tem varias frequencias

se eu querer excluir esse cliente nao vo conseguir
preciso deletar todas frequencias antes pra depois deletar o cliente

quero deletar tudo qdo excluir o cliente , deletar as frequencias e o cliente num command



meo codigo acima somente deleta o cliente queria altera-lo e saber se tem como fazer um do while para excluir todas frequencias desse cliente e no final deletar o cliente

ou mesmo nessa linha DELETE FROM buscar WHERE id=[Ô] & txtid.Text and delete from frequencia where aluno =[Ô] & txtid.Text


MARCOSLING 08/08/2010 17:38:26
#349743
Resposta escolhida
Pq vc não ativa a opção de exclusão em cascata do próprio relacionamento?
ROBIU 08/08/2010 19:05:27
#349748
Citação:

obs : nao tenho relacionado a chave estrangeira



Citação:

tenho 2 tabelas

uma de cliente outra de frequencia onde elas estao relacionadas
onde 1 cliente tem varias frequencias


Seria algo assim:
 sql=[Ô]delete from frequencia where aluno =[Ô] & txtid.Text
conexao.Execute sql
sql = [Ô]DELETE FROM Cliente WHERE id=[Ô] & txtid.Text
conexao.Execute sql
MsgBox [Ô]Registro Excluido![Ô], vbInformation


MARCELOFAZAN 08/08/2010 19:13:22
#349749
Ola Marcos obrigado Na mosca

Robiu Obrigado , eu não estava sabendo usar essa opcao do access mais vo testar seu codigo tb

Abs
Marcelo Fazan
Tópico encerrado , respostas não são mais permitidas