MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

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
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 49
    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.]

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    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

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3217
    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


    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3217
    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

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    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

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3217
    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
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 49
    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.

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    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

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3217
    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
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 49
    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

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3217
    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

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    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
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 49
    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: Sex 09 Dez 2016, 13:26