MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

3 participantes

    [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 03:23

    Olá pessoal...
    Tenho três tabelas relacionadas e preciso excluir um registro para as três:
    SELECT * FROM Cadastros INNER JOIN Serviço AND Compromisso ON Cadastros.Pessoa=Serviço.Pessoa=Compromisso.Pessoa

    Principal: Cadastros
    Secundárias: Serviço e Compromisso

    Em Cadastros e Compromisso só existe uma entrada para cada Pessoa (não repete)
    Em Serviço existem várias entradas para a mesma Pessoa (repete)

    Estou usando BackEnd e não pretendo fazer relacionamento preferencial para exclusão por alguns motivos... E no FrontEnd para relacionar tabelas, não tem como marcar as caixas de verificação para preferenciar exclusão..., pois ficam desabilitadas.

    P.S.: Eu não sei fazer isso... Help please!

    Desde já agradeço!
    Paulo César
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  criquio 30/9/2012, 03:43

    Você pode tentar isso em um botão do formulário:

    Código:
    CurrentDb.Execute "DELETE * FROM NomeTabela1 WHERE CampoTabela='" & Me.CampoDoForm & "'"
    CurrentDb.Execute "DELETE * FROM NomeTabela2 WHERE CampoTabela='" & Me.CampoDoForm & "'"
    CurrentDb.Execute "DELETE * FROM NomeTabela3 WHERE CampoTabela='" & Me.CampoDoForm & "'"
    MsgBox "Registros excluídos com sucesso", vbInformation, "Status"


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 03:57

    xiiii... não funfou!
    Obrigado Criquio!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8068
    Registrado : 05/11/2009

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Alexandre Neves 30/9/2012, 10:48

    Bom dia,
    utilize
    DELETE Cadastros.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Condição
    DELETE Serviço.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Condição
    DELETE Serviço.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Condição


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 19:17

    Olá criquio e Alexandre!
    Resultou na seguinte mensagem:
    O campo especificado 'Pessoa' pode se referir a mais de uma tabela relecionada na cláusula FROM da instrução SQL.
    Eis o procedimento completo:
    ________________________________________
    Private Sub Comando37_Click()
    On Error GoTo Err_Comando37_Click

    If IsNull(Me.Código) Then
    MsgBox "Você não escolheu nenhum cliente!", vbQuestion, "Aviso"
    Exit Sub
    ElseIf MsgBox("Tem certeza que deseja excluir este cliente?" _
    & vbCr & vbCr & "Ao excluir este cliente, todos os serviços cadastrados para ele" _
    & vbCr & vbCr & "também serão excluídos.", vbYesNo + vbQuestion, "Confirmar") = vbYes Then
    'CurrentDb.Execute "DELETE * FROM Cadastros WHERE Pessoa='" & Me.Pessoa & "'"
    'CurrentDb.Execute "DELETE * FROM Cadastros INNER JOIN Serviço AND Compromisso WHERE Código=" & Me.Código & ""

    CurrentDb.Execute "DELETE Cadastros.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE Serviço.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE Compromisso.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Pessoa='" & Me.Pessoa & "'"

    DoCmd.RunCommand acCmdRefreshPage
    MsgBox "Cliente excluído com sucesso!", vbInformation, "Aviso"
    Form_Exclusão.Requery
    Else
    Me.Pessoa.Visible = False
    Me.Código.Visible = False
    Me.Localidade.Visible = False
    Me.Bairro.Visible = False

    Exit_Comando37_Click:
    Exit Sub
    Err_Comando37_Click:
    MsgBox "O cliente não foi excluído!", vbInformation, "Falha"
    Resume Exit_Comando37_Click
    End If
    End Sub
    ________________________________________
    Dentro das tabelas:
    CADASTRO
    Código_____login_____Data_____Pessoa(chave)
    1__________paulo_____xxxx_____José

    COMPROMISSO (CODGerado nunca se repete, mas a Pessoa sim)
    Código_____login_____CODGerado(chave)_____Pessoa_____opCaso
    1__________paulo_____3333_________________José_______Inativo
    2__________paulo_____4444_________________José_______Inativo
    3__________paulo_____5555_________________José_______Ativo

    SERVIÇO (CODGerado se repete junto com a Pessoa)
    Código_____login_____CODGerado_____Pessoa
    1__________paulo_____3333__________José
    2__________paulo_____3333__________José
    3__________paulo_____3333__________José
    4__________paulo_____4444__________José
    5__________paulo_____4444__________José
    _________________________________________________________
    Viu como José ficou interligado nas três tabelas?
    Através da exclusão da Pessoa em Cadastros, eu deverei programar a exclusão do Compromisso, pois se foi feito um Serviço no mesmo CODGerado de Compromisso, a Pessoa em Serviço deverá ser excluída. Somente em serviço a exclusão será individual.
    Tá me matando!
    Obrigado amigos.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8068
    Registrado : 05/11/2009

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Alexandre Neves 30/9/2012, 19:30

    Tente
    CurrentDb.Execute "DELETE Cadastros.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Cadastro.Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE Serviço.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Cadastro.Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE Compromisso.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Cadastro.Pessoa='" & Me.Pessoa & "'"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 19:44

    Olá Alexandre...
    A mensagem que aparece agora é:
    "Parâmetros insuficientes. Era esperado 1"
    Nossa...
    Obrigado!
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 19:54

    Desculpe-me aí Alexandre.
    Tinha um erro... Faltou "s" em Cadastro's'
    -----
    Está excluíndo somente em Cadastros e continua a mesma Pessoa em Compromisso e Serviço... rsrs
    -----
    Valeu!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8068
    Registrado : 05/11/2009

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Alexandre Neves 30/9/2012, 19:58

    Tente
    CurrentDb.Execute "DELETE Cadastros.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Cadastros.Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE Serviço.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Serviço.Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE Compromisso.* FROM (Cadastros INNER JOIN Serviço ON Cadastros.Pessoa=Serviço.Pessoa) INNER JOIN Compromisso ON Serviço.Pessoa=Compromisso.Pessoa WHERE Compromisso.Pessoa='" & Me.Pessoa & "'"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 20:20

    Ainda só exclui em Cadastros...
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8068
    Registrado : 05/11/2009

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Alexandre Neves 30/9/2012, 21:02

    Tente
    CurrentDb.Execute "DELETE * FROM Cadastros WHERE Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE * FROM Serviço WHERE Pessoa='" & Me.Pessoa & "'"
    CurrentDb.Execute "DELETE * FROM Compromisso WHERE Pessoa='" & Me.Pessoa & "'"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 21:38

    Só excluir em Cadastros...
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8068
    Registrado : 05/11/2009

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Alexandre Neves 30/9/2012, 21:45

    Disponibilize as tabelas


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 21:59

    Obrigado Alexandre...
    "guenta" aí, pois tá muito pesado!
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 22:45

    Olá Alexandre...
    Tudo consiste em criar um Cadastro em clientes, depois criar um Compromisso e só depois criar um Serviço.
    Valeu cara!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8068
    Registrado : 05/11/2009

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Alexandre Neves 30/9/2012, 22:58

    Precisava de ajuda para apagar registos. Agora, fala em acrescentar registos.
    Explique o que pretende e disponibilize parte da bd adequada


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 23:20

    Uai sô... não entendi...
    Para vc testar a exclusão, vc terá que adicionar algo... certo?
    Então... Para adicionar vc tem que abrir Form Clientes e cadastrar um cliente,
    na mesma janela tem um botão |COMPROMISSO|, CLIQUE NELE PARA ADICIONAR UM Compromisso, fechar compromisso, na mesma janela cliente clique no botão |CRIAR SERVIÇO|, através do codigo criado em compromisso (combox) e crie um Serviço...
    Pronto!
    Feche Form Clientes e abra Form Exclusão, escolha o cliente e clique no botão |EXCLUIR|.
    Tá aí... eu pretendo EXCLUIR!
    O que vc achou que era, Alexandre? Boiei geral...
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 30/9/2012, 23:21

    Será que eu enviei o arquivo errado... to baixando pra ver o que eu enviei... pera um pouco...
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 1/10/2012, 04:34

    Ô gente... socorro!
    Access365
    Access365
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 288
    Registrado : 09/07/2012

    [Resolvido]Excluir registros em três tabela relacionadas via VBA Empty Re: [Resolvido]Excluir registros em três tabela relacionadas via VBA

    Mensagem  Access365 1/10/2012, 05:28

    Resolvi colocando: DoCmd.RunSQL em vez de CurrentDb.Execute
    e optando pelo SIMPLES, conforme o amigo Alexandre:

    DoCmd.RunSQL "DELETE * FROM Serviço WHERE Pessoa='" & Me.Pessoa & "'"
    DoCmd.RunSQL "DELETE * FROM Compromisso WHERE Pessoa='" & Me.Pessoa & "'"
    DoCmd.RunSQL "DELETE * FROM Cadastros WHERE Pessoa='" & Me.Pessoa & "'"

    Valeu criquio e Alexandre, Luz e Paz pra vocês!

      Data/hora atual: 26/1/2022, 22:30