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

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    avatar
    ruvierijunior
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 21
    Registrado : 10/02/2014

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  ruvierijunior 7/8/2018, 15:19

    Bom dia Meus amigos!

    Preciso de uma ajuda de vocês, Estou com um probleminha nessa consulta abaixo (Destacado):

    INSERT INTO Fretes ( IdCliente, Criado, DataColeta, Placa, Motorista, Valor, EndereçoColeta, EndereçoEntrega, IdFrete, IdSubmissions )
    SELECT Left([Submissions]![Solicitante],10) AS SolicitanteAtual, Submissions.[Submission Date], Submissions.[Data Frete:], Submissions.[Veículo:], Submissions.[Motorista:], Submissions.[Valor (R$)], Submissions.[Empresa de Coleta], Submissions.[Empresa de Entrega:], "FRT" & Format(Right(DMax("IdFrete","Fretes"),7)+1,"0000000") AS FreteId, Submissions.[Submission ID]
    FROM Submissions
    WHERE (((Exists (SELECT 1 FROM [Fretes] WHERE [Fretes].[IdSubmissions]=[Submissions].[Submission ID]))=False));



    O Nesse modelo ele fará a inclusão do IdFrete apenas para a primeira linha e copiará o mesmo Id para as demais linhas, gostaria que fosse criado um IdFrete sequencial para cada linha inserida, como faço isso meus amigos?
    caiosouza
    caiosouza
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 05/12/2016

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Re: Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  caiosouza 8/8/2018, 17:52

    Boa tarde,

    Utilize estrutura de repetição:

    Exemplo:

    Código:
    Dim Cont As Integer, Max As Integer, IdFrete As String
    Max = 5 'Aqui vc define o numero limite de repetição
       
        For Cont = 1 To Max
            IdFrete = Format(Right(DMax("IdFrete", "Fretes"), 7) + Cont, "0000000")
            MsgBox "Seu IdFrte: " & IdFrete
        Next


    .................................................................................
    Caio Souza

    Engenheiro de Software
    avatar
    ruvierijunior
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 21
    Registrado : 10/02/2014

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Re: Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  ruvierijunior 8/8/2018, 19:50

    Boa tarde Caio!

    Obrigado pela ajuda. só pra ver se entendi certinho,  o "Max" vai ser a quantidade de linhas da consulta insert?

    Esse código é em VBA, certo? Estou fazendo isso em modo sql será que consigo aplicar lá?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Re: Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  Alexandre Neves 8/8/2018, 21:09

    Boa noite,

    Renomeie os campos de forma normalizada, sem espaços, sem caracteres especiais
    Tente
    INSERT INTO Fretes (IdCliente, Criado, DataColeta, Placa, Motorista, Valor, EndereçoColeta, EndereçoEntrega, IdFrete, IdSubmissions) SELECT Left(Solicitante,10) AS SolicitanteAtual, [Submission Date], [Data Frete:], [Veículo:], [Motorista:], [Valor (R$)], [Empresa de Coleta], [Empresa de Entrega:], 'FRT' & Format(Right(DMax('IdFrete','Fretes'),7)+1,'0000000') AS FreteId, [Submission ID] FROM Submissions WHERE Exists (SELECT 1 FROM Fretes WHERE IdSubmissions=[Submission ID]=False;


    .................................................................................
    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
    caiosouza
    caiosouza
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 05/12/2016

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Re: Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  caiosouza 8/8/2018, 21:56

    Boa tarde,

    @ruvierijunior, siga as dicas do @Alexandre Neves, é muito importante.

    Sobre a sua dúvida, vc pode fazer o inverso, vc pode inserir os registros a partir do VBA.
    E sim, o Max é a quantidade de registros que pretende inserir.
    Segue abaixo um exemplo ilustrativo:

    Código:
    Dim Cont As Integer, Max As Integer, IdFrete As String
    Max = 5 'Aqui vc define o numero limite de repetição
        
        For Cont = 1 To Max
            IdFrete = Format(Right(DMax("IdFrete", "Fretes"), 7) + Cont, "0000000")
            CurrentDb.Execute "SUA SQL"
        Next


    O CurrentDb.Execute tem a tarefa de executar uma consulta


    .................................................................................
    Caio Souza

    Engenheiro de Software
    avatar
    ruvierijunior
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 21
    Registrado : 10/02/2014

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Re: Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  ruvierijunior 15/8/2018, 04:53

    Prezados!

    Obrigado, pela ajuda consegui seguindo as dicas para fazer em vba!

    Alexandre Essa tabela esta vinculada por isso os nomes estão fora de padrão, mas valeu pela dica.

    Very Happy Very Happy Very Happy Laughing Laughing
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Re: Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  Alexandre Neves 15/8/2018, 06:13

    Bom dia,
    Faltou o "Resolvido"


    .................................................................................
    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

    Conteúdo patrocinado


    Incluir um ID Sequencial Alfanumérico a cada Inserção de linha Empty Re: Incluir um ID Sequencial Alfanumérico a cada Inserção de linha

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 10:33