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]Cancelar registro sem salvar

    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Cancelar registro sem salvar Empty Cancelar registro sem salvar

    Mensagem  Chamon Consultoria 18/6/2013, 17:36

    Boa tarde!

    Mais uma vez, preciso da ajuda de vocês! Pesquisei no fórum, mas não encontrei algo que poderia resolver esse problema:

    Bd em access 2007.

    O bd possui o formulário Frm_Clientes. Para evitar registros em duplicidade coloquei o seguinte código no botão "Adicionar Registro":


    If (Not IsNull(DLookup("[xNome]", "Tbl_Clientes", _
        "[xNome] & [numDoc] & [IE] LIKE'" & Me!xNome & Me!numDoc & Me!IE & "'"))) Then
           
        MsgBox "O Cliente já está cadastrado.", _
        vbInformation, "Cliente Cadastrado"
        End If
        If MsgBox("Todos os dados estão corretos? ", vbYesNo + vbQuestion, "Confirmação") = vbYes Then
        DoCmd.GoToRecord , , acNewRec
       
        End If


     Ao clicar no botão Adicionar Registro,  quando há um registro em duplicidade, o  sistema acusa a mensagem "O Cliente já está Cadastrado" apenas com o botão "OK" para confirmar.  Em seguida aparece uma nova mensagem perguntando se os dados estão corretos (sim ou não).
    Gostaria que em caso de duplicidade houvesse uma opção para cancelar o registro atual, mas sem perder o código (autonumeração) desse registro. Por exemplo:
    Estou no registro 17.
    Cadastro o cliente "Teste".
    Clico em adicionar registro e o sistema acusa que esse cliente já está cadastrado e me dá a opção para cancelar ou desistir do registro sem salvá-lo. De forma que o registro 17 continue disponível e sem dados para um novo cadastro.
    E também, nesse caso, sendo cancelado o registro, não apareça a pergunta da outra MsgBox ("Todos os dados estão corretos? ")...


    Desde já agradeço!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  JPaulo 18/6/2013, 18:00

    If (Not IsNull(DLookup("[xNome]", "Tbl_Clientes", _
        "[xNome] & [numDoc] & [IE] LIKE'" & Me!xNome & Me!numDoc & Me!IE & "'"))) Then
            
        MsgBox "O Cliente já está cadastrado.", _
        vbInformation, "Cliente Cadastrado"
        Exit Sub
        Else
        If MsgBox("Todos os dados estão corretos? ", vbYesNo + vbQuestion, "Confirmação") = vbYes Then
        DoCmd.GoToRecord , , acNewRec
        End If


    .................................................................................
    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]Cancelar registro sem salvar Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Cancelar registro sem salvar Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Cancelar registro sem salvar Folder_announce_new Instruções SQL como utilizar...
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  Chamon Consultoria 19/6/2013, 03:38

    Muito obrigado JPaulo! Apenas acrescentei um End If, pois o sistema acusou a falta dele.

    If (Not IsNull(DLookup("[xNome]", "Tbl_Clientes", _
        "[xNome] & [numDoc] & [IE] LIKE'" & Me!xNome & Me!numDoc & Me!IE & "'"))) Then
           
        MsgBox "O Cliente já está cadastrado.", _
        vbInformation, "Cliente Cadastrado"
        Exit Sub
        Else
        If MsgBox("Todos os dados estão corretos? ", vbYesNo + vbQuestion, "Confirmação") = vbYes Then
        DoCmd.GoToRecord , , acNewRec
        End If
        End If

    Fiquei com dúvidas sobre a validação dos registros, pois fiz testes aleatórios com diversas combinações, mas sempre com um dos campos em duplicidade e por ter apenas um dos campos em duplicidade o sistema acusa. Para o cadastro de Clientes tá ótimo.
    Mas gostaria de incluir essa validação na parte financeira, no cadastro de contas a pagar, onde por exemplo tenham apenas três campos: Nº_Doc, Data_Emissao e Fornecedor. Nesse caso o sistema só poderia acusar duplicidade se todos os campos fossem iguais em um único registro. Detalhando:

    A pessoa faz o seguinte cadastro no Registro 10: Nº_Doc=587 Data_Emissão=18/06/2013 Fornecedor=Teste
    No Registro 11:  Nº_Doc=590 Data_Emissão=18/06/2013 Fornecedor=Teste (o Sistema não poderia acusar duplicidade, pois o Nº_Doc não é o repetido, embora seja do mesmo fornecedor e com a mesma data do registro 10.)
    Daí por alguma falta de atenção essa pessoa faz o mesmo cadastro no registro 10 no registro 13: Nº_Doc=587 Data_Emissão=18/06/2013 Fornecedor=Teste (Aqui sim o sistema deveria acusar a duplicidade).

    É possível fazer esse tipo de validação? Se sim, como ficaria?

    Mais uma vez, muito obrigado!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  JPaulo 19/6/2013, 09:13

    Faça o teste por favor;

    If (Not IsNull(DLookup("[Nº_Doc]", "Tbl_Clientes", "[Nº_Doc]=" & Me!Nº_Doc & " AND [Data_Emissão]= #" & Me!Data_Emissão & "# AND [Fornecedor]='" & Me!Fornecedor & "'"))) Then


    .................................................................................
    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]Cancelar registro sem salvar Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Cancelar registro sem salvar Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Cancelar registro sem salvar Folder_announce_new Instruções SQL como utilizar...
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  Chamon Consultoria 19/6/2013, 14:24

    JPaulo, bom dia!

    Não funcionou. Lembrando que o comando está no botão adicionar registro. Faça o teste abrindo o arquivo com shift e sem shift.
    Segue anexo.

    Abraço
    Anexos
    [Resolvido]Cancelar registro sem salvar AttachmentMODELO TESTE.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (217 Kb) Baixado 11 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  JPaulo 19/6/2013, 15:40

    Veja;

    Private Sub Comando60_Click()
    Me.Data_emissao.SetFocus

    If DCount("*", "Tbl_Vendas", "[Nº_Documento]=" & Me.Nº_Documento.Value & " AND [Tipo]='" & Me.Comb_Tipo.Value & "' AND [Data_Emissao]=#" & Format(Me.Data_emissao.Value, "dd-mm-yyyy") & "# AND [Código_Cliente]=" & Val(Me.Comb_Cliente.Column(0)) & "") > 0 Then
        MsgBox "O Documento já está cadastrado.", vbCritical, "Erro..."
           Exit Sub
           Else
        If MsgBox("Todos os dados estão corretos ? ", vbYesNo + vbQuestion, "Confirmação") = vbYes Then
            DoCmd.GoToRecord , , acNewRec
           Else
        Exit Sub
    End If
    End If
    End Sub
    Anexos
    [Resolvido]Cancelar registro sem salvar AttachmentMODELO TESTE_OLD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (177 Kb) Baixado 19 vez(es)


    .................................................................................
    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]Cancelar registro sem salvar Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Cancelar registro sem salvar Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Cancelar registro sem salvar Folder_announce_new Instruções SQL como utilizar...
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  Chamon Consultoria 20/6/2013, 02:38

    JPaulo,

    o sistema está muito instável. Fiz diversos testes. Às vezes o sistema acusa a duplicação corretamente (de todos os campos iguais), outras vezes ele não acusa nada (mesmo sendo todos os campos iguais), em outras, mesmo com alguns dados diferentes ele acusa a duplicidade.
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  Chamon Consultoria 23/6/2013, 20:58

    JPaulo,

    encontrei um novo código para validar os registros. Fiz algumas adaptações e está funcionando conforme minha necessidade.
    Mais uma vez, obrigado!

    Segue solução:

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
    On Error Resume Next
         Dim db As DAO.Database, rst As DAO.Recordset
           Dim strNome As String, strSaveName As String
             Set db = CurrentDb()
               Set rst = db.OpenRecordset("select * from Tbl_Compras order by Tipo, Nº_Documento, Data_emissao, Código_Fornecedor ASC;")
                 If rst.BOF And rst.EOF Then
                   MsgBox "Não existem registros..."
                     Else
                       rst.MoveFirst
                         Do Until rst.EOF
                          strDupName = rst.Fields("Tipo") & rst.Fields("Nº_Documento") & rst.Fields("Data_emissao") & rst.Fields("Código_Fornecedor")
                        If strDupName = strSaveName Then
                       MsgBox "Atenção! Documento já Cadastrado! Esse Novo Registro será excluído!", vbInformation + vbOKOnly, " Alerta!"
                       rst.Delete
                       Me.Comb_Tipo.SetFocus
                      DoCmd.GoToRecord , , acNewRec
                    Else
                  strSaveName = rst.Fields("Tipo") & rst.Fields("Nº_Documento") & rst.Fields("Data_emissao") & rst.Fields("Código_Fornecedor")
                End If
              rst.MoveNext
            Loop
          Set rst = Nothing
        Set db = Nothing
      End If

    Conteúdo patrocinado


    [Resolvido]Cancelar registro sem salvar Empty Re: [Resolvido]Cancelar registro sem salvar

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 15/5/2024, 07:43