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]ID personalizada

    avatar
    lepedesa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 04/06/2013

    [Resolvido]ID personalizada Empty [Resolvido]ID personalizada

    Mensagem  lepedesa 15/8/2014, 22:30

    Olá a todos. Depois de muito pesquisar no fórum, consegui entender e aplicar uma numeração ao campo ID (formato texto) sequencial.

    Tenho um formulário com o campo REQ. Após digitar o número da REQ, é criado uma ID sequencial pelo código:
    Me.ID = Nz(DMax("ID", "PEDIDOS"), 0) + 1

    Fica show, pois a ID não pula.

    Agora preciso que esta numeração fique no formato X-YYYYYYYYYYYYY , Onde:

    X = Código da Filial (campo FILIAL)
    Y = ID com 13 dígitos

    Exemplos:

    Filial = 1, ficaria as IDs: 1-0000000000001 / 1-0000000000002 ....
    Filial = 2, ficaria as IDs: 2-0000000000001 / 2-0000000000002 ....

    Caso eu coloque Me.ID = Me.FILIAL & "-" & Nz(DMax("ID", "PEDIDOS"), 0) + 1 no primeiro lançamento ele faz certo, mas depois não mais.

    Agradeço ajudas.


    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7700
    Registrado : 15/03/2013

    [Resolvido]ID personalizada Empty Re: [Resolvido]ID personalizada

    Mensagem  Alvaro Teixeira 16/8/2014, 10:51

    Olá,
    Experimente assim:

    Me.FILIAL & "-" & Nz(Right(DMax("ID", "PEDIDOS"), 13), 0) + 1

    Caso nao funcione, então assim:

    Me.FILIAL & "-" & Nz(CInt(Right(DMax("ID", "PEDIDOS"), 13)), 0) + 1

    Abraço
    avatar
    lepedesa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 04/06/2013

    [Resolvido]ID personalizada Empty Re: [Resolvido]ID personalizada

    Mensagem  lepedesa 16/8/2014, 16:16

    olá amigo,

    testei as 2 sugestões e na primeira, continua só funcionando pro 1º lançamento. Ele lança 1-1, mas ao lançar o segundo a id fica 1- onde deveria ficar 1-2. Na segunda sugestão o formulário fica travado ao digitar o número da REQ. O cursor fica travado no campo REQ e trava o formulário só conseguindo fechá-lo pelo gerenciador de tarefas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7700
    Registrado : 15/03/2013

    [Resolvido]ID personalizada Empty Re: [Resolvido]ID personalizada

    Mensagem  Alvaro Teixeira 18/8/2014, 14:49

    Olá,

    Parece que a questão está na falta dos "zeros":

    Fiz um pequeno teste assim:

    Me.CodGerado = Me.FILIAL & "-" & Format(Nz(DMax("ID", "PEDIDOS"), 0) + 1, "0000000000000")

    Experimente a ver se é isto que pretende.
    Atenção que troquei Me.ID  por   Me.CodGerado
    Tente criar um campo CodGerado para teste.
    Abraço

    Nota: Segue abaixo exemplo utilizado para teste

    ID_PEDIDO.zip


    Última edição por ahteixeira em 13/6/2015, 12:19, editado 1 vez(es)
    avatar
    lepedesa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 04/06/2013

    [Resolvido]ID personalizada Empty Re: [Resolvido]ID personalizada

    Mensagem  lepedesa 18/8/2014, 20:06

    Amigão, sua sugestão não resolveu de imediato a questão mas me fez refletir e achar a solução. Quando sugeriu em utilizar o campo ID para gerar outro campo personalisado eu saquei que poderia estar aí uma manobra que daria certo. Veja o que fiz:

    a) Criei um campo texto CODUNICO e passei este campo pra chave primária.
    b) Alterei o campo ID, tirando de chave primaria, deixando como texto e sem indexação (permitindo dados duplicados, pois sua função é de apenas gerar um contador progressivo.)
    c) no campo REQ, no evento ao sair:

    Me.ID = Nz(DMax("ID", "PEDIDOS"), 0) + 1
    Me.CODUNICO = Me.CODLOJA & "-" & Format(Nz(DMax("ID", "PEDIDOS"), 0) + 1, "0000000000000")

    Alterei o controle que antes pegava do campo FILIAL para o CODLOJA (pois o CODLOJA é único de cada loja e o FILIAL refere-se a loja que deu origem ao pedido e considerando que o cliente pode encomendar em uma loja e retirar em outra, com o CODLOJA a numeração gerada nunca coincidirá quando os dados das lojas forem integrados).

    BINGO!

    Sua sugestão com o CodGerado me fez repensar a estrutura e chegar a esta solução.

    O que achou? Pois minha próxima etapa agora é a integração dos dados entre Filial e matriz.

    Muito Obrigado.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7700
    Registrado : 15/03/2013

    [Resolvido]ID personalizada Empty Re: [Resolvido]ID personalizada

    Mensagem  Alvaro Teixeira 18/8/2014, 22:39

    Olá, fico feliz por ter novas ideias e ajudar noutras questões.

    Na minha opiniao o erro dava-se talvez por falta da formatação (não estava a colocar os "zeros" desejados) e em especial porque pelo que me apercebi o ID é o mesmo campo para a consulta gerar o numero e ID para registo novo. Como ainda não tinha numero atribuido por essa razão ia buscar o ultimo + 1.
    No exemplo que disponibilizei ao escolher a filia (já adicionava um registo) e coloquei ao alterar gerar o número (aí sim já tinha mais um registo para funcionar correctamente)

    Quanto à questão abordada, talvez seja melhor criar um tópico novo.
    No entanto se pretende obter uma opinião de "sincronização de dados" entre a Sede e a Filial, será melhor descrever o que pretende fazer com aplicação (ex: vendas; requisições;) em especial qual a estrutura de dados e os que se pretende sincronizar ou integrar.

    Abraço

    Se este tópico está concluído, não se esqueça de dar o tópico como resolvido, veja link abaixo:
    http://maximoaccess.forumeiros.com/t860-resolucao-de-topicos
    avatar
    lepedesa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 04/06/2013

    [Resolvido]ID personalizada Empty Re: [Resolvido]ID personalizada

    Mensagem  lepedesa 19/8/2014, 02:19

    sim. com certeza. acho interessante receber idéias pra poder direcionar melhor o projeto. Se não fosse sua dica ainda estaria quebrando a cabeça. Estou agora trabalhando neste questão da integração dos dados entre lojas e havendo dúvidas recorrerei a este espaço extraordinário. Postarei meu trabalho no sentido de buscas por melhorias.

    Muito obrigado. Estou finalizando o tópico.

    Um grande abraço.

    Leandro.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7700
    Registrado : 15/03/2013

    [Resolvido]ID personalizada Empty Re: [Resolvido]ID personalizada

    Mensagem  Alvaro Teixeira 19/8/2014, 08:07

    Olá, obrigado pelo retorno.
    Qualquer coisa estamos cá.
    Abraço

      Data/hora atual: 28/11/2022, 02:02