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]Grupo de opções - Função não funciona (Formato da data)

    Compartilhe

    Ricardo84
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 53
    Registrado : 18/01/2014

    [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Ricardo84 em Ter 19 Ago 2014, 00:17

    Olá. Tenho uma função que encontrei neste video . Ora o que pretendo é quase exatamente isso. A única diferença é que queria que a última opção fosse SEMANA SEGUINTE (a começar na segunda e acabar na sexta) em vez de ESTA SEMANA, alterei essa parte do código e em vez de ser + 2 ficou + 7 (não sei se há outra maneira ou se é isso que esta a fazer funcionar mal).

    No video o campo que tem a data chama-se weekdate, no meu é DataInicio (que será o inicio do período de férias), até aí pensei que td funcionasse bem, mas não foi bem isso que aconteceu. Eu julgo que tem a ver com o formato da data, (mm/dd/aaaa e na minha BD é dd/mm/aaaa) já tentei alterar a função, mas sem sucesso.

    O problema está que no período 11/10/201 a 12/10/2014 aparece como sendo deste trimestre, mês e semana seguinte o de 10/11/2013 a 20/11/2013 já não, mas é de outro ano.

    Fica aqui a função:

    Private Sub grpChoice_AfterUpdate()
     
     Dim dDate As Date
     
     Select Case grpChoice.Value
       
       Case 1: dDate = "1/1/1900"
       
           Case 2: dDate = "1/1/" & Year(Date)
           
       'Alterei o 2 pelo 7 para poder ver a semana seguinte, mas não sei se será a melhor maneira.
       'Ajuda neste ponto. Mesmo com o 2 vejo o período de outubro e de novembro na semana seguinte, neste mês e neste trimestre (deviam estar no 4º trimestre)
           
               Case 3:
                  Select Case Month(Date)
                  Case 1 To 3: dDate = "1/1/" & Year(Date)
                  Case 4 To 6: dDate = "4/1/" & Year(Date)
                  Case 7 To 9: dDate = "7/1/" & Year(Date)
                  Case 10 To 12: dDate = "10/1/" & Year(Date)
                End Select
               
           Case 4: dDate = Month(Date) & "/1/" & Year(Date)
           
       Case 5: dDate = Date - Weekday(Date) + 7
     
     End Select
     
     Me.Timesheets_SubForm.Form.Filter = "[Datainicio]>=#" & dDate & "#"
       
       Me.Timesheets_SubForm.Form.FilterOn = True
           If dDate = "1/1/1900" Then
       Me.Timesheets_SubForm.Form.FilterOn = False
     
     End If

    End Sub


    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6204
    Registrado : 05/11/2009

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Alexandre Neves em Ter 19 Ago 2014, 08:29

    Bom dia,
    Os dados não são significativos. Só deu conta destes erros porque não colocou nenhuma data de anos posteriores.
    Sobre o filtro, como quer que o período seja delimitado:
    - início e fim dentro do período escolhido?
    ou
    - alguma parte do período dentro do período escolhido?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  ahteixeira em Ter 19 Ago 2014, 08:46

    Olá, já temos abordado aqui a questão.
    Na minha modesta opinião é uma incompatibilidade de idiomas no campo data:
      Em portugues dd/mm/yyyy
      Em Americano (ou neutro) mm/dd/yyyy

    Já tive o mesmo problema e só consegui resolver formatando a data assim:
    Format(Me!DataTeste, "mm-dd-yyyy")

    Ficamos aguardar retorno.
    Abraço

    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  ahteixeira em Ter 19 Ago 2014, 09:04

    Caro Alexandre Neves, não tinha visto que já tinha respondido à questão do colega.
    Abraço
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6204
    Registrado : 05/11/2009

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Alexandre Neves em Ter 19 Ago 2014, 09:05

    Olá teixeira,
    Tudo bem. Estamos todos no mesmo sentido e sem ciúmes. Não há concorrência!
    Abraço,


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  ahteixeira em Ter 19 Ago 2014, 09:12

    Obrigado, ficamos aguardar retorno do colega.
    Abraço

    Ricardo84
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 53
    Registrado : 18/01/2014

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Ricardo84 em Ter 19 Ago 2014, 13:32

    Boa tarde,

    Alexandre, o que pretendo é ver todas os períodos de férias em que a data de início seja entre a segunda-feira da semana seguinte e sexta-feira . Por exemplo, hj e terça-feira, ao escolher a opção semana seguinte vejo todos os períodos que se iniciam na semana seguinte (não importa a data de fim) mas só naqueles 5 dias. Dai ter experimentado alterar a parte da função que tem +2 para mais +7.

    Também reparei que o erro acontece com datas de anos posteriores, mas por acaso não pus nenhum exemplo. Essa ainda percebo por causa do Case 2. Esse devia usar a função between 1/1/ANO e 31/12/ANO, certo? Da para corrigir isso?

    Os trimestres se não ficarem operacionais, não há gd crise, excluo essa opção. Mas as outras gostava que estivessem certinhas, pois é necessario emitir uma guia de licença para quem inicia o período de licença (férias, paternidade, etc) e queria que só se visse quem inicia na semana seguinte.

    Teixeira, não percebi bem. Teria de formatar a data no subformulario ou na tabela bastava e no formulário ficava conforme esta, já que é assim que estamos habituados a ver?

    Desde já obrigado.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6204
    Registrado : 05/11/2009

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Alexandre Neves em Ter 19 Ago 2014, 14:31

    Substitua o código que tem por este

    Private Sub grpChoice_AfterUpdate()
    Dim strFiltro As String
    Select Case grpChoice.Value
    Case 1
    Case 2
    strFiltro = "DataInicio>=#1/1/" & Year(Date) & "# and DataInicio<=#1/1/" & Year(Date) + 1 & "#"
    Case 3
    Select Case Month(Date)
    Case 1 To 3
    strFiltro = "DataInicio>=#1/1/" & Year(Date) & "# and DataInicio<#4/1/" & Year(Date) & "#"
    Case 4 To 6
    strFiltro = "DataInicio>=#4/1/" & Year(Date) & "# and DataInicio<#7/1/" & Year(Date) & "#"
    Case 7 To 9
    strFiltro = "DataInicio>=#7/1/" & Year(Date) & "# and DataInicio<#10/1/" & Year(Date) & "#"
    Case 10 To 12
    strFiltro = "DataInicio>=#10/1/" & Year(Date) & "# and DataInicio<#1/1/" & Year(Date) + 1 & "#"
    End Select
    Case 4
    strFiltro = "Format(DataInicio,'mm-yyyy')='" & Format(Date, "mm-yyyy") & "'"
    Case 5
    strFiltro = "Format(DataInicio,'ww-yyyy')='" & Format(Date + 7, "ww-yyyy") & "'"
    End Select
    Me.Timesheets_SubForm.Form.Filter = strFiltro
    Me.Timesheets_SubForm.Form.FilterOn = True
    If dDate = "1/1/1900" Then
    Me.Timesheets_SubForm.Form.FilterOn = False
    End If
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  ahteixeira em Ter 19 Ago 2014, 15:32

    Olá de novo.
    No meu caso sempre que tive que formatar foi no código nas instruções em VBA.

    Exemplo de instrução de uma aplicação, onde tive que formatar a data:
    Código:
    DoCmd.RunSQL "UPDATE MOVIMENTOS SET MOVIMENTOS.CTB = -1 WHERE MOVIMENTOS.DataMov = #" & Format(Me.DataDoc, "mm-dd-yyyy") & "# AND MOVIMENTOS.TipoMov = 8 AND MOVIMENTOS.Abate = 0 "

    Código:
    [NrMOV] = Format(DMax("NrLote", "MovLotes", "[DataLote] = #" & Format(Me.DataLote, "mm-dd-yyyy") & "# ") + 1, "0000000000")

    Abraço

    Ricardo84
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 53
    Registrado : 18/01/2014

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Ricardo84 em Ter 19 Ago 2014, 17:04

    Alexandre, ficou exatamente aquilo que pretendo. Obrigado pela ajuda. Já experimentei com várias datas e funciona sempre bem Smile.

    Teixeira, obrigado tb. Mas a função do Alexandre era msm o que queria. No entanto reparei na parte em que está lá o UPDATE. E que tb estou com uma dúvida em relação a uma consulta de UPDATE de um campo em uma tabela. Lg vou mostrar a situação. E que não sei se a consulta vai atualizar o campo sem a correr. Logo explico melhor. Em relação a este tópico está resolvido Very Happy
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  ahteixeira em Ter 19 Ago 2014, 17:48

    Olá Ricardo, obrigado pelo retorno.
    Cá estaremos, até à próxima, Abraço
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6204
    Registrado : 05/11/2009

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Alexandre Neves em Ter 19 Ago 2014, 18:07

    Falta o Resolvido


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Ricardo84
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 53
    Registrado : 18/01/2014

    Re: [Resolvido]Grupo de opções - Função não funciona (Formato da data)

    Mensagem  Ricardo84 em Ter 19 Ago 2014, 22:47

    Não sabia que era eu qur dava, peço dscp.  Embarassed 

      Data/hora atual: Seg 26 Jun 2017, 09:48