DELETE EM CASCATA
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
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
Não entendi o queres fazer, dá para detalhar
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
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
Pq vc não ativa a opção de exclusão em cascata do próprio relacionamento?
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
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
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