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


2 participantes

    [Resolvido]Importar TXT

    avatar
    SoniaRamos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 6
    Registrado : 02/06/2015

    [Resolvido]Importar TXT Empty [Resolvido]Importar TXT

    Mensagem  SoniaRamos 3/6/2015, 17:54

    Boa tarde
    Sou nova no grupo e na programação também, preciso de ajuda para resolver um campo do tipo data.
    Tenho que importar um TXT que é gerado da nota fiscal eletrônica para o access.
    Tem um campo que recebia somente a data e agora tem que receber: 2015-03-02T14:54:00-03:00.
    Só consegui tornando a variável dEmis uma string.

    Tem outra forma de fazer com que a variável seja data/hora e receba todo esse campo dEmis =2015-03-02T14:54:00-03:00
    Como o tipo data/hora tem 8 bytes não sei se é possivel, pois tem o T que é separador de tempo e mais o UTC 03:00

    Private Type NFE_RegB
    dEmis As Date

    Dim RegB As NFE_RegB

    Dim strTipoReg As String
    Do
       intPosicaoPipe = PrimeiroPipe()
       intPosicaoProximoPipe = 0
       strTipoReg = Mid(strLinha, 1, intPosicaoPipe - 1)
       
    Select Case strTipoReg
    Call AvancaCampo
    RegB.dEmi = PegaCampoDate()

    Private Function PegaCampoDate() As Date

    Desde já agradeço  a atenção.
    Dim strDate As String
    strDate = Mid(strLinha, intPosicaoPipe + 1, (intPosicaoProximoPipe - intPosicaoPipe) - 1)
    PegaCampoDate = CDate(Right(strDate, 2) & "/" & Mid(strDate, 6, 2) & "/" & Left(strDate, 4))
    End Function

    Private Sub GravaRegB(RegB As NFE_RegB)
    Dim strSQL As String
    strSQL = "INSERT INTO NFE_RegistrosB "
    Dim strValues As String
    Dim strFields As String
    strValues = strValues & "#" & Format(RegB.dEmi, "mm/dd/yyyy") & "#" & ", "
    strFields = strFields & "dEmi, "
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  chsestrem 3/6/2015, 21:05

    Olá Sonia,

    Bem vindo ao Forum.

    Qual o resultado esperado ?

    de 2015-03-02T14:54:00-03:00

    para 2015-03-02 ?

    Usando Left:

    left("2015-03-02T14:54:00-03:00",instr("2015-03-02T14:54:00-03:00","T")-1)

    Usando Split:

    Dim VarSplit
    Dim Resultado
    VarSplit = split("2015-03-02T14:54:00-03:00","T")

    Resultado = varsplit(0)

    Sds,


    Sds,


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 6
    Registrado : 02/06/2015

    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  SoniaRamos 8/6/2015, 14:42

    Bom dia Chsestrem

    Obrigada pela atenção!

    Na verdade não me expressei direito é de:

    de 2015-03-02T14:54:00-03:00

    para 2015-03-02 14:54:00

    Estou tentando fazer com a sua dica.
    Retorno

    Até mais
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  chsestrem 8/6/2015, 18:30

    Boa tarde,

    Então vamos requerer o resultado esperado usando Left com Mid

    Código:

    Sub RetornaData()

    Dim strData As String
    Dim StrResult As Date

    'Atribuir a variável da data como string
    strData = "2015-03-02T14:54:00-03:00"

    'Atribuir a variável como data tirando o T e o horário GMT
    StrResult = Left(strData, InStr(strData, "T") - 1) & " " & Mid(strData, InStr(strData, "T") + 1, 8)

    'Imprimir na Janela Imediata - "Ctrl + G"
    Debug.Print StrResult

    End Sub

    Sds,


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 6
    Registrado : 02/06/2015

    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  SoniaRamos 9/6/2015, 15:23

    Bom dia Chsestrem

    Vou testar no meu código.

    Até mais.
    avatar
    SoniaRamos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 6
    Registrado : 02/06/2015

    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  SoniaRamos 10/6/2015, 18:49

    Não estou conseguindo fazer funcionar.
    Tem mais alguma dica para me passar?

    Com a dica que me  deste tentei fazer desta forma, mas não funciona.
    Tentei também colocar o teu código como esta e ajustando, mas não consegui.

    Private Type NFE_RegB

    dEmi As String      //Aqui está com o tipo string, mas na tabela esta como Date.
    dSaiEnt As String

    Dim RegB As NFE_RegB

    Dim strTipoReg As String

    Do
       intPosicaoPipe = PrimeiroPipe()
       intPosicaoProximoPipe = 0
       strTipoReg = Mid(strLinha, 1, intPosicaoPipe - 1)
       
    Select Case strTipoReg
               Call AvancaCampo
               RegB.dEmi = PegaCampoDate_hora()
               
               Call AvancaCampo
               RegB.dSaiEnt = PegaCampoDate_hora()
         
                     
    Private Function PegaCampoDate() As Date
    Dim strDate As String
    strDate = Mid(strLinha, intPosicaoPipe + 1, (intPosicaoProximoPipe - intPosicaoPipe) - 1) // Aqui pega a data
    'PegaCampoDate = CDate(Right(strDate, 2) & "/" & Mid(strDate, 6, 2) & "/" & Left(strDate, 4))
    End Function

    // Queria fazer aqui pegar a data e hora
    Private Function PegaCampoDate_hora() As Date                  //implementado para a versão 3 receber data e hora nos campos dEmi e dSaiEn
    Dim strDate_hora As String
    strDate_hora = Mid(strLinha, intPosicaoPipe + 1, (intPosicaoProximoPipe - intPosicaoPipe) - 1)
    PegaCampoDate_hora = Left(strDate_hora, InStr(strDate_hora, "T") - 1) & " " & Mid(strDate_hora, InStr(strDate_hora, "T") + 1, Cool // Aqui tentei implementar a tua dica
                                                                                                                                            //pelo que entendi do código é para funcioinar
                                                                                                                                          //Não enxergo onde está o erro.
    End Function

    Private Sub GravaRegB(RegB As NFE_RegB)
    Dim strSQL As String
    strSQL = "INSERT INTO NFE_RegistrosB "

    Dim strValues As String
    Dim strFields As String
    strValues = strValues & "#" & Format(RegB.dEmi, "mm/dd/yyyy hh:MM:ss") & "#" & ", "
    strFields = strFields & "dEmi, "

    strValues = strValues & "#" & Format(RegB.dSaiEnt, "mm/dd/yyyy hh:MM:ss") & "#" & ", "
    strFields = strFields & "dSaiEnt, "

    Obrigada pela atenção
    avatar
    SoniaRamos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 6
    Registrado : 02/06/2015

    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  SoniaRamos 15/6/2015, 15:34

    Bom dia chsestrem !

    Quero te agradecer pela atenção no meu código.

    Com a tua dica de código, consegui resolver meu problema.

    Ficou assim:

    Private Function PegaCampoDatehora() As Date  'Função para a versão 3.1, para importar data e hora das variáveis dEmi e dSaiEnt
    Dim strDatehora As String
    strDatehora = Mid(strLinha, intPosicaoPipe + 1, (intPosicaoProximoPipe - intPosicaoPipe) - 1)
    PegaCampoDatehora = Left(strDatehora, 10) & " " & Mid(strDatehora, 12, Cool
    End Function


    Obrigada!!!
    avatar
    SoniaRamos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 6
    Registrado : 02/06/2015

    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  SoniaRamos 15/6/2015, 15:52

    Ok resolvido!!

    Conteúdo patrocinado


    [Resolvido]Importar TXT Empty Re: [Resolvido]Importar TXT

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 07:54