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][DDMMYYYY] DATETIME

    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty [DDMMYYYY] DATETIME

    Mensagem  Jitano 19/11/2012, 19:25

    Olá Maximos!

    Estou com uma dúvida ao importar um ficheiro txt para tabela que contêm uma estrutura semelhante:

    NOME|DATANASCIMENTO|IDADE
    Joana|12122012|14
    Meireles|01012001|8
    Ze|07052011|2

    [NOME] TEXT, [DATANASCIMENTO] DATETIME, [IDADE] NUMBER

    Dá-me erro em DATANASCIMENTO, como faço para converter DDMMYYYY em DD-MM-YYYY contornando este problema?

    Obrigado
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Alexandre Neves 19/11/2012, 19:49

    Boa noite, Jitano
    Utilize a função CDate e Format


    .................................................................................
    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
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Jitano 20/11/2012, 18:47

    Código:
    rs("DATANASCIMENTO") = Format(CDate(Campo(6)), "ddmmyyyy")

    Tentei este código, mas dá erro "Type mismatch"

    Alguma maneira de dar a volta a isto?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Alexandre Neves 20/11/2012, 19:36

    O que é Campo(6)?


    .................................................................................
    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
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Jitano 20/11/2012, 23:11

    Campo(6) é um intervalo entre "|" "|" onde está a Data Nascimento DDMMYYYY

    função split
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Jitano 21/11/2012, 18:31

    Somebody HELP bounce
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Jitano 22/11/2012, 09:54

    Código:
    While Len(file_name) > 0
        Set rs = db.OpenRecordset("t_mensal", dbOpenTable)
           
     
        'Abre o ficheiro mapa a ser importado
        Open dir_path & file_name For Input As #1
            While Not EOF(1)
                Line Input #1, Linha
     
                If Left(Linha, 4) = "1106" Or Left(Linha, 4) = "1107" Then
     
                    Campo = Split(Linha, "|")
                       
     
                    rs.AddNew
                    rs("Campo0") = Campo(0)
                    rs("Campo1") = Campo(1)
                    rs("Campo2") = Campo(2)
                    rs("Campo3") = Campo(3)
                    rs("Campo4") = Campo(4)
                    rs("Campo5") = Campo(5)
                   
                    If Campo(6) <> "" Then
                    rs("Campo6") = Format(CDate(Campo(6)), "ddmmyyyy")
                        Else
                    rs("Campo6") = 0
                    End If
                   
                    rs("Campo7") = Campo(7)
                    rs("Campo8") = Campo(8)
                    rs("Campo9") = Campo(9)
                    rs("Campo10") = Campo(10)
                    rs("Campo11") = Campo(11)
                    rs("Campo12") = Campo(12)
                    rs("Campo13") = Campo(13)
                    rs.Update
                End If
            Wend
        Close #1
        
     
        file_name = Dir$()
    Wend

    Viva parte do código de importação que tenho é o que está em cima.

    O meu problema está em converter o Campo 6 que vem como DDMMYYYY para DD/MM/YYYY para o puder meter em tabela como data e não como texto.

    Já andei a tentar e a tentar mas não consegui resultado positivo ainda.

    Algum empurrão?

    Obrigado em avanço
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  JPaulo 22/11/2012, 10:24

    Já tentou assim;

    rs("Campo6") = Format(Campo(6), "dd-mm-yyyy")

    Ou com a data americana;

    rs("Campo6") = Format(Campo(6), "mm-dd-yyyy")



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Instruções SQL como utilizar...
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Jitano 22/11/2012, 10:31

    JPaulo, obrigado pela ajuda

    Mas dá-me o erro "Overflow"
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  JPaulo 22/11/2012, 10:34

    Anexe aqui parte do seu banco para eu testar;


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Instruções SQL como utilizar...
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Jitano 22/11/2012, 10:56

    https://dl.dropbox.com/u/8638048/JPaulo.zip

    Coloque a pasta "teste" que contem o ficheiro a importar no drive C:\
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  JPaulo 22/11/2012, 12:32

    teste por favor;


    Private Sub b_Importar_au105_Click()

    Dim Nome As String
    Dim Campo As Variant
    Dim Linha As String
    Dim db As Database
    Dim rs As DAO.Recordset
    Dim Matriz() As String
    Dim x, y


    Dim dir_path As String
    Dim file_name As String


    Dim stDocName As String


    'Abre o banco de dados
    Set db = CurrentDb


    dir_path = "C:\teste\"
    file_name = Dir$(dir_path)


    db.Execute "DROP TABLE t_tabela"


    db.Execute "CREATE TABLE t_tabela ([Campo0] NUMBER, [Campo1] NUMBER, [Campo2] NUMBER, [Campo3] NUMBER, " _
    & "[Campo4] NUMBER, [Campo5] DATETIME, [Campo6] DATETIME, [Campo7] TEXT)"

    While Len(file_name) > 0
    Set rs = db.OpenRecordset("t_tabela", dbOpenTable)


    'Abre o ficheiro mapa a ser importado
    Open dir_path & file_name For Input As #1
    While Not EOF(1)
    Line Input #1, Linha

    If Left(Linha, 4) = "1106" Or Left(Linha, 4) = "1107" Then

    Campo = Split(Linha, "|")
    rs.AddNew
    rs("Campo0") = Campo(0)
    rs("Campo1") = Campo(1)
    rs("Campo2") = Campo(2)
    rs("Campo3") = Campo(3)
    rs("Campo4") = Campo(4)

    If Campo(5) <> "" Then
    x = Left(Campo(5), 2) & "/" & Mid(Campo(5), 3, 2) & "/" & Right(Campo(5), 4)
    rs("Campo5") = Format(x, "dd/mm/yyyy")
    Else
    End If

    If Campo(6) <> "" Then
    y = Left(Campo(6), 2) & "/" & Mid(Campo(6), 3, 2) & "/" & Right(Campo(6), 4)
    rs("Campo6") = Format(y, "dd/mm/yyyy")
    Else
    End If

    rs("Campo7") = Campo(7)

    rs.Update
    End If
    Wend
    Close #1

    file_name = Dir$()
    Wend

    MsgBox "Dados importados com sucesso!", vbInformation, "Importacao"
    rs.Close
    db.Close
    End Sub



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Instruções SQL como utilizar...
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Jitano 22/11/2012, 14:30

    Sim JPaulo!

    Resultou, MUITO OBRIGADO!

    cheers
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  JPaulo 22/11/2012, 14:33

    Obrigado pelo retorno, o forum agradece.



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido][DDMMYYYY] DATETIME Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvido][DDMMYYYY] DATETIME Empty Re: [Resolvido][DDMMYYYY] DATETIME

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 11:37