Ir para conteúdo
Fórum Script Brasil
  • 0

ENTRE DATAS


Geraldo Silva

Pergunta

ola pessoal,

tenho um bd de controle de férias e estou com um problema em uma cnsulta

na tabela tenho os campos [inicio] e [termino]

preciso de uma consulta que me retorne o seguinte

o usuário escolhe o mes e ano atraves de um form e a consulta me retorna os funcionarios em ferias

ex: funcionario em ferias de 30/12/2008 a 02/02/2009

não consigo fazer consulta no mês que esta entre o [inicio] e o [termino]

no caso jan/2009

socorro!

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0

Faça algo assim:

select format(suaTabela.suaData,"mm/yyyy") as mesAno from sua tabela where format(suaTabela.suaData,"mm/yyyy") between format(seuCriterioInicio,"mm/yyyy") and format(seuCriterioFim,"mm/yyyy");

Link para o comentário
Compartilhar em outros sites

  • 0

ainda não consegui

eu tinha feito assim

elect tab_ferias...etc

where (((datepart("m",[inicio] ))=[forms]![frm_filtro_mes]![mes])) or (((datepart("m",[termino] ))=[forms]![frm_filtro_mes]![mes]));

so depois percebi que em alguns casos existe outro mes entre o inicio e o termino

ex: inicio dez/2008 e termino em fev/2009

ao fazer a consulta em jan/2009 tem que constar tal registro

Link para o comentário
Compartilhar em outros sites

  • 0

Não posso usar como parametro mes/inicio e mes/termino no formulário porque a consulta deve levar en consideração apenas o mes atual

motivo: ex. consulta mes jan/2009

tenho inicio em nov/2008 e termino em jan/2009

tenho inicio em dez/2008 e termino em fev/2009

tenho inicio em jan/2009 e termino em fev/2009

tenho inicio em jan/2009 e termino em mar/2009

nos 4 casos tenho gente de ferias em janeiro

http://www.speedyshare.com/605873118.html

Link para o comentário
Compartilhar em outros sites

  • 0

Então eu teria que me preocupar apenas com o mês da data inicial isso torna as coisa muito mais simples e tendo acesso a parte do seu bd fiz a seguinte expressão que testei e está funcionando conforme o meu entenimento

select Tab_Ferias.Cod_Ferias, Tab_Ferias.Cod_Servidor, Tab_Ferias.N_Dias, Tab_Ferias.Inicio, Tab_Ferias.Termino, Tab_Ferias.Retorno, Tab_Ferias.Observação

from Tab_Ferias

where format(Tab_Ferias.Inicio,"mm/yyyy")=Formulários!Frm_Filtro_Mes!Codigo_01 & "/" & Formulários!Frm_Filtro_Mes!Codigo_02;

Link para o comentário
Compartilhar em outros sites

  • 0

Não dá pelo seguinte ex. o usuário vai consultar mes jan/2009

tenho inicio em nov/2008 e termino em jan/2009

tenho inicio em dez/2008 e termino em fev/2009

tenho inicio em jan/2009 e termino em fev/2009

tenho inicio em jan/2009 e termino em mar/2009

nos 4 casos tenho gente de ferias em jan/2009

http://www.speedyshare.com/605873118.html

Link para o comentário
Compartilhar em outros sites

  • 0

Bom então vocÊ quer o que estiver dentro do período também muito simples

select Tab_Ferias.Cod_Ferias, Tab_Ferias.Cod_Servidor, Tab_Ferias.N_Dias, Tab_Ferias.Inicio, Tab_Ferias.Termino, Tab_Ferias.Retorno, Tab_Ferias.Observação

from Tab_Ferias

where (((format([Tab_Ferias].[inicio],"mm/yyyy")) between formulários!Frm_Filtro_Mes!Codigo_01 & "/" & formulários!Frm_Filtro_Mes!Codigo_01 and formulários!Frm_Filtro_Mes!Codigo_02 & "/" & formulários!Frm_Filtro_Mes!Codigo_02));

Bom se agora num der certo é porque sinceramente não entendo o que você está tentando fazer...

Link para o comentário
Compartilhar em outros sites

  • 0

São muitos registro de férias durante o ano então vou tentar ser mais claro possível

se o usuário consultar quem está de ferias em dez/2008 (o registro 30/12/2008 a 02/02/2009 tem que constar na consulta)

se o usuário consultar quem está de ferias em Jan/2009 (o registro 30/12/2008 a 02/02/2009 tem que constar na consulta)

se o usuário consultar quem está de ferias em Fev/2009 (o registro 30/12/2008 a 02/02/2009 tem que constar na consulta)

Dez/2008 beleza é o mês de início

Fev/2009 beleza é o mês de término

Jan/2009 ?????

Minha dificuldade está em estabelecer um parâmetro de consulta que leve em conta o período de inicio e termino com o mês escolhido pelo usuário.

o formulário para consulta tem dois campos mês e Ano mas para silplificar pode ser tambem um unico campo com mes/ano

http://www.speedyshare.com/605873118.html

Link para o comentário
Compartilhar em outros sites

  • 0

Bom o que você tinha deixado a entender anteriormente é que queria usar período mais já que é somente o mês atual ficou mais fácil ainda tai o 1º arquivo que você enviou com as alterações que fiz para pegar pelo inicio, para pegar tanto inicio quanto temino o código é:

SELECT Tab_Ferias.Cod_Ferias, Tab_Ferias.Cod_Servidor, Tab_Ferias.N_Dias, Tab_Ferias.Inicio, Tab_Ferias.Termino, Tab_Ferias.Retorno, Tab_Ferias.Observação

FROM Tab_Ferias

WHERE (((Format(Tab_Ferias.Inicio,"mm/yyyy"))=Formulários!Frm_Filtro_Mes!Codigo_01 & "/" & Formulários!Frm_Filtro_Mes!Codigo_02) Or ((Format(Tab_Ferias.Termino,"mm/yyyy"))=Formulários!Frm_Filtro_Mes!Codigo_01 & "/" & Formulários!Frm_Filtro_Mes!Codigo_02));

Aguardo seu retorno pra colocar resolvido neste tópico!

Gasilvabh_bol.com.br.rar

Link para o comentário
Compartilhar em outros sites

  • 0

Então fera faça os critérios, se você quer periodos vocÊ tem que ter de onde tirar o mes/ano inicio e o mes/ano fim, o material que lhe passei pode ser facilmente adaptado a isso basta que você adicione os controles que serão utilizados como critério no seu form

Link para o comentário
Compartilhar em outros sites

  • 0

Cara num sei sei mais com explicar pra você você me pediu por mês eu fiz por mês, depois falou que era no perido então fiz por periodo, depois disse que queria qualquer coisa que tivesse no inicio ou no fim o que fosse passado como critério...

Se você não puder me passar o que precisa exatamente eu ou qualquer outra pessoa não poderá lhe ajudar...

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, pense que tinha sido claro em minha dúvida

tenho um bd de controle de férias e estou com um problema em uma cnsulta

na tabela tenho os campos [inicio] e [termino]

preciso de uma consulta que me retorne o seguinte

o usuário escolhe o mes e ano atraves de um form e a consulta me retorna os funcionarios em ferias

ex: funcionario em ferias de 30/12/2008 a 02/02/2009

não consigo fazer consulta no mês que esta entre o [inicio] e o [termino]

no EXEMPO jan/2009

As dicas que você me passou foram muito uteis mas não consegui fazer com que funcionasse corretamente, por isso te passei parte do Bd para que pudesse ver exatamente a minha dúvida.

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta essa aí:

WHERE dataInicio <= ultimoDiaMes(mes/ano escolhido pelo usuario) AND dataFinal >= primeiroDiaMes(mes/ano escolhido pelo usuario)

Claro que você deve criar uma função que encontre o primeiroDiaMes(argumento) e ultimoDiaMes(argumento). Se não souber como criar as funções me avise.

Até a próxima.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite amigo Geraldo,

Vendo todas estas postagens em relação a este assunto, criei hoje um modelinho de fácil entendimento para verificar se enquadra no que necessita.

Entre no meu site: www.abbade.site40.net , depois access -> dicas.

Qualquer dúvida é só entrar em contato.

att,

Leandro

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...