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]Dúvida com Datas e Select

    baldocchi
    baldocchi
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 03/11/2014

    [Resolvido]Dúvida com Datas e Select Empty [Resolvido]Dúvida com Datas e Select

    Mensagem  baldocchi 10/3/2016, 15:39

    Eu não achei um exemplo que tenha minha dúvida.
    Se alguém puder ajudar agradeço demais.

    Eu fiz um select para pegar todos os registros com data igual ou mair que hoje, porém, o Access não retorna nenhum registro se a data pesquisa for no mesmo mês, só funciona quando eu crio um registro com uma data muito posterior.

    Por exemplo:
    Eu tenho um registro com data em 15/03/2016 e hoje é 10/03/2016.
    Quando eu faço o Select com a data de 10/03/2016 o Access diz que não registro.
    Mas, quando eu crio um registro com data de Dezembro, por exemplo, o Access retorna o registro procurado.

    Como eu resolvo isso? Mais uma vez, obrigado a todos.

    Olha o meu código:

    O código funciona só com datas muito posteriores às datas do campo "agendamento" da tabela t_agendamento.

    Private Sub AgendamentosGeral()
       Dim vsql As String
       Dim rstSql As DAO.Recordset
       Dim StrDtAgend, DtCompara As String
       
       StrDtAgend = Date
       
       vsql = "SELECT Agendamento FROM t_agendamento WHERE Agendamento >= #" & StrDtAgend & "#;"
         
       Set rstSql = CurrentDb.OpenRecordset(vsql)

       DtCompara = rstSql.Fields("Agendamento").Value

       If DtCompara <> "" Then
         CmdAgendamentos.Caption = "Existe um ou mais agendamentos. Clique aqui"
         Else
         CmdAgendamentos.Caption = "Sem agendamentos até este momento"
       End If



    End Sub


    Última edição por baldocchi em 10/3/2016, 17:27, editado 1 vez(es)
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  ronaldojr1 10/3/2016, 15:57

    eu passei por esse problema esses dias.
    o problema e o seguinte, quando fazemos uma consulta no modo visual do access usando uma data como filtro o mesmo usa a data no formata
    portugues bonitinho(dd/mm/aaaa). este é o mesmo formato do valor que vc cadastrou.

    quando usamos via VBA um select usando uma data como filtro o VBA usa as datas no formato americado(mm/dd/aaaa).

    para resolver esse problema eu converti a data para o formato americano, ai pra isso eu criei a seguinte funcao.

    Código:
    Function getDataFormatoAmericano(dataBrasil As Date) As String
        Dim dia, mes, ano As String
        
        dia = Day(dataBrasil)
        mes = Month(dataBrasil)
        ano = Year(dataBrasil)

    getDataFormatoAmericano = mes & "/" & dia & "/" & ano

    End Function

    seu codigo ficaria assim:
    Código:

    Private Sub AgendamentosGeral()
       Dim vsql As String
       Dim rstSql As DAO.Recordset
       Dim StrDtAgend, DtCompara As String
       DIM dataFormatoAmericano as DATE
      
       StrDtAgend = Date
      
       dataFormatoAmericano = getDataFormatoAmericano(StrDtAgend) ' converte a data para padrao americano

       vsql = "SELECT Agendamento FROM t_agendamento WHERE Agendamento >= #" & dataFormatoAmericano & "#;"
        
       Set rstSql = CurrentDb.OpenRecordset(vsql)

      'no codigo abaixo vc pode substituir por:
      'DtCompara = rstSQL!Agendamento | sintaxe é assim: RecordSet!NomeCampo
      'eu prefiro usar do jeito acima pq digita menos, mas ai é criterio seu usar ou nao. so dei a dica.

       DtCompara = rstSql.Fields("Agendamento").Value

       If DtCompara <> "" Then
         CmdAgendamentos.Caption = "Existe um ou mais agendamentos. Clique aqui"
         Else
         CmdAgendamentos.Caption = "Sem agendamentos até este momento"
       End If



    End Sub

    nao sei se tem outras formas de resolver, mas eu resolvi desse jeito.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  FabioPaes 10/3/2016, 16:15

    A titulo de aprendizado, Também Pode formatar direto na Consulta SQL:

    vsql = "SELECT Agendamento FROM t_agendamento WHERE Agendamento >= #" & Format(StrDtAgend, "dd/mm/yyyy") & "#;"


    Última edição por fabiopaes em 10/3/2016, 17:19, editado 1 vez(es)
    baldocchi
    baldocchi
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 03/11/2014

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  baldocchi 10/3/2016, 17:09

    Gente, muito obrigado aos dois.

    Eu fiz dos dois jeitos e os dois funcionam muito bem.

    Obrigado mesmo e que Deus vos abençoe.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  ronaldojr1 10/3/2016, 17:19

    vlw pela dica fabiopaes,
    isso vai me poupar de reinventar a roda. rsrss

    Também Pode formatar direto na Consulta SQL:

    vsql = "SELECT Agendamento FROM t_agendamento WHERE Agendamento >= #" & Format(StrDtAgend, "dd/mm/yyyy") & "#;"
    baldocchi
    baldocchi
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 03/11/2014

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  baldocchi 10/3/2016, 17:26

    ronaldojr1, como eu falei sou novo em Access/VBA.
    Sou obrigado a programar em VBA por motivo de eu trabalhar na Secretaria de Educação da Capital de São Paulo e esta ser a única ferramenta disponível.
    Desculpa se não entendo muito bem desta linguagem
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  ronaldojr1 10/3/2016, 17:34

    acho q me expressei mal ou vc entendeu errado, rsrsrs nao quis desmerecer ou questionar seus conhecimentos.
    eu apenas agradeci ao fabiopaes pela dica, pq eu tb nao conhecia essa funcao interna.
    Assim como vc tb sou iniciante. eu sei fazer alguns codigos e tal, mas aprendi td aqui no forum.
    quando eu disse em nao precisar reinventar a roda eu fiz uma autocritica para mim, pois, eu inventei um codigo que ja existe. entendeu agora?
    desculpe por ter me expressado mal, mas seja bem vindo ao forum, aqui e um otimo lugar para aprender.

    para finalizar... com a dica do fabiopaes vc nao precisa escrever a função q t passei. ai o codigo fica mais limpo.
    sucesso
    baldocchi
    baldocchi
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 03/11/2014

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  baldocchi 10/3/2016, 18:15

    mas eu escrevi a função que você passou.
    Eu testei as duas.
    Como eu falei antes, obrigado para os dois.

    Fique com Deus!
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  ronaldojr1 10/3/2016, 18:59

    vlw, sucesso pra nois

    Conteúdo patrocinado


    [Resolvido]Dúvida com Datas e Select Empty Re: [Resolvido]Dúvida com Datas e Select

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 05:16