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]Identificar se há registro em cada um dos últimos 6 meses

    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Sex Jun 01, 2012 11:16 pm

    Estava tentando imaginar como criar uma consulta - ou mesmo um procedimento VBA - para identificar se para cada um dos últimos 6 meses há um registro correspondente.

    Tenho um formulário com o campo competência(data) do pagamento de um empregado.

    Então, preciso descobrir - por exemplo - se para os meses abaixo há um registro de pagamento.
    mai/2012
    abr/2012
    mar/2012
    fev/2012
    jan/2012
    dez/2011

    Sem seguida, precisaria de um procedimento que retornasse verdadeiro ou falso.


    Última edição por rgondim em Sáb Jun 02, 2012 6:37 pm, editado 1 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Sáb Jun 02, 2012 10:12 am

    Boas Rgondim...

    Function Verifica() As Boolean
    If DCount("*", "tblExemplo", "DataPagamento <=#" & Date & "# And DataPagamento >=#" & DateAdd("m", -6, Date) & "#") >= 1 Then
    Verifica = True
    Else
    Verifica = False
    End If
    End Function

    e para chamar a função Algo assim

    Private Sub Comando6_Click()
    If Verifica = False Then
    MsgBox "Falso"
    Else
    MsgBox "Verdadeiro"
    End If
    End Sub


    Cumprimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Sáb Jun 02, 2012 7:04 pm

    Harysohn,

    adaptei e fiz o seguinte teste:

    1º opção)
    DCount("*", "qryResci_6UltSal", "Competencia < #" & Me.Competencia & "# And Competencia >#" & DateSerial(Year(Competencia), Month(Competencia) - 6, 1) & "#")

    2º opção)
    DCount("*", "qryResci_6UltSal", "Competencia < #" & Me.Competencia & "# And Competencia >#" & DateAdd("m", -6, Me.Competencia) & "#")

    OBS: Competencia é um campo data.

    A função sempre conta o total de registros da tabela. Os critérios não funcionaram.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Dom Jun 03, 2012 7:34 am

    E claro que vai dar errado... voce não quer contar um intervalo de data?

    Pois bem, qual é este intervalo?

    1 - Critério (Data atual) hoje
    2 - Segundo critério (Data a 6 meses atras)

    Veja:

    If DCount("*", "tblExemplo", "DataPagamento <=#" & Date & "# And DataPagamento >=#" & DateAdd("m", -6, Date) & "#") >= 1 Then

    Veja que eu comparo as data do Sistema (Data atual e Data atual -6 meses)



    Voce está usando como critério o próprio campo.. e não a data do sistema!!!!


    DCount("*", "qryResci_6UltSal", "Competencia < #" & Me.Competencia & "# And Competencia >#" & DateAdd("m", -6, Me.Competencia) & "#")



    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Dom Jun 03, 2012 7:39 am

    DCount("*", "qryResci_6UltSal", "Competencia <= #" & Date & "# And Competencia >=#" & DateAdd("m", -6, Date) & "#")

    Cumprimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Dom Jun 03, 2012 6:11 pm

    Eu fiz a adaptação para comparar o campo Competencia presente no formulário e na consulta.

    Então:
    O primeiro critério é a data do campo Competencia no formulário.
    O segundo critério é Competencia a 6 meses atrás.

    Pensei que se trata-se de uma questão de formatação da data (formato americano, mm/dd/yyyy). Testei com formatação e não deu certo.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Dom Jun 03, 2012 7:40 pm

    Amigao..

    DCount("*", "qryResci_6UltSal", "Competencia <= #" & Date & "# And Competencia >=#" & DateAdd("m", -6, Date) & "#")

    O Campo competencia contem datas... Ele tem que ser do tipo Data

    Entao ele vai buscar os registros entre a data atual do sistema (Date) e a data do sistema - 6 meses ( DateAdd("m", -6, Date))


    é isso ai.... aqui da certíssimo...
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Dom Jun 03, 2012 7:45 pm

    https://dl.dropbox.com/u/26441349/rGondim_01_06.rar

    Cumprimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Seg Jun 04, 2012 7:20 pm

    Fiz teste com seu exemplo e de fato, tudo funcionando.

    Vou refazer os testes e vê se descubro o problema.

    Dou um retorno em breve.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Seg Jun 04, 2012 7:27 pm

    Beleza...

    Veja o tipo do campo que estas utilizando e tal..

    Aguardaremos.

    Cumprimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Ter Jun 05, 2012 11:22 pm

    Harysohn, fiz vários teste e o problema continuou. Levei algumas tabelas e consultas para outro BD, criei novos formulários e nada.

    Então testei o campo Fechamento (campo data). Funcionou.
    Mudei a origem do controle do campo Fechamento e não funcionou.

    Então o problema está no recordset Competencia.
    Na tabela, ele é um campo no formato dd/yyyy (correção: mm/yyyy).


    Última edição por rgondim em Qua Jun 06, 2012 1:29 pm, editado 1 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Qua Jun 06, 2012 7:08 am

    dd/yyyy ..... Dia/Ano...

    O dia 01 existe 12 vezes no ano.... Ai nao tem como determinar amigão....

    Como vais saber qual o mês? lembrando que semestres são determinado pelos meses e não pelos dias.

    A dúvida proposta na origem do tópico foi solucionada com o exemplo que te enviei.


    Recordset Fechamento??? de onde veio isso??? neste código nao estamos trabalhando com recordset, e sim com tabela.

    Enfim... envie um exemplo conciso do seu bd para que eu possa ver.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Qua Jun 06, 2012 7:11 am

    agora se for mm/yyyy podes tentar assim:


    If DCount("*", "tblExemplo", "DataPagamento <=#" & Format(Date,"mm/yyyy") & "# And DataPagamento >=#" & DateAdd("m", -6, Format(Date,"mm/yyyy")) & "#") >= 1 Then



    Cumprimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Qua Jun 06, 2012 9:21 am

    Perdão, é mm/yyyy.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Qua Jun 06, 2012 9:38 am

    Leia a mensagem de n° 13

    Cumprimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Qua Jun 06, 2012 7:27 pm

    Harysohn, perdão,
    minha postagem anterior complicou seu entendimento do problema.
    De fato, a solução para o problema já foi apresentada e peço-lhe desculpar por importunar novamente. Sua ajuda foi correta e completa. O problema está no meu Banco de Dados.

    O campo Competencia tem origem na tabela tblCompetencia. Seu formato é mm/yyyy e, então, todos os registros são inseridos neste formato: 01/mês/ano. Na mesma tabela, também há o campo Fechamento (formato dd/mm/yyyy).

    No formulário onde está o procedimento VBA que você criou, inclui o campo Fechamento e substitui Competencia por Fechamento na função. E aí funcionou!

    Fiz outro teste: em cada registro na tabela tblCompetencia, copiei o valor do campo Competencia para Fechamento. Aí não funcionou.

    Deixo um exemplo do meu banco de dados.

    PS: ao usei Recordset eu na verdade quis me referir a origem do controle na tabela. Erro de principiante...rs.



    Última edição por rgondim em Qui Jun 07, 2012 12:02 pm, editado 1 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Qui Jun 07, 2012 11:03 am

    Amigao... Compacte o teu bd e o disponibilize no DropBox... não consegui baixá-lo pelo google docs...

    Ou me envie compactado no e-mail, que posto aqui.

    Harysohn@hotmail.com

    Cumpreimentos.
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 23/02/2012

    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  rgondim Qui Jun 07, 2012 12:01 pm

    Enviado.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Qui Jun 07, 2012 8:21 pm

    Amigao, creio o que o teu bd é 2010, se for converta-o em 2007 ou 2003 e reenvie.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Convidado Sex Jun 22, 2012 10:31 am

    Como não houve resposta o tópico pass a resolvido, caso necessite reabra-o.

    Moderação.

    Conteúdo patrocinado


    [Resolvido]Identificar se há registro em cada um dos últimos 6 meses Empty Re: [Resolvido]Identificar se há registro em cada um dos últimos 6 meses

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Sex Abr 26, 2024 4:49 pm