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]Valor Padrão de data em Milissegundos

    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 4/8/2021, 01:10

    é possível um Valor Padrão de uma tabela com formato data ser convertido em Milissegundos ?

    meu problema é que, ao importar uma xml ela importa varias tabelas onde eu consigo fazer a ligação em 90% delas, porem em algumas não consigo pois não tem nada em comum.

                                          Exemplo:

              Tabela Produto                               Tabela icms00
    |campo01|campo02|campo02|         |campo01|campo02|campo02|
    |xxxxxxxx|yyyyyyyy|kkkkkkk|         |aaaaaaaa|bbbbbbb|ccccccccc|
    |xxxxxxxx|yyyyyyyy|kkkkkkk|         |aaaaaaaa|bbbbbbb|ccccccccc|


    eu preciso saber qual campo dessas tabelas importou primeiro, e no formato de data ele informa que as duas importaram exatamente no mesmo segundo.
    mas se eu conseguir mudar para a milissegundos ai teria diferenças entre datas entende. ja coloquei campo ID porem são varias tabelas icms para uma tabela produto.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  Alvaro Teixeira 6/8/2021, 08:42

    Olá Alex,

    Se tem o Office 365 ou versão 2019 existe um novo tio de campo de dados Data Extendida (Prolongada), veja:

    [Resolvido]Valor Padrão de data em Milissegundos 0182

    Caso seja numa versão inferior, podemos simular usando o Timer nativo do Access, veja por exemplo:
    Código:
    Format(Now, "yyyy-mm-dd hh:mm:ss") & Right(Format(Timer, "0.000"), 4)

    Espero que resolva.

    Abraço
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 6/8/2021, 22:47

    Primeiramente, Obrigado ahteixeira.

    Infelizmente esse ms access ainda é o 2010.   eu mencionei anteriormente que a data com milissegundo teria que estar no campo Valor Padão.

    esta dando um erro " Erro 'Tipos incompativeis' no valor padrão. " , ou tem algum erro na formula ou estou fazendo algo de errado.


    Última edição por alexjc em 6/8/2021, 22:50, editado 1 vez(es) (Motivo da edição : faltou um pedaço)
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3795
    Registrado : 04/04/2010

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  Avelino Sampaio 10/8/2021, 17:26

    Huumm, é bem complicado conseguir os milissegundos! Vai precisar de API's , segundo este artigo:

    devx.com/dbzone/Article/39046

    Copie e cole o endereço no seu navegador.

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 10/8/2021, 23:10

    Obrigado pela ajuda

    achei bem complexo para mim fazer dessa forma, vou tentar resolver meu problema de outra forma, pois eu descobri que se eu conseguir reiniciar a Numeração automática de uma campo da tabela chamado de id também ira funcionar

    ainda não sei como fazer isso mas vou estudar
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 11/8/2021, 00:22

    Olha já estou quase conseguindo meu objetivo.

    antes de importar a XML eu executo esse código

    On Error Resume Next

    DoCmd.DeleteObject acTable, "icms00"
    DoCmd.TransferDatabase acImport, "Microsoft Access", "C:\Users\alex\Desktop\APP\APP\ObrigaFacil 7.6.accdb", acTable, "icms00", "icms00", True

    DoCmd.DeleteObject acTable, "icms10"
    DoCmd.TransferDatabase acImport, "Microsoft Access", "C:\Users\alex\Desktop\APP\APP\ObrigaFacil 7.6.accdb", acTable, "icms10", "icms10", True

    ou seja ele deleta e cria a nova tabela com o campo numeração automática do zero novamente --- até aqui ok

    depois eu criei uma consulta união
    Exemplo:
    |orig | CST | OCST | ID |
    | 2 | 00 | 2001 | 1 |
    | 9 | 10 | 9101 | 1 |
    | 2 | 00 | 2002 | 1 |
    | 8 | 10 | 8102 | 1 |

    até aqui também esta ok


    depois em um formulário eu executo o código


    Dim a As Integer
    DoCmd.GoToRecord , "", acFirst ' vai para o primeiro registro
    For a = 1 To Me.Tot_Item Step 1

    'pega a cst da XML
    Me.Orig_XML = DLookup("orig", "cs_icms_cst", "orig <> '9999'") '--------------- aqui esta o erro -----------------
    Me.CST_XML = DLookup("cst", "cs_icms_cst", "cst <> '9999'") '--------------- aqui esta o erro -----------------

    DoCmd.GoToRecord , , acNext
    Next
    DoCmd.GoToRecord , "", acFirst ' vai para o primeiro registro




    em fim o problema esta no Dlookup que só pega o primeiro item da consulta união, sabe me dizer o por que ?

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3795
    Registrado : 04/04/2010

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  Avelino Sampaio 11/8/2021, 00:35

    Olá!

    tem que filtrar o Dlookup() para que capture o campo do registro apropriado.  Para isso é necessário informar o número exclusivo.  Algo assim:

    Me.Orig_XML = DLookup("orig", "cs_icms_cst", "orig <> '9999' and "NoCampoID ="& me!NoCampoId ) 
    Me.CST_XML = DLookup("cst", "cs_icms_cst", "cst <> '9999' and "NoCampoID ="& me!NoCampoId )


    Aguardamos


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 12/8/2021, 00:36

    infelizmente ainda não funcionou pois nas tabelas de ICMS00 e ICMS10, cada uma tem um campo chamado ID, porem quando faço a consulta união fica dois IDs iguais .
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3795
    Registrado : 04/04/2010

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  Avelino Sampaio 12/8/2021, 13:26

    Olá!

    Olhando com mais atenção ao seu código, percebo então que cs_icms_cst é a consulta união que vc criou. Se o formulário tem como origem essa consulta união, não irá precisar do Dloookup() e os campos em questão já estarão a sua disposição.

    Dim a As Integer
    DoCmd.GoToRecord , "", acFirst ' vai para o primeiro registro
    For a = 1 To Me.Tot_Item Step 1

    'pega a cst da XML
    msgbox me.orig
    msgbox me.cst

    DoCmd.GoToRecord , , acNext
    Next
    DoCmd.GoToRecord , "", acFirst ' vai para o primeiro registro


    Bom, o senhor pode nos oferecer um BD exemplo com a consulta união em questão e o formulário. Altere os dados originais, caso tenha informações não públicas.



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  Alvaro Teixeira 18/8/2021, 21:29

    Olá a todos

    Alex, gosto do simples, em relação à mensagem nr. 2 testei no 2003 e veja o resultado:

    [Resolvido]Valor Padrão de data em Milissegundos 0183

    Teste você mesmo:
    Código:
    =Format(Now();'yyyy-mm-dd hh:nn:ss') & Right(Format(Timer();'0.000');4)

    Não se esqueça de dar continuidade à sugestão do nosso colega e grande Mestre Avelino Sampaio.

    Abraço a todos
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 18/8/2021, 23:59

    Primeiramente Obrigado a vcs dois,

    o Código que vcs me passaram se eu simplesmente copio e colo ele da erro e não deixa eu salvar
    =Format(Now();'yyyy-mm-dd hh:nn:ss') & Right(Format(Timer();'0.000');4)

    mas como o meu MS Access esta em português
    =Format(Agora(),"yyyy-mm-dd hh:nn:ss") & Direita(Format("Cronômetro",'0.000'),4)

    assim ele aceita porem os dados sai assim
    2021-08-18 18:53:04etro

    na palavra Cronômetro logo quando eu dou enter para sair do campo Valor Padrão, o access automaticamente coloca aspas.
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 19/8/2021, 00:04

    Depois de verificar com mais calma eu achei onde eu estava errando, cfe orientações de vcs deu certo o código ficou assim







    =Format(Agora(),"yyyy-mm-dd hh:nn:ss") & Direita(Format(Cronômetro(),'0.000'),4)

    depois da palavra cronometro eu estava esquecendo do (),


    Obrigado a vcs Dois e ao Forum

    mas os produtos ainda estão sendo importado no mesmo milésimo de segundo ou seja a cada milésimo e ele importa ums 5 cada, teria como eu aumentar a fração  tipo '0.0000000", Cool

    tentei até assim
    =Format(Agora(),"nn:ssssss") & Direita(Format(Cronômetro(),'0.000.000'),7)
    sai assim 29:252525070.166
                 29:252525070.166
                 29:252525070.166
                 29:252525070.166


    mas acredito que não tem jeito mesmo, o access importa vários produtos no mesmo instante

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  Alvaro Teixeira 19/8/2021, 11:08

    Olá Alex,

    Tente assim:
    Código:
     = Agora() & Cronômetro()

    Abraço
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/02/2016

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  alexjc 19/8/2021, 20:15

    agora funcionou perfeitamente.

    eu tive que acrescentar uma divisão no final por 100

    ficou assim

    = Agora() & Cronômetro() /100

    Pessoal Muito obrigado !

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Valor Padrão de data em Milissegundos Empty Re: [Resolvido]Valor Padrão de data em Milissegundos

    Mensagem  Alvaro Teixeira 20/8/2021, 09:27

    Olá Alex,

    Obrigado pelo feedback, fico feliz por ter conseguido resolver.

    Abraço a todos

      Data/hora atual: 3/12/2022, 03:10