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

    Atribuir Valor Chave Primaria ao Addnew no Recordset

    avatar
    Claudemir P
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 177
    Registrado : 27/06/2013

    Atribuir Valor Chave Primaria ao Addnew no Recordset Empty Atribuir Valor Chave Primaria ao Addnew no Recordset

    Mensagem  Claudemir P 8/2/2017, 03:40

    Código abaixo atribui sempre valor 1 ao invés de 2, 3, 4,... a medida que os registros são inclusos. Porém se clicar duas comando atribui o valor correto do campo chave primária, acredito que o problema é por que ao adicionar o campo ele não atualiza o valor do campo de numeração automática que é a chave primária. Alguma sugestão?
    Código:
    Public Function CaixCtrlHJ()
    Dim DB As DAO.Database
    Dim RSCC As DAO.Recordset
    Dim Sql_CaixCtrl As String

    Sql_CaixCtrl = "SELECT TbCaixCtrl.* FROM TbCaixCtrl;"

    Set DB = CurrentDb()
    Set RSCC = DB.OpenRecordset(Sql_CaixCtrl)

            With RSCC
            .MoveFirst
            .FindFirst "[Dat]=  #" & Format(Date, "mm/dd/yyyy") & "#"
                If .NoMatch Then
                    .AddNew
                    !Dat = Date
                    .Update
                End If
            CaixCtrlHJ = !CodCaixaCtrl
            End With
            RSCC.Close
            Set RSCC = Nothing
            DB.Close
            Set DB = Nothing
    End Function
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Atribuir Valor Chave Primaria ao Addnew no Recordset Empty Re: Atribuir Valor Chave Primaria ao Addnew no Recordset

    Mensagem  Noobezinho 8/2/2017, 09:55

    Claudemir

    Repetir 3 vezes a mesma dúvida, não irá fazer com que os membros te atendam prontamente e

    está transgredindo a regras do fórum, pelo que parece, não teve paciência em lê-las

    Então, aproveite, e leia, porque se transgredir mais uma vez, serei obrigado a baixar tua reputação no fórum:


    1. Tenha paciência com quem coloca aqui as suas duvidas.
    2. Clareza nos títulos dos tópicos e duvidas, evite a linguagem MSN.
    3. Não colocar diversas vezes a mesma dúvida.
    4. Explicar detalhadamente o problema e informar a versão do seu Office + Sistema Operativo.
    5. Retorne sempre se deu certo, esse retorno é muito importante.
    6. Respeite toda a equipe Staff e demais membros deste fórum.
    7. Use sempre o botão Busca, sempre que tiver uma dúvida e antes de abrir tópicos.
    8. Não usar palavras como "Urgente". O fórum é livre e ninguém é obrigado a responder com urgência.
    9. A publicidade é proíbida e só pode ser feita pelo Administrador ou depois de aprovada pelo Administrador.
    10. Se o seu tópico não for respondido, tem o direito de fazer um Up ao final de 24horas!
    11. A colocação de Códigos ou Exemplos, devem constar sempre os créditos de quem o elaborou.
    12. Fale, não GRITE!   Só letras Maiúsculas, na Internet é o mesmo que gritar!
    13. É proibido tirar duvidas nas Salas de Repositório, devem abrir um novo tópico nas salas de duvidas, relacionando o Exemplo em causa.
    14. É proibido adicionar links externos nos tópicos, que redirecionem para outros sites ("backlinks").
    15. É permitido adicionar links externos, nos códigos VBA dentro das Base de Dados.


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    cleverson_manaus
    cleverson_manaus
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1012
    Registrado : 23/09/2011

    Atribuir Valor Chave Primaria ao Addnew no Recordset Empty Re: Atribuir Valor Chave Primaria ao Addnew no Recordset

    Mensagem  cleverson_manaus 9/2/2017, 11:50


    Bom dia Claudemir,


    Antes concordo com o Noob, assim vc "polue" nosso sistema de busca do forum.

    Vc pode fazer assim acrescente a seguinte linha no seu código no método AddNew, ficando assim:


    Código:

              If .NoMatch Then
                    .AddNew
                    !seucampochaveprimaria = Nz(DMax("seucampochaveprimaria", "suatabela"), 0) + 1
                    !Dat = Date
                    .Update
                End If


    Abraços,


    .................................................................................
    afro

    "É fazendo que se aprende a fazer aquilo que se deve aprender a fazer."(Aristóteles)
    - Dúvida resolvida!!! Marcar o tópico como resolvido!!!
    avatar
    Claudemir P
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 177
    Registrado : 27/06/2013

    Atribuir Valor Chave Primaria ao Addnew no Recordset Empty Re: Atribuir Valor Chave Primaria ao Addnew no Recordset

    Mensagem  Claudemir P 11/2/2017, 00:35

    Boa noite Noobezinho, desculpa demora em responder, mas acho que houve algum engano, não me lembro um novo tópico para a mesma dúvida, pode citar o link desta dúvida já aberta?


    cleverson_manaus, obrigado pela resposta mas não resolveu, eu encontrei uma solução paliativa porém não definitiva, foi repetir a busca do registro antes de atribuir a variável o valor do campo, conforme esta no código abaixo acredito que deve existir uma solução que não precise repetir a busca através do find, já que como código mostra eu não movi a seleção entre os registros.

    Grato a todos até momento.

    Código:
    Public Function CaixCtrlHJ()
    Dim DB As DAO.Database
    Dim RSCC As DAO.Recordset
    Dim Sql_CaixCtrl As String

    Sql_CaixCtrl = "SELECT TbCaixCtrl.* FROM TbCaixCtrl;"

    Set DB = CurrentDb()
    Set RSCC = DB.OpenRecordset(Sql_CaixCtrl)

            With RSCC
            .MoveFirst
            .FindFirst "[Dat]=  #" & Format(Date, "mm/dd/yyyy") & "#"
                If .NoMatch Then
                    .AddNew
                    !Dat = Date
                    .Update
                    .FindFirst "[Dat]=  #" & Format(Date, "mm/dd/yyyy") & "#"
                End If
            CaixCtrlHJ = !CodCaixaCtrl
            End With
            RSCC.Close
            Set RSCC = Nothing
            DB.Close
            Set DB = Nothing
    End Function

    Conteúdo patrocinado


    Atribuir Valor Chave Primaria ao Addnew no Recordset Empty Re: Atribuir Valor Chave Primaria ao Addnew no Recordset

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 02:50