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


2 participantes

    [Resolvido]Exclusão x Campo Utilizado em outra tabela

    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Exclusão x Campo Utilizado em outra tabela

    Mensagem  vinicius.anna 10/6/2013, 18:17

    Boa tarde

    Em meu sistema tenho alguns campos relacionados. A integridade referencial está OK, porém, omito todos os retornos do access e apresento minhas mensagens tratadas. Na rotina de exclusão uso o código abaixo:

    Código:

    On Error GoTo ErrorHandler
        If IsNull(Me!Convenio) Then Exit Sub
            If MsgBox("Confirma a Exclusão do Convênio:" & vbCrLf & vbCrLf & Me!Convenio, vbQuestion + vbYesNo, "Exclusão...") = vbNo Then Exit Sub
                DoCmd.SetWarnings False
                CurrentDb.Execute "Delete * From tb_Convenios Where Convenio= '" & Me!Convenio & "'"
                DoCmd.SetWarnings True
                DoCmd.ShowAllRecords
                Me.Listagem.Requery
                DoCmd.GoToRecord , , acNewRec
                DoCmd.RunCommand acCmdRefresh
                Me!Convenio.SetFocus
    End If

    ErrorHandlerExit:
     Exit Sub

    ErrorHandler:
     If err = 3021 Then ' Sem registro corrente
        Resume Next
     Else
        MsgBox "Erro Nº: " & err.Number & "; Descrição: " & err.Description
        Resume ErrorHandlerExit
     End If




    Esta rotina funciona perfeitamente, porém, quando o convenio X é usado na tabela Pacientes, por exemplo, não apresento mensagem de erro, mas o registro do convenio X não é excluído. Alguém tem alguma dica de como posso antes de iniciar a exclusão indicar para o usuário que o registro não será excluido por estar em uso em outra tabela?

    Att. Vinicius
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  Alexandre Neves 10/6/2013, 18:40

    Tente detectar qual o erro na situação que pretende dar mensagem. Com o código de erro, coloque-o no ErrorHandler:


    .................................................................................
    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
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  vinicius.anna 10/6/2013, 18:52

    Alexandre

    Boa tarde

    Ai é que está, não dá erro, o sistema simula como se tivesse "excluido" porém, em virtude da integridade referencial, não exclui, o que é o correto, o que pensei foi em incluir um IF antes do bloco para verificar se o registro X existe na tabela pacientes...., é aqui que estou com dificuldades.....

    Att. Vinicius
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  Alexandre Neves 10/6/2013, 20:10

    On Error GoTo ErrorHandler
    If IsNull(Me!Convenio) Then Exit Sub
    if dcount("*","Pacientes","Convenio='" & Me!Convenio & "'")= 0 then
    msgbox "escreva a mensagem."
    exit sub
    else
    If MsgBox("Confirma a Exclusão do Convênio:" & vbCrLf & vbCrLf & Me!Convenio, vbQuestion + vbYesNo, "Exclusão...") = vbNo Then Exit Sub
    DoCmd.SetWarnings False
    CurrentDb.Execute "Delete * From tb_Convenios Where Convenio= '" & Me!Convenio & "'"
    DoCmd.SetWarnings True
    DoCmd.ShowAllRecords
    Me.Listagem.Requery
    DoCmd.GoToRecord , , acNewRec
    DoCmd.RunCommand acCmdRefresh
    Me!Convenio.SetFocus
    End If
    end if
    ErrorHandlerExit:
    Exit Sub

    ErrorHandler:
    If err = 3021 Then ' Sem registro corrente
    Resume Next
    Else
    MsgBox "Erro Nº: " & err.Number & "; Descrição: " & err.Description
    Resume ErrorHandlerExit
    End If


    .................................................................................
    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
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  vinicius.anna 10/6/2013, 21:18

    Alexandre

    Boa tarde

    Fiz o ajuste para:

    --- If DCount("*", "tb_Pacientes", "Id_ConvCons='" & Me!Id_Convenio & "'") = 0 Then ---

    Onde

    tb_Pacientes é a tabela de Pacientes;
    Id_CovCons - Código do convenio do paciente (tipo número);
    Id_Convenio - Código do convênio na tabela convênios (tipo número, relacionado com o Id_ConvCons);


    Ao fazer este ajuste o access (2007) retorna com o erro 2471 - A expressão que vc definiu como parametro da consulta retornou este erro id_concons.

    Tem idéia de onde possa estar errado.

    Obrigado pelo tempo dispensado.

    Att. Vinicius
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  Alexandre Neves 10/6/2013, 21:58

    Coloque
    If DCount("*", "tb_Pacientes", "Id_ConvCons=" & Me!Id_Convenio) = 0 Then

    -confirme o nome do campo se é Id_ConvCons ou Id_CovCons


    .................................................................................
    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
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  vinicius.anna 11/6/2013, 12:40

    Bom dia Alexandre,

    Corrigi meu erro no nome do campo, agora, sempre que vou excluir o sistema apresenta a mensagem "escreva a mensagem" e não entra na rotina de exclusão, independentemente do convenio ter sido usado ou não. Um detalhe que esqueci de mencionar é que o sistema está dividido em front end e back end. Tem idéia de onde possa estar errando?

    Obrigado mais uma vez pela atenção

    Att. Vinicius

    Código:

    On Error GoTo ErrorHandler
        If IsNull(Me!Convenio) Then Exit Sub
            If DCount("*", "tb_Pacientes", "Id_Convenio=" & Me!Id_Convenio) = 0 Then
                MsgBox "escreva a mensagem."
                Exit Sub
            Else
                If MsgBox("Confirma a Exclusão do Convênio:" & vbCrLf & vbCrLf & Me!Convenio, vbQuestion + vbYesNo, "Exclusão...") = vbNo Then Exit Sub
                    DoCmd.SetWarnings False
                    CurrentDb.Execute "Delete * From tb_Convenios Where Convenio= '" & Me!Convenio & "'"
                    DoCmd.SetWarnings True
                    DoCmd.ShowAllRecords
                    Me.Listagem.Requery
                    DoCmd.GoToRecord , , acNewRec
                    DoCmd.RunCommand acCmdRefresh
                    Me!Convenio.SetFocus
                End If
    ErrorHandlerExit:
     Exit Sub

    ErrorHandler:
     If err = 3021 Then ' Sem registro corrente
     Resume Next
     Else
     MsgBox "Erro Nº: " & err.Number & "; Descrição: " & err.Description
     Resume ErrorHandlerExit
     End If

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  Alexandre Neves 11/6/2013, 18:40

    Boa tarde,
    Nunca trabalhei com vínculos, pode ser aí a diferença. Aguardaremos que algum colega o possa ajudar.


    .................................................................................
    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
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  vinicius.anna 16/6/2013, 13:29

    Bom dia

    Obrigado pela dica e atenção, acabei resolvendo com o simples:
    If Not IsNull(DLookup("[Id_Convenio]", "tb_Pacientes", "[Id_Convenio] =" & Forms![frm_Convênios]!Id_Convenio)) Then
    MsgBox "Convênio Já Utilizado.", vbExclamation, "Impossível Excluir..."
    'Cancel = True
    Me.Undo


    Att. Vinicius

    Conteúdo patrocinado


    [Resolvido]Exclusão x Campo Utilizado em outra tabela Empty Re: [Resolvido]Exclusão x Campo Utilizado em outra tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 18:54