MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido] Contar registos dos últimos 30 dias

    Compartilhe

    Ad-minister
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 69
    Registrado : 18/04/2014

    [Resolvido] Contar registos dos últimos 30 dias

    Mensagem  Ad-minister em Qua 12 Abr 2017, 23:40

    Dá-me #Erro a expressão DContar("[rsp-id]";"respostas-tb";"[rsp-data]=Data()-30")

    Num formulário tenho

    Campo: DataInicial
    -> resultado: 1/4/2014)

    Campo: ContaRegistos =DContar("[rsp-id]";"respostas-tb";"[rsp-data]=[DataInicial]")
    -> resultado: 3 (conta os registos que têm a data inicial)

    Até aqui está tudo correto, mas...
    Quero outro campo que devolva ContarRegistosÚltimoMês.

    Dá #Erro se eu adaptar para
    ContarRegistosÚltimoMês
    =DContar("[rsp-id]";"respostas-tb";"[rsp-data]=Data()-30")
    ou
    =DContar("[rsp-id]";"respostas-tb";Nz("[rsp-data]=Data()-30";0))

    O que estou a fazer de errado?

    Nota:
    Tabela:respostas-tb
    Campos: [rsp-id] | [rsp-data] | etc
    No último mês pode não haver registos (ainda).


    Última edição por Ad-minister em Qui 13 Abr 2017, 14:43, editado 1 vez(es)


    .................................................................................
    Não há mestre que não possa ser aluno.
    Baltasar Gracián y Morales
    Escritor/Pedagogo
    Espanha - 8 Jan 1601 // 6 Dez 1658
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido] Contar registos dos últimos 30 dias

    Mensagem  ahteixeira em Qua 12 Abr 2017, 23:45

    Olá, teste assim:
    Código:
    =DContar("[rsp-id]";"respostas-tb";"[rsp-data]>= '" & cdate(Date()-30) &"'")
    Abraço

    Ad-minister
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 69
    Registrado : 18/04/2014

    Re: [Resolvido] Contar registos dos últimos 30 dias

    Mensagem  Ad-minister em Qui 13 Abr 2017, 12:28

    Obrigado ahteixeira.

    No entanto dá-me erro.

    Fiz alguns testes com a bd anexa  e não descubro o erro - (contar_registos.accdb)

    P.f. veja os meus testes.
    Anexos
    contar_registos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (39 Kb) Baixado 7 vez(es)


    .................................................................................
    Não há mestre que não possa ser aluno.
    Baltasar Gracián y Morales
    Escritor/Pedagogo
    Espanha - 8 Jan 1601 // 6 Dez 1658
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 525
    Registrado : 18/01/2013

    Re: [Resolvido] Contar registos dos últimos 30 dias

    Mensagem  CassioFabre em Qui 13 Abr 2017, 13:09

    Bom dia,

    O erro nas duas expressões é pelo mesmo motivo: a falta do uso do # pelo motivo do campo analisado no criterio ser do tipo DATA. Leia este tópico: [Você precisa estar registrado e conectado para ver este link.]

    Substitua, respectivamente, as duas funções que dão erro por:

    =DContar("[rsp-id]";"respostas-tb";"[rsp-data]>= #" & CData(Data()-30) & "#")

    =DContar("[rsp-id]";"respostas-tb";"[rsp-data]>= #" & CData([Data1mes]) & "#")


    Abraço.

    Ad-minister
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 69
    Registrado : 18/04/2014

    Re: [Resolvido] Contar registos dos últimos 30 dias

    Mensagem  Ad-minister em Qui 13 Abr 2017, 14:32

    Obg Cassio.

    Então o erro/correção seria a substituição de ' por # e já está certo.

    Só não entendo porque nas outras expressões não foi necessário usar #.

    Por exemplo, não é preciso # em:
    Código:
    =DContar("[rsp-id]";"respostas-tb";"[rsp-data]>=[DataInicial]")

    De qualquer modo CData já converte texto em data!


    .................................................................................
    Não há mestre que não possa ser aluno.
    Baltasar Gracián y Morales
    Escritor/Pedagogo
    Espanha - 8 Jan 1601 // 6 Dez 1658
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido] Contar registos dos últimos 30 dias

    Mensagem  ahteixeira em Dom 04 Jun 2017, 22:18

    Olá a todos,
    Carlos, o Access tem destas coisa.
    Outra é que em SQL nas datas o Access é "Patriota" (idioma neutro), sendo muitas vezes necessário formatar a data à "Americana", ou seja:

    Format(CampoData,"mm/dd/yyyy")

    Abraço

      Data/hora atual: Seg 11 Dez 2017, 23:02