MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    avatar
    daygdson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 20/04/2017

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  daygdson em Seg 14 Ago 2017, 10:14 am

    Bom dia caros colegas do fórum, estou com um probleminha em uma exclusão baseada em consulta via código e gostaria do apoio de vocês. Aqui mesmo no fórum achei um tópico semelhante, porém, não consegui aplicar ao que eu quero fazer.
    Seguinte, tenho duas tabelas, cadastro de cliente e ordem de serviço, existem critérios para exclusão como por exemplo somente usuário com controle total poderá faze-lo, e gostaria que quando o usuário pressiona-se o botão excluir ele valida-se quem é o usuário logado, se for administrativo ele consulte na tabela processos se não há registros para este cliente, se tiver retorne mensagem : "Não é possível exclusão, existe registro para este cliente" e se não haver registro ele exclui-se e retornava mensagem: "Registro excluido com sucesso" e se não for usuário administrativo retorna-se a mensagem: "Somente usuário administrativo poderá excluir este registro". Acho que expliquei bem a situação...

    Abaixo o código que estou querendo implantar mas não estou tendo sucesso

    Private Sub btn_excluir_registro_Click()
    On Error GoTo TrataErro
    Dim Permissao As Boolean
    Dim ClienteSQL As String
    Dim ConsultaSQL As String

    MsgBox "Deseja realmente excluir este Cliente? Esta ação não terá mais volta !", vbYesNo, "Exclusão de registros"

    If vbYes = true

    Permissao = Forms![Form_Menu]![cxPermissao]

    If Permissao = -1 Then

     ConsultaSQL = ("SELECT * FROM TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = TAB_CLIENTES.IDCLIENTE")

     CurrentDb.Execute ConsultaSQL
     
       MsgBox "Existem Registros para este cliente, não será possível sua exclusão !", vbInformation, "Exclusão confirmada"
     
     Else
     
      ClienteSQL = "DELETE * FROM TAB_CLIENTES WHERE IDCLIENTE = " & Me.IDCLIENTE
      CurrentDb.Execute ClienteSQL
         
       MsgBox "Registro apagado com sucesso!", vbInformation, "Exclusão de registro"
         
     End If
     If Permissao = False Then
       
           MsgBox "Somente usuário administrativo poderá excluir este registro", vbInformation, "Exclusão de registro"
         
     End If
    End If

    SaiDaSub:
      Exit Sub

    TrataErro:
      If Err.Number = 2105 Then
      Exit Sub
      Else
          MsgBox "Exclusão cancelada", vbInformation, "Exclusão de registro"
      End If
      Resume SaiDaSub
    End Sub


    Me retorna erros do tipo 13, incompatíveis com a expressão, ou conforme vou alterando ele exclui todos os registros que não estão na tabela processos sendo que queria que exclui-se somente o cliente selecionado.

    ja tentei o seguinte codigo também no bloco If

    ClienteSQL = "Delete * From TAB_Clientes where not exists (Select * From TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = TAB_CLIENTES.IDCLIENTE) O problema quando usei este código  excluiu todos os registros de clientes que não estavam na tabela processos e o que eu quero é excluir somente o cliente selecionado selecionado

    Estou errando em algum ponto que não enxergo, gostaria da análise dos experientes colegas para resolver mais essa bucha...rsr
    avatar
    daygdson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 20/04/2017

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty Re: [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  daygdson em Seg 14 Ago 2017, 10:48 am

    Fiz uma nova alteração no código ... kk consegui resultado somente na validação de usuário logado, se não for adm ele retorna a msg o resto não executou, e também não retornou erro.

    Private Sub btn_excluir_registro_Click()
    'On Error GoTo TrataErro
    Dim Permissao As Boolean
    Dim ClienteSQL As String
    'Dim ConsultaSQL As Integer
    'Dim Resp As Integer

    Permissao = Forms![Form_Menu]![cxPermissao]

    MsgBox "Deseja realmente excluir este Cliente? Esta ação não terá mais volta !", vbYesNo, "Exclusão de registros"

    If vbYes = True Then
    If Permissao = -1 Then

     ClienteSQL = "Delete * From TAB_CLIENTES WHERE idcliente= Me.IDCLIENTE  not exists(SELECT * FROM TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = TAB_CLIENTES.IDCLIENTE)" Aqui está o problema, quero deletar somente o cliente que não estiver na tabela processos
     
      CurrentDb.Execute ClienteSQL
     
     MsgBox "Registro apagado com sucesso!", vbInformation, "Exclusão confirmada"
     
     Else
         
      MsgBox "Existe registros para o cliente, não será possível sua exclusão!", vbInformation, "Exclusão de registro"
         
     End If
    End If
     If Permissao = False Then
       
          MsgBox "Somente usuário administrativo poderá excluir este registro", vbInformation, "Exclusão de registro"
         
     End If
    End Sub
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10604
    Registrado : 04/11/2009

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty Re: [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  JPaulo em Seg 14 Ago 2017, 1:05 pm

    Com apenas 2 IF`s

    Código:
    Permissao = Forms![Form_Menu]![cxPermissao]


     If Permissao = False Then
          MsgBox "Somente usuário administrativo poderá excluir este registro", vbInformation, "Exclusão de registro"
          Exit Sub
     End If
     
        If MsgBox("Deseja realmente excluir este Cliente? Esta ação não terá mais volta !", vbYesNo, "Exclusão de registros") = vbYes And Permissao = -1 Then
        ClienteSQL = "Delete * From TAB_CLIENTES WHERE idcliente= Me.IDCLIENTE and idcliente not in (SELECT IDCLIENTE FROM TAB_PROCESSOS)"
        CurrentDb.Execute ClienteSQL
            MsgBox "Registro apagado com sucesso!", vbInformation, "Exclusão confirmada"
            Exit Sub
        Else
            MsgBox "Existe registros para o cliente, não será possível sua exclusão!", vbInformation, "Exclusão de registro"
            Exit Sub
        End If
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Folder_announce_new Instruções SQL como utilizar...
    avatar
    daygdson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 20/04/2017

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty Re: [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  daygdson em Seg 14 Ago 2017, 1:26 pm

    Caro JPaulo, sempre vc...só que retornou o seguinte erro:

    Erro em tempo de execução 3061
    Parâmetros insuficientes. Eram esperados 1.

    Não excluiu o registro livre pra exclusão, e não retornou a mensagem de não ser possível exclusão para o cliente que tem vínculo em outra tabela. O que significa?
    avatar
    daygdson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 20/04/2017

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty Re: [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  daygdson em Qua 16 Ago 2017, 10:35 am

    Pessoal, ainda não consegui resolver este probleminha, o JPaulo me passou um código mas não está dando certo, se alguém tiver uma ideia... preciso que ele consulte uma tabela vinculada se existir registro para o cliente ele retorne uma mensagem, se não existir ele exclua o registro, então esta consulta que não estou conseguindo montar.
    Dilson
    Dilson
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty Re: [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  Dilson em Qua 16 Ago 2017, 3:20 pm

    Você seleciona por meio do método execute no entanto não faz checar por contagem, imprescindível nesse caso.

    Vou tratar somente da exclusão, vendo ser o seu problema. Veja como eu faria:

    'Declaro um recordset
    Dim rs As DAO.Recordset
    'Carrego meu recordset com a query desejada
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = " & Me.IDCLIENTE)
    'Vou checar se meu recordset possui registros. Vejo se é maior que zero
    If rs.RecordCount > 0 Then
            'Se estou aqui é porque existem registros
            MsgBox "Existem Registros para este cliente, não será possível sua exclusão !", vbInformation, "Exclusão confirmada"
    Else
           'Senão estarei aqui. inexistindo registros
            CurrentDb.Execute "DELETE * FROM TAB_CLIENTES WHERE IDCLIENTE = " & Me.IDCLIENTE
            MsgBox "Registro apagado com sucesso!", vbInformation, "Exclusão de registro"
    End If
    'Fechar recordset
    rs.Close
    'Liberar memória
    Set rs = Nothing


    Implemente no escopo que montou.
    avatar
    daygdson
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 20/04/2017

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty Re: [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  daygdson em Qua 16 Ago 2017, 6:24 pm

    Dilson, obrigado pela ajuda, funcionou perfeitamente, em junção com o código do JPaulo, ficou ótimo, exatamente como eu queria

    Ficou assim:

    Private Sub btn_excluir_registro_Click()

    Dim Permissao As Boolean
    Dim ConsultaSQL As DAO.Recordset

    Permissao = Forms![Form_Menu]![cxPermissao]

    If Permissao = False Then
         MsgBox "Somente usuário administrativo poderá excluir este registro", vbInformation, "Exclusão de registro"
         Exit Sub
    End If

    If MsgBox("Deseja realmente excluir este Cliente? Esta ação não terá mais volta !", vbYesNo, "Exclusão de registros") = vbYes And Permissao = -1 Then
         
         Set ConsultaSQL = CurrentDb.OpenRecordset("SELECT * FROM TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = " & Me.IDCLIENTE)

       If ConsultaSQL.RecordCount > 0 Then
         
            MsgBox "Existem registros abertos para este cliente, não será possível sua exclusão.", vbInformation, "Exclusão Cancelada"
     
       Else

            CurrentDb.Execute "DELETE * FROM TAB_CLIENTES WHERE IDCLIENTE = " & Me.IDCLIENTE
            MsgBox "Registro apagado com sucesso!", vbInformation, "Exclusão confirmada"
           
            DoCmd.RefreshRecord
            DoCmd.GoToRecord , , acNewRec

        End If
           
            ConsultaSQL.Close
           
            Set ConsultaSQL = Nothing
           
           
    End If
       
    End Sub


    Resolvidíssimo...Obrigado a todos que se dispuseram em solucionar este tópico. Caso Resolvido !
    Dilson
    Dilson
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg Empty Re: [Resolvido]Consulta exclusão - com validação de permissão, registro aberto e retorno de msg

    Mensagem  Dilson em Qui 17 Ago 2017, 10:17 am

    Também agradecemos por ter exposto a solução final.

    Até a próxima !

      Data/hora atual: Seg 19 Out 2020, 4:59 pm