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

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 140
    Registrado : 28/08/2016

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  JIR 29/4/2018, 18:59

    Boa Tarde,

    será possível, via código VBA, quando abrir o form Ficheiro Pessoal, atualizar a tabela Ficheiro_Mestre o campo AntiguReal de todos os 9.807 funcionários

    de momento tenho o código que faz isso mas tenho de percorrer todos os funcionários para que atualize na tabela a antiguidade de todos os funcionários


    Código:
    Private Sub Form_Current()
       
    'Calcula Antiguidade em Anos, Meses e Dias
      If Not IsNull(Me.DATA_ADMISSAO) Then
           Me.txtAntig = Diff2Dates("DMY", Me.DATA_ADMISSAO, IIf(Not IsNull(Me.DATA_DEMISSAO), Me.DATA_DEMISSAO, Date))
       Else
           Me.txtAntig = vbNullString
       End If

    End Sub

    José Silva
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  Alvaro Teixeira 29/4/2018, 19:53

    Olá José Silva,

    Como é um campo que varia todos os meses, o correto é ser um campo calculado na execução.
    No entanto respondendo à questão, obtém o pretendido com uma consulta atualizar.
    Pode fazer a chamada da consulta ao abrir o form.

    Abraço
    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 140
    Registrado : 28/08/2016

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  JIR 29/4/2018, 20:08

    Olá Teixeira,

    só que eu montei a BD armazenando esse calculo na tabela campo AntiguReal e o forme de lançar dados é o mesmo de consulta

    tenho vários relatórios baseados nos dados desta tabela e agora terei de alterar muito se não for ler à tabela

    mas se não tiver alternativa, partirei para a alteração de tudo


    José Silva
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  wellingtoneo 29/4/2018, 21:13

    Olá amigo!

    Olha de verdade não conseguir entender o que você quer fazer... se é atualizar o campo AntiguReal é só fazer a consulta de atualização da tabela ao abrir o formulário como o Teixeira falou.
    Uma ideia para montar a consulta... Adapte ao seu projeto.

    Código:
    Private sub Form_Open(Cancel As Integer)

    dim sql as string
    sql = "UPDATE  Ficheiro_Mestre SET AntiguReal = Diff2Dates(""DMY"", [DATA_ADMISSAO], IIf(Not IsNull([DATA_DEMISSAO]), [DATA_DEMISSAO], Date))"
    currentdb.execute sql

    End sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  Alvaro Teixeira 29/4/2018, 23:06

    Olá a todos,

    José Silva, o ideal seria como já referi, mas pode deixar para outra altura que seja mais oportuna a alteração.
    Pode fazer conforme o colega Wellington exemplificou para o form e repare, você pode fazer alterações de dados este mês e ir retirar o reporte no próximo mês, então o ideal é chamar a consulta sempre antes para atualizar a antiguidade.

    Abraço a todos
    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 140
    Registrado : 28/08/2016

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  JIR 29/4/2018, 23:38

    Olá,

    deu erro, será que não é por falta do campo [Nº ORDEM]

    o erro

    Run-Time error 3061

    Poucos parâmetros 3 esperado

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Captur10
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  Alvaro Teixeira 30/4/2018, 10:29

    Olá José Silva,

    Anexe a base de dados apenas com a tabela em questão com alguns dados de teste e à função Diff2Dates
    A situação de anexar no fórum já foi resolvida.

    Abraço
    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 140
    Registrado : 28/08/2016

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  JIR 30/4/2018, 11:28

    Olá Teixeira,

    aqui vai parte da BD, agora por imposição do rgpd, regulamento de proteção de dados, tive de apagar e alterar parte dos dados
    Anexos
    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios AttachmentZTeste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (804 Kb) Baixado 11 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  Alvaro Teixeira 30/4/2018, 14:25

    Olá José Silva,

    Obrigado por partilhar, assim ficou mais fácil para compreender e poder ajudar.
    Fez muito bem, alerto a todos os membros os dados dos exemplos deve ser de fictícios (amostragem).
    Amigos de Portugal, atenção ao novo Regulamento de Proteção de Dados


    Voltando à questão, crie uma consulta, altere para o modo de visualização em SQL e cole o código abaixo e teste:
    Código:
    SELECT Ficheiro_Mestre.AntiguReal, IIf(Not IsNull([DATA ADMISSAO]),Diff2Dates("DMY",[DATA ADMISSAO],IIf(Not IsNull([DATA DEMISSAO]),[DATA DEMISSAO],Date()))) AS AntiguReal_calculo FROM Ficheiro_Mestre;
    Podemos verificar o valor que está na base de dados e o valor calculado.
    Seguindo o raciocínio inicial seria apenas alterar a consulta para o tipo "Actualizar".
    Sempre que fosse necessário ter o campo AntiguReal actualizado era só chamar a consulta.

    Parece que a sua terefa não é dificil, dupliquei o form e reporte e exemplifiquei os campos calculados, veja se é isso:
    cld.pt/dl/download/7f2bed8b-06c7-4122-8e9f-a6c468965703/ZTeste_rev.zip

    Abraço
    avatar
    JIR
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 140
    Registrado : 28/08/2016

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  JIR 30/4/2018, 16:00

    Amigo Teixeira, Muito obrigado

    andei a complicar o que era simples, ficou excelente


    Abraço

    José Silva
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  Alvaro Teixeira 30/4/2018, 16:41

    Olá José Silva,

    Obrigado pelo retorno, está no fórum certo para aprender a descomplicar.
    Qualquer coisa estamos cá.

    Abraço

    Conteúdo patrocinado


    [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios Empty Re: [Resolvido]Actualização imediata na tabela e via Form antiguidade de 9807 funcionarios

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 23:53