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]Consulta com data

    avatar
    mauro pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 23/06/2011

    [Resolvido]Consulta com data Empty consulta com data

    Mensagem  mauro pereira 25/6/2011, 20:57

    Boa tarde senhores.
    CONTEXTUALIZAÇÃO: Fiz um pequeno gerenciador de arquivos para meu setor de licitações e contratos no órgão em que eu trabalho. Nele eu tenho, entre outras consultas, duas, sendo que uma me informam os processos em andamento (A) e outra que informa todos os processos que tramitaram pelo setor(B), informando aqueles que estão em andamento e aqueles concluídos. A primeira consulta é mais simples com menos campos. A segunda consulta além dos dados constantes na consulta (A) constam o nome do vencedor da licitação, o valor estimado e o valor contratado .
    As duas consultas tem campos chamados DataEntrada e DataSaida e apenas na consulta (B) usei a função copiada em módulo descrita abaixo.
    O QUE QUERO: que nas duas consultas seja mostrado o numero de dias úteis que o processo ou levou para ser concluído ou, caso não tenho sido concluído, que me retorne o número de dias úteis até a data da consulta.
    PROBLEMA: Na consulta (B) quando o meu processo ainda não está concluso eu não tenho, logicamente, um registro no campo DataSaida, fazendo com que seja retornado um erro no campo Tempo Decorrido.
    Na consulta (A) ainda não utilizei nenhum tipo de função e logicamente ainda não está funcionando.
    Imagino que para os senhores seja um problema fácil de ser resolvido, mas não sou da área de TI o que consegui fazer até agora foi movido apenas pela curiosidade e a vontade de acertar.
    Obrigado pela atenção de todos.

    _____________________________________________________________________________________
    Public Function DTS(DataEntrada As Date, DataSaída As Date, Optional HojeTb As Boolean = False, Optional UltTb As Boolean = False) As Integer
    '....................................................................
    ' Nome: DTS
    ' Entradas: DataEntrada As Date
    ' DataSaída As Date
    ' HojeTb As Boolean
    ' UltTb As Boolean
    ' Saída: Integer
    ' Autor: Arvin Meyer
    ' Data: Maio 5,2002
    ' Comentário: Aceita duas datas e devolve o número de dias úteis
    ' entre elas. Note-se que esta função considera os feriados
    ' do período. Ela exige a existência de uma tabela chamada
    ' tblFeriados com um campo, no formato data, chamado FerData.
    ' Se HojeTb = True, a data inicial também será considerada.
    ' Se UltTb = true, a data final também será considerada.
    '....................................................................
    On Error GoTo Err_DTS

    Dim intCount As Integer
    Dim rst As DAO.Recordset
    Dim DB As DAO.Database

    Set DB = CurrentDb
    Set rst = DB.OpenRecordset("SELECT [FerData] FROM tblFeriados", dbOpenSnapshot)

    If Not HojeTb Then
    DataEntrada = DataEntrada + 1
    End If
    ' Se desejar contar a data de início, passe True em HojeTb

    intCount = 0

    If UltTb Then
    Do While DataEntrada <= DataSaída
    rst.FindFirst "[FerData] = #" & Format(DataEntrada, "mm/dd/yyyy") & "#"
    If Weekday(DataEntrada) <> vbSunday And Weekday(DataEntrada) <> vbSaturday Then
    If rst.NoMatch Then intCount = intCount + 1
    End If
    DataEntrada = DataEntrada + 1
    Loop
    Else
    Do While DataEntrada < DataSaída
    rst.FindFirst "[FerData] = #" & Format(DataEntrada, "mm/dd/yyyy") & "#"
    If Weekday(DataEntrada) <> vbSunday And Weekday(DataEntrada) <> vbSaturday Then
    If rst.NoMatch Then intCount = intCount + 1
    End If
    DataEntrada = DataEntrada + 1
    Loop
    End If
    DTS = intCount

    Exit_DTS:
    Exit Function

    Err_DTS:
    Select Case Err

    Case Else
    MsgBox Err.Description
    Resume Exit_DTS
    End Select

    End Function

    '*********** Code End **************
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  Convidado 25/6/2011, 21:24

    Amigão.. pelo que entendi.. no caso B.. da erro pois a função requer dois campos de data..
    Data inicial e data final...

    Voce pode experimentar alterar na funçã o segundo campo Data (DataFinal) para a data do sistema colocando
    ou Date ou Now...

    No caso A creio que essa função tal como esta funcione...

    é uma ideia..

    Caso não consiga pode postar parte do seu BD aqui para que possamos ajudá-lo
    Saudações
    avatar
    mauro pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 23/06/2011

    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  mauro pereira 25/6/2011, 21:44

    Obrigado por responder, amigo.
    Veja bem, na consulta que eu estou chamando de (B), que me retorna todos os processos (concluídos ou não), eu preciso manter o campo DataSaida para inserir um registro que pode ser diferente de hoje. O processo pode ter entrado dia 01/01/2011 e saído dia 10/06/2011. Neste caso a função vai funcionar direitinho pois tem as duas datas disponíveis para me retornar o numero de dias úteis necessários para concluir o processo.
    No caso da consulta que eu chamei de (A) que me retorna somente os processos em andamento, eu, como gestor, preciso saber quanto tempo o processo está com o servidor fulano de tal. Portanto, como eu não teria o campo DataSaida talvez funcione legal se eu substituir DataSaida por Date ou Now, mas neste caso eu precisaria de duas rotinas no módulo, está correto?

    Em relação a enviar parte do BD para análise de vocês seria interessante, mas não sei como fazê-lo.
    Obrigado


    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  Convidado 25/6/2011, 22:27

    Exato.. crie duas funçoes no mesmo módulo, tomando cuidado para alterar o nome de cada função...

    Modulo xxxxx

    '***************
    Public Function DTS
    (DataEntrada As Date, DataSaída As Date, Optional HojeTb As Boolean = False, Optional UltTb As Boolean = False) As Integer
    Restante código >>>>


    Public Function DTS_1(DataEntrada As Date, DataSaída As Date, Optional HojeTb As Boolean = False, Optional UltTb As Boolean = False) As Integer
    Restante código >>>>


    Bem.. teste assim
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  Convidado 25/6/2011, 22:47

    Pode me enviar no e-mail que posto aqui..

    Harysohn@hotmail.com
    avatar
    mauro pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 23/06/2011

    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  mauro pereira 27/6/2011, 11:46

    Bom dia foristas.
    Estive pensando em uma forma mais simples de resovler meu problema, porém gostaria da ajuda de vocês.
    Talvez fosse melhor incluir algumas linhas na função que eu já estou estou utilizando (primeiro post) incluindo uma condição. Algo assim: caso não haja registro no campo DataSaida, então considere DataSaida=hoje e aí o resultado será o número de dias úteis até a data da consulta. Dessa forma eu poderia utilizar a mesma função para as duas consultas e evitar a informação de #Erro no campo correspondete ao tempo decorrido.
    Alguém poderia me dizer se meu raciocínio está correto? Caso afirmativo, como e aonde devo escrever essa condicional em VBA?
    Grato pela ajuda.


    P.S. Harysohn enviei o arquivo para o teu e-mail.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  JPaulo 27/6/2011, 12:05

    Não necessita de alterar o código, pode fazer esse tratamento direto na consulta;

    Tempo Decorrido: IIf(IsNull([DataSaida]);DTS([DataEntrada];Date());DTS([DataEntrada];[DataSaida]))




    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Consulta com data Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Consulta com data Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Consulta com data Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  Convidado 27/6/2011, 12:18

    Very Happy Perfect
    avatar
    mauro pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 23/06/2011

    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  mauro pereira 27/6/2011, 12:24

    Perfeito, JPaulo funciona certinho.
    Agora, como faço para que na outra consulta não dê erro quando não houver registro no campo DataSaida?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  JPaulo 27/6/2011, 12:50

    Como assim na outra consulta ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Consulta com data Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Consulta com data Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Consulta com data Folder_announce_new Instruções SQL como utilizar...
    avatar
    mauro pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 23/06/2011

    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  mauro pereira 27/6/2011, 12:56

    Desculpa. Ok JPaulo. Resolvido.
    Muitíssimo obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  criquio 27/6/2011, 13:09

    Então vamos colocar o Resolvido.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Consulta com data Empty Re: [Resolvido]Consulta com data

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 03:11