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

    [Resolvido]Calculo entre intervalo de datas

    avatar
    wejunio
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/10/2012

    [Resolvido]Calculo entre intervalo de datas Empty [Resolvido]Calculo entre intervalo de datas

    Mensagem  wejunio 7/4/2021, 04:46

    Boa noite, Srs.

    Estou precisando de uma ajuda. Já tentei de varias formas mas não consegui resolver o problema.

    Preciso calcular diferença entre as datas caso o material seja igual. ID ( 1 | 4 | 6 | 8 ). Caso não exista o material cadastrado retorna Dias = 0.
    Data de entrada - Data de entrada anterior

    ID       Material        Data_Entrada       Nota_Fiscal     Skip_status          Dias
    1     20.001.622.3     05/01/2021          000555732     APROVADO         0
    2     40.780.430.3     06/01/2021          000555732     APROVADO         0
    3     42.800.022.3     06/01/2021          000555732     APROVADO         0
    4     20.001.622.3     08/01/2021          000555809     APROVADO         3
    5     46.700.006.3     11/01/2021          000555733     APROVADO         0
    6     20.001.622.3     17/01/2021          000555811     APROVADO         9
    7     46.700.757.3     18/01/2021          000555732     APROVADO         0
    8     20.001.622.3     23/01/2021          000555883     APROVADO         6
    Maicon
    Maicon
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 255
    Registrado : 08/09/2012

    [Resolvido]Calculo entre intervalo de datas Empty Re: [Resolvido]Calculo entre intervalo de datas

    Mensagem  Maicon 7/4/2021, 19:02

    Não entendi por quê o material ter o ID como parâmetro ? Se está cadastrado ou não ?
    Creio que se está no banco de dados está cadastrado.
    Outra coisa que não entendi em sua base de dados é ID é numeração automática ?
    Se sim e quando seguir alimentando as tabelas com mais itens terá que alterar os códigos ?
    Seguindo essa lógica acredito que o mais acertado seria um "boolean" , Sim, Não Ou Verdadeiro ou Falso.
    Neste caso deveria cria um campo em sua base de dados onde informaria se o produto está em estoque ou não , disponível ou não então ficaria mais simples e poderia usar facilmente a função Seimed  

    Seimed(SeuCampo=0;0;Dias: [DataFinal]-[DataInicial])

    ou

    Dias: SeImed([ID]=1;[DataFinal]-[DataInicial];SeImed([ID]=4;[DataFinal]-[DataInicial];SeImed([ID]=6;[DataFinal]-[DataInicial];SeImed([ID]=8;[DataFinal]-[DataInicial];0))))


    Considerando que o código acima seja em uma consulta.

    Caso queira pode realizar isto via VBA então o caminho pode ser conforme este tópico abaixo :

    "https://www.maximoaccess.com/t14995-resolvidofuncao-seimed-com-excesso-de-condicoes"

    Eu realmente prefiro estudar muito as estruturas das tabelas e as relações e tudo mais, Isso evita muito , mas muito trabalho e linhas de código no futuro.

    Neste caso é que se a ID da tua tabela for auto incremento no instante que for adicionando novos registros será obrigado a mexer nos códigos.
    Outra coisa não use em suas tabelas simplesmente ID , ID do quê ? Lembre-se de quando for realizar consultas com mais de um tabela terá a tabela Clientes com a tabela Produtos e ambas possuirão campos com o mesmo nome ID e ai terá conflito assim vale para outros campos como nome e todos outros campos que possam ter nomes iguais.
    Veja abaixo :

    ID_Cliente ID_Produto ID_Venda
    NomeCliente NomeProduto Cliente
    Produto
    Quantidade




    .................................................................................
    "O talento vence jogos, mas só o trabalho em equipe ganha campeonatos."
    Michael Jordan

    Bons Estudos.

    wejunio gosta desta mensagem

    tauron
    tauron
    VIP
    VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1293
    Registrado : 07/12/2011

    [Resolvido]Calculo entre intervalo de datas Empty Re: [Resolvido]Calculo entre intervalo de datas

    Mensagem  tauron 7/4/2021, 23:11

    Maicon, concordo com você quanto a questão da "ID". Mas observando no disponibilizado pelo amigo, percebe-se que os conteúdo do campo [material] nas "ID's" são os mesmos.

    wejunio gosta desta mensagem

    avatar
    wejunio
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/10/2012

    [Resolvido]Calculo entre intervalo de datas Empty Re: Calculo entre intervalo de datas

    Mensagem  wejunio 8/4/2021, 03:15

    Desculpa, mas acho que não ficou claro a explicação do problema. No exemplo acima o campo ID ( 1,4,6,8 ) somente para demonstrar que o material repetiu 4x e nos outros ID o material não repetiu.


    Preciso que ao inserir um novo registro na tabela e campo "Material" seja "Repetido" tenho que calcular a diferença entre as datas (Data_Entrada "Registro Novo" -  Data_Entrada "Registro Anterior") somente dos materiais que repetem.
    Maicon
    Maicon
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 255
    Registrado : 08/09/2012

    [Resolvido]Calculo entre intervalo de datas Empty Re: [Resolvido]Calculo entre intervalo de datas

    Mensagem  Maicon 8/4/2021, 12:54

    Tranquilo, comunicação é tudo.
    Vamos a questão então pelo que posso verificar você terá que usar a função "DULTIMO" ou "DLOOKUP" na consulta para pesquisar qual o último registro do produto lançado na tabela então segue a lógica Seimed para realizar o cálculo.




    .................................................................................
    "O talento vence jogos, mas só o trabalho em equipe ganha campeonatos."
    Michael Jordan

    Bons Estudos.

    wejunio gosta desta mensagem

    tauron
    tauron
    VIP
    VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1293
    Registrado : 07/12/2011

    [Resolvido]Calculo entre intervalo de datas Empty Re: [Resolvido]Calculo entre intervalo de datas

    Mensagem  tauron 11/4/2021, 12:27

    Bom dia, veja se esse simplorio exemplo pode lhe ajudar a achar o caminho das pedras.
    Anexos
    [Resolvido]Calculo entre intervalo de datas Attachmentwejunio.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (27 Kb) Baixado 11 vez(es)

    wejunio gosta desta mensagem

    avatar
    wejunio
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/10/2012

    [Resolvido]Calculo entre intervalo de datas Empty Re: Calculo entre intervalo de datas

    Mensagem  wejunio 13/4/2021, 04:40

    Para os novos itens cadastrados problema resolvido conforme o exemplo enviado pelo tauron.  cheers

    Para os registros antigos também tenho que realizar esse mesmo calculo. Teria como realizar essa mesma lógica de calculo em uma tabela com +2000 registros já cadastrados.
    tauron
    tauron
    VIP
    VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1293
    Registrado : 07/12/2011

    [Resolvido]Calculo entre intervalo de datas Empty Re: [Resolvido]Calculo entre intervalo de datas

    Mensagem  tauron 13/4/2021, 09:58

    Me desculpe amigo, mas não entendi sua pergunta:

    "Para os registros antigos também tenho que realizar esse mesmo calculo. Teria como realizar essa mesma lógica de calculo em uma tabela com +2000 registros já cadastrados."

    O Campo "Dias" é um campo da tabela? É isso mesmo?

    wejunio gosta desta mensagem

    avatar
    wejunio
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/10/2012

    [Resolvido]Calculo entre intervalo de datas Empty Re: Calculo entre intervalo de datas

    Mensagem  wejunio 13/4/2021, 20:08

    Vamos pegar o exemplo anterior com exemplo.

    Isso mesmo o campo "Dias" é um campo da tabela.

    Dados cadastrados na tabela

    ID             Material              Data_Entrada           Nota_Fiscal        Skip_status       Dias
    1           20.001.622.3           05/01/2021                000555732           APROVADO         0
    2           40.780.430.3           06/01/2021                000555732           APROVADO         0
    3           42.800.022.3           06/01/2021                000555732           APROVADO         0
    4           20.001.622.3           08/01/2021                000555809           APROVADO         3
    5           46.700.006.3           11/01/2021                000555733           APROVADO         0
    6           20.001.622.3           17/01/2021                000555811           APROVADO         9
    7           46.700.757.3           18/01/2021                000555732           APROVADO         0
    8           20.001.622.3           23/01/2021                000555883           APROVADO         6

    No exemplo acima o campo ID ( 1,4,6,8 ) somente para demonstrar que o material repetiu 4x e nos outros ID o material não repetiu. Preciso calcular a diferença entre as datas dos materiais que repetem.

    Calculo:
    ID          Material              Data_Entrada             Nota_Fiscal           Skip_status       Dias
    1           20.001.622.3           05/01/2021                000555732           APROVADO         0 (1ª entrada do material (Dias: 0)
    4           20.001.622.3           08/01/2021                000555809           APROVADO         3 (2ª entrada do material (Dias: Data entrada ID 4 - Data entrada ID 1)
    6           20.001.622.3           17/01/2021                000555811           APROVADO         9 (3ª entrada do material (Dias: Data entrada ID 6 - Data entrada ID 4)
    8           20.001.622.3           23/01/2021                000555883           APROVADO         6 (4ª entrada do material (Dias: Data entrada ID 8 - Data entrada ID 6)

    Não se ficou claro a explicação.
    Maicon
    Maicon
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 255
    Registrado : 08/09/2012

    [Resolvido]Calculo entre intervalo de datas Empty Re: [Resolvido]Calculo entre intervalo de datas

    Mensagem  Maicon 16/4/2021, 12:13

    Tente este caminho ;

    "https://www.vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=439354"







    .................................................................................
    "O talento vence jogos, mas só o trabalho em equipe ganha campeonatos."
    Michael Jordan

    Bons Estudos.
    Maicon
    Maicon
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 255
    Registrado : 08/09/2012

    [Resolvido]Calculo entre intervalo de datas Empty Use expressões no formulário ou subconsultas SQL

    Mensagem  Maicon 21/4/2021, 14:28

    Criei um exemplo para você vou postar nos exemplos no fórum :

    https://www.maximoaccess.com/t39488-exemplo-calculo-entre-intervalo-de-datas#269198

    Neste exemplo usei duas formas para resolver o problema uma diretamente no formulário usando os campos do formulário como critério para as consultas que filtram as funções DPesquisa.
    Outra forma foi usar as Subconsultas :
    "https://brzaccessdeveloper.blogspot.com/2012/05/vba-access-tecnicas-para-escrever.html"  -- Código fonte da SQL do exemplo
    "https://support.microsoft.com/pt-br/office/subconsultas-sql-d41fc0b1-1c88-40d4-bbd1-951de6e94e2a"


    **Observe as caixa de texto em vermelho estas contém expressões access ("DPESQUISA"; elas estão baseadas na consulta Cns_DataApoio.  Ao clicar no botão atualiza irá executar a Cns_CriaTblDias " Cria a tabela provisória dias e depois excuta a consulta Cns_AtualizaDias. Observe o campo DiasAcoplado e verá que ele irá atualizar os campos. Isto foi realizado com a consulta Cns_SQL que faz uso de subconsultas:


    .................................................................................
    "O talento vence jogos, mas só o trabalho em equipe ganha campeonatos."
    Michael Jordan

    Bons Estudos.

      Data/hora atual: 16/6/2021, 14:44