ALGUMA IDEIA???

USUARIO.EXCLUIDOS 06/09/2007 12:21:33
#234476
Boa tarde o meu problema é o seguinte:
possuo um form e nele eu uso duas tabelas ,uma "tabela1" com dados pessoas e outra com as mensalidades "tabela2" d cada pessoa cadastrada na tabela1.

Da forma q está abaixo eu exibo num grid os dados da tabela 1 e o botão exluir exclui quem eu desejar da tabela 1, o meu problema é o seguinte, quero tbm excluir as mensalidades dessa pessoa q esta na tabela 1 e q estão na tabela 2.. essa parte eu deixe na cor verde abaixo, mas oq esta acontecendo é q ele não apaga a linha correspondente a pessoa q esta na tabela1 e o certo é ele apagar a pessoa q desejo da tabela1 e ir na tabela 2 e apagar a linha correspondedente a essa pessoa da tabela 1
deu pra entender? rssr

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Private Sub CmdExcl_Click()
On Error Resume Next
If Valida_Grid = True Then
Exit Sub
End If
vResp = MsgBox("Deseja realmente excluir " & RstDatagrid!nomecont & " da sua Lista de Contatos", vbQuestion + vbYesNo, "Excluindo . . .")
If vResp = vbYes Then


''''''''''''''''''''''''essa parte faz o label1 aparecer com o total de linhas no grid
Label1.Caption = Label1.Caption - 1


------a parte abaixo eu abro a tabela2 e apago os dados de la----

[txt-color=#ff0000] '''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''
RstDatagrid!nomecont = nomecont
Dim sql As String ''''''''''abre a tabela mensalidades
Conexao
ReabreRst Rst
sql = "SELECT * FROM Tabmensalidades ORDER BY nomecont"
Rst.Open sql, cnn, adOpenKeyset, adLockOptimistic

Rst.Find "nomecont = " & ID, , , 1
If Not Rst.eof Then 'se encontrou
Rst.Delete
Excluir = True
End If

'''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''[/txt-color]
-----termina exclusão da tabela2----------


If RstDatagrid!fotocont <> App.Path & "\fotos\SemFoto.gif" Then
Kill RstDatagrid!fotocont
RstDatagrid.Delete
Else
RstDatagrid.Delete
End If
If RstDatagrid.RecordCount = 0 Then
Image1.Picture = LoadPicture(App.Path & "\fotos\0.gif")
Else
RstDatagrid.MoveFirst
Image1.Picture = LoadPicture(RstDatagrid!fotocont)
End If
End If
End Sub

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
USUARIO.EXCLUIDOS 06/09/2007 13:14:20
#234492
Faça assim:

cnn.Execute "Detele from Tabmensalidades WHERE nomecont = '" & RstDatagrid!nomecont & "'"

USUARIO.EXCLUIDOS 06/09/2007 17:25:41
#234572
MARCELOHF, fiz isso e ele nao da erro mas tbm não apaga o dado da tabela 2 ou seja, da tabmensalidades
CLINS 06/09/2007 22:31:49
#234604
Se você tiver acesso direto ao banco, faça um relacionamento marcando as opções :

ON DELETE CASCADE
ON UPDATE CASCADE


e nunca mais você vai recisar esquentar a cabeça com isto.

Mas atenção, faça isso apenas se a regra de negócios do seu aplicativo permitir.

Um exemplo prático de uso desta técnica seria apagar os dependentes de um cliente que se está apagando.
Tópico encerrado , respostas não são mais permitidas