ALGUMA IDEIA???
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
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
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
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Faça assim:
cnn.Execute "Detele from Tabmensalidades WHERE nomecont = '" & RstDatagrid!nomecont & "'"
MARCELOHF, fiz isso e ele nao da erro mas tbm não apaga o dado da tabela 2 ou seja, da tabmensalidades
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.
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