Ir ao conteúdo
  • Cadastre-se
higor.so

RESOLVIDO Access Campos Calculado

Recommended Posts

Fala pessoal,

 

Vou começar um banco de dados no access e to precisando de uma forcinha.

É um banco de dados de contratos e tem dois campos que eu preciso fazer um calculo

 

Campo "Data final'

Eu um com data inicial de um determinado contrato e prazo (em mezes)

Exemplo: "Data Inicial" (26/02/2015); "Prazo" (12 meses); 

Eu gostaria que a partir desses dados a data final do contrato fosse calculada.

 

Campo "Fim do contrato (em dias)"

Gostaria que esse campo calculasse a "Data final" - a data de hoje e me fornecesse quantos dias faltam para o final do contrato.

 

Como posso fazer isso no access? Seja campo calculado, ou módulo, ou programação?

Alguém pode me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tratando de programação, geralmente esse cálculo é feito no programa com seus métodos próprios..

BD só armazena os dados.

 

Agora não sei se o Access faz esse cálculo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Higor, como voce não compartilhou sua tabela ou um exemplo,

Segue um exemplo em vba por suposicâo: 

Aperte ALT + F11, crie um modulo e cole o codigo abaixo, em seguida  exceute a macro.

 

Sub Calcular_Meses()
    Dim d As Database
    Dim r As Recordset
    Dim DtI As Field, DtF As Field, Pr As Field
    Set d = CurrentDb()
    Set r = d.OpenRecordset("tabela1")    'Altere os nomes: (tabela,campos)
    Set DtI = r.Fields("Data inicial")
    Set DtF = r.Fields("Data Final")
    Set Pr = r.Fields("Prazo")
    While Not r.EOF
        r.Edit
        DtF = DateAdd("m", Pr, DtI)
        r.Update
        r.MoveNext
    Wend
    r.Close
End Sub

Database1.zip

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Basole, a ideia é essa mesma.

Mas, tem outro campo a resolver:

"Dias para o fim"

A ideia desse campo é ele me fornecer quantos dias faltam para o final do contrato.

Tipo, ele pega a "Data Final" e subtrai pela data de hoje e me retorna quantos dias faltam para encerrar.

Dá pra fazer isso em macro também?

 

 

 

 

Higor, como voce não compartilhou sua tabela ou um exemplo,

Segue um exemplo em vba por suposicâo: 

Aperte ALT + F11, crie um modulo e cole o codigo abaixo, em seguida  exceute a macro.

 

Sub Calcular_Meses()
    Dim d As Database
    Dim r As Recordset
    Dim DtI As Field, DtF As Field, Pr As Field
    Set d = CurrentDb()
    Set r = d.OpenRecordset("tabela1")    'Altere os nomes: (tabela,campos)
    Set DtI = r.Fields("Data inicial")
    Set DtF = r.Fields("Data Final")
    Set Pr = r.Fields("Prazo")
    While Not r.EOF
        r.Edit
        DtF = DateAdd("m", Pr, DtI)
        r.Update
        r.MoveNext
    Wend
    r.Close
End Sub

 

Database1.rar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua o cod abaixo no mod 1: 

 

* os valores (-)  negativos que retornarêm no campo 'Dias para o fim' representam em "dias vencidos. "

abx. 

 

Option Compare Database
Sub Calcular_Meses()
    Dim d As Database
    Dim r As Recordset
    Dim DtI As Field, DtF As Field, Pr As Field, dpf As Field
    Set d = CurrentDb()
    Set r = d.OpenRecordset("tabela1")    'Altere os nomes: (tabela,campos)
    Set DtI = r.Fields("Data inicial")
    Set DtF = r.Fields("Data Final")
    Set Pr = r.Fields("Prazo")
    Set dpf = r.Fields("Dias para o fim")
    While Not r.EOF
        r.Edit
        DtF = DateAdd("m", Pr, DtI)
        dpf = DateDiff("d", Date, DtF)
        r.Update
        r.MoveNext
    Wend
    r.Close
End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, eu tnha conseguido fazendo dois módulos um com o que você já tinha me mandado e outro que fiz a partir do seu com o DataDif...

Mas, deu certinho... valeu!

 

Substitua o cod abaixo no mod 1: 

 

* os valores (-)  negativos que retornarêm no campo 'Dias para o fim' representam em "dias vencidos. "

abx. 

 

Option Compare Database
Sub Calcular_Meses()
    Dim d As Database
    Dim r As Recordset
    Dim DtI As Field, DtF As Field, Pr As Field, dpf As Field
    Set d = CurrentDb()
    Set r = d.OpenRecordset("tabela1")    'Altere os nomes: (tabela,campos)
    Set DtI = r.Fields("Data inicial")
    Set DtF = r.Fields("Data Final")
    Set Pr = r.Fields("Prazo")
    Set dpf = r.Fields("Dias para o fim")
    While Not r.EOF
        r.Edit
        DtF = DateAdd("m", Pr, DtI)
        dpf = DateDiff("d", Date, DtF)
        r.Update
        r.MoveNext
    Wend
    r.Close
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×