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


4 participantes

    [Resolvido]Formatando data

    avatar
    Evilazio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 28/05/2011

    [Resolvido]Formatando data Empty Formatando data

    Mensagem  Evilazio 9/7/2011, 23:08

    Ola pessoal,criquiu,JPaulo!

    Não estou conseguindo inserir a data no formato correto esta registrando mm-dd-yyyy, já tentei o código abaixo mas não fez diferença.

    DoCmd.RunSQL "INSERT INTO controle_ponto (cd,entrada1,pontodata) select " & Me.txt_rf & ",#" & Time & "#,#" & Format(Date, "dd-mm-yyyy") & "#"

    consegui o formato correto usando Date$ porém

    bagunça com o restante, existe outro caminho?
    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]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  criquio 10/7/2011, 01:20

    Tente assim:

    DoCmd.RunSQL "INSERT INTO controle_ponto (cd,entrada1,pontodata) Values(" & Me.txt_rf & "," & Time & "," & Format(Date, "dd-mm-yyyy") & ");"


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

    avatar
    Evilazio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 28/05/2011

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Evilazio 11/7/2011, 19:19

    Não deu certo deu uma mensagem de erro "operador faltando 22:35:23", então coloquei o time entre ##, e registrou a seguinte data 30/06/1894, depois coloquei a date entre ##, ai ferrou tudo voltei ao zero.
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  chsestrem 12/7/2011, 02:05

    Amigão, apenas uma pequena ressalva.

    Se você quer usar SQL diretamente em VBA,

    seria interessante tratá-lo de forma convecional.

    Geralmente declaramos a SQL como String e mandamos executá-la via código.

    INSERT e UPDATE são comandos de execução, portanto o método mais comum a

    a ser aplicado é o Execute.

    Se você quiser o divisor de datas com Hífen terá que formatar o campo da

    tabela como dd-mm-yyyy.

    teste o código abaixo em um botão:

    Private Sub SeuBotao_Click()
    Dim strsql As String

    strsql = "INSERT INTO controle_ponto ( cd, entrada1, pontodata ) "
    strsql = strsql & "VALUES('" & Me.txt_rf & "', Format(Time(), ""HH:mm:ss""), "
    strsql = strsql & "Format(Date(), ""dd-mm-yyyy""); "

    CurrentDb.Execute strsql ' Executa o código no Banco Corrente

    End Sub

    Espero ter ajudado

    Sds,


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    Evilazio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 28/05/2011

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Evilazio 13/7/2011, 19:20

    Ola amigo!
    Está dando erro de sintaxe na expressão Format.
    avatar
    Convidado
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidado 13/7/2011, 20:11

    Tente em nas expressões com format substituir as aspas duplas por simples

    strsql = strsql & "Format(Date(), "'dd-mm-yyyy,'"); "

    ou assim

    strsql = strsql & "Format(Date(), dd-mm-yyyy,);
    avatar
    Convidado
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidado 15/7/2011, 17:22

    Amigão fiz um teste com o que me enviou.. pude observa um erro primeiramente


    Quando não há funcionário cadastrado ele emite o aviso, porem continua a correr o código... e dá erro na linha


    If IsNull(DLookup("[entrada1]", "controle_ponto", "[cd]=" & Me!txt_rf & " and pontodata=#" & Date & "#")) Then


    Para em caso de não encontrar funcionário.. apliquei o seguinte:


    If IsNull(DLookup("[cd]", "funcionario", "[cd]=" & Me!txt_rf)) Then
    MsgBox "Registro não encontrado !", vbOKOnly + vbCritical, "Atenção"
    Me.txt_rf.Value = ""
    Exit Sub 'o anterior era cancel event, mas mesmo assim continuava o codigo, creio o exit sub ser o mais apropriado



    Quanto as Datas na tabela... efetuei um teste com o código:


    DoCmd.RunSQL "INSERT INTO controle_ponto (cd,entrada1,pontodata) select " & Me.txt_rf & ",#" & Time & "#,#" & Date & "#"


    e foram inseridos os dados da seguinte maneira:

    entrada1: 13:15:32
    saida1: 13:15:34
    entrada2: 13:15:36
    saida2: 13:15:39
    Pontodata: 15/07/2011



    Me parece tudo certo!


    Aguardo
    avatar
    Convidado
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidado 15/7/2011, 17:32

    O problema ai deve estar nas configurações de data do Windows!!! pois quando se usa a data do sistema, ela puxa a configuração do windows portanto as configurações do windows deve estar no formato

    dd/MM/aaaa - fiz um teste aqui.. e podes executá-lo ai...

    Com a tabela aberta.. mude o formato da data do windows.. e a data muda de formato automaticamente na tabela de acordo com a opção selecionada no windows!!!!


    Fiz o teste utilizando este código...


    If MsgBox("CLICK EM OK OU TECLE ENTER PARA CONFIRMAR!", vbOKCancel, "REGISTRAR PONTO") = vbOK Then

    If IsNull(DLookup("[entrada1]", "controle_ponto", "[cd]=" & Me!txt_rf & " and pontodata=#" & Date & "#")) Then


    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "INSERT INTO controle_ponto (cd,entrada1,pontodata) select " & Me.txt_rf & ",#" & Time & "#,#" & Date & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    ElseIf IsNull(DLookup("[saida1]", "controle_ponto", "[cd]=" & Me!txt_rf & " and pontodata=#" & Date & "#")) Then

    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "UPDATE controle_ponto set saida1=#" & Time & "# where cd= " & Me.txt_rf & " and pontodata= #" & Date & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    ElseIf IsNull(DLookup("entrada2", "controle_ponto", "cd=" & Me!txt_rf & " and pontodata=#" & Date & "#")) Then

    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "UPDATE controle_ponto set entrada2= #" & Time & "# where cd= " & Me.txt_rf & " and pontodata=#" & Date & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    ElseIf IsNull(DLookup("saida2", "controle_ponto", "cd=" & Me!txt_rf & " and pontodata=#" & Date & "#")) Then

    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "UPDATE controle_ponto set saida2= #" & Time & "# where cd= " & Me.txt_rf & " and pontodata=#" & Date & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    avatar
    Convidad
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidad 15/7/2011, 19:30

    Se neste tópico funcionava, como não funciona mais ?

    http://maximoaccess.forumeiros.com/t2789-resolvidoregistrando-ponto

    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  vieirasoft 15/7/2011, 19:46

    Boa tarde Miguel

    O que é que não funciona colega, a aplicação ou o link?
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  vieirasoft 15/7/2011, 20:00

    Não está a funcionar o link.
    avatar
    Convidad
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidad 15/7/2011, 20:10

    Não é nada disso amigo Vieira.

    Se o codigo ajudado pelo JPaulo no outro tópico estava a funcionar com as datas, derrepente deixou de funcionar ?

    Também gostaria de perceber, como é que de um momento para o outro a data começou a ser introduzida com o mês no meio, assim colocarei os meus aplicativos a salvo. Laughing


    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  vieirasoft 15/7/2011, 20:15

    Vou informar o nosso Mestre que o exemplo está com problemas. Agradeço Miguel a sua observação.
    avatar
    Convidado
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidado 15/7/2011, 20:55

    Vierão.. eu testei e está normal... ele havia me enviado ontem o BD

    Está normal...

    Fiz um teste aqui.. e se o formato da data no windows for alterada....

    Este código grava na tabela assim como está configurado no windows...

    Creio que o problema é so este


    Saudações
    avatar
    Evilazio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 28/05/2011

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Evilazio 15/7/2011, 22:10

    Ola pessoal!

    Verifiquei o formato de data do sistema e esta correto, por favor faça o seguinte teste, altere o dia da data para um valor menor que 12 e diferente do mês exemplo 06/07/2011 e veja se ocorre alteração no formato.
    avatar
    Convidado
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidado 15/7/2011, 22:24

    Realmente.. inverteu o mes e o dia...

    verei se consigo resolver
    avatar
    Convidado
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidado 15/7/2011, 22:31

    Substitua o código por este e resolve este problema.


    Private Sub txt_rf_AfterUpdate()

    If IsNull(Me.txt_rf.Value) Or Me.txt_rf.Value = "" Then

    MsgBox "O campo RF está vazio!", vbCritical + vbOKOnly, "Atenção!"

    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    ElseIf Not IsNumeric(Me.txt_rf.Value) Then

    MsgBox "Insira apenas números!", vbCritical + vbOKOnly, "Atenção!"
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""
    End If


    Dim sql As String
    Dim rst As Recordset

    sql = "SELECT * FROM funcionario WHERE cd=" & Me.txt_rf.Value

    Set rst = CurrentDb.OpenRecordset(sql)

    If IsNull(DLookup("[cd]", "funcionario", "[cd]=" & Me!txt_rf)) Then
    MsgBox "Registro não encontrado !", vbOKOnly + vbCritical, "Atenção"
    Me.txt_rf.Value = ""
    Exit Sub
    Else
    Me.txt_aviso.Visible = True
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = rst!nm_funcionario
    Me.foto.Visible = True
    Me.foto = rst!foto
    End If


    If MsgBox("CLICK EM OK OU TECLE ENTER PARA CONFIRMAR!", vbOKCancel, "REGISTRAR PONTO") = vbOK Then

    If IsNull(DLookup("[entrada1]", "controle_ponto", "[cd]=" & Me!txt_rf & " and pontodata= #" & Format(Date, "mm/dd/yyyy") & "#")) Then


    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "INSERT INTO controle_ponto (cd,entrada1,pontodata) select " & Me.txt_rf & ",#" & Time & "#, #" & Format(Date, "mm/dd/yyyy") & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    ElseIf IsNull(DLookup("[saida1]", "controle_ponto", "[cd]=" & Me!txt_rf & " and pontodata= #" & Format(Date, "mm/dd/yyyy") & "#")) Then

    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "UPDATE controle_ponto set saida1=#" & Time & "# where cd= " & Me.txt_rf & " and pontodata= #" & Format(Date, "mm/dd/yyyy") & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    ElseIf IsNull(DLookup("entrada2", "controle_ponto", "cd=" & Me!txt_rf & " and pontodata= #" & Format(Date, "mm/dd/yyyy") & "#")) Then

    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "UPDATE controle_ponto set entrada2= #" & Time & "# where cd= " & Me.txt_rf & " and pontodata= #" & Format(Date, "mm/dd/yyyy") & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    ElseIf IsNull(DLookup("saida2", "controle_ponto", "cd=" & Me!txt_rf & " and pontodata= #" & Format(Date, "mm/dd/yyyy") & "#")) Then

    DoCmd.SetWarnings False 'desativa a exibição de mensagens do sistema
    DoCmd.RunSQL "UPDATE controle_ponto set saida2= #" & Time & "# where cd= " & Me.txt_rf & " and pontodata= #" & Format(Date, "mm/dd/yyyy") & "#"
    DoCmd.SetWarnings True 'ativa a exibição de menssagens do sistema
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""

    End If
    Else
    Me.txt_rf.Value = Null
    Me.txt_aviso.Visible = False
    Me.txt_aviso.BorderStyle = 0
    Me.txt_aviso.Caption = ""
    Me.foto.Visible = False
    Me.foto = ""
    Exit Sub
    End If

    Set rst = Nothing
    End Sub


    Saudações
    avatar
    Evilazio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 28/05/2011

    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Evilazio 16/7/2011, 04:21

    É isso mesmo, simples assim...quebrando a cabça e a solução tão simples "se não pode vencelos junte-se a eles".
    Finaliza uma parte! Valeu pela luz!
    avatar
    Convidado
    Convidado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Convidado 16/7/2011, 13:37

    O Fórum agradece o Retorno.
    Bom Trabalho

    Conteúdo patrocinado


    [Resolvido]Formatando data Empty Re: [Resolvido]Formatando data

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 09:25