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]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 15/01/2013

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  aguch 1/8/2017, 13:59

    Pessoal estou tendo problemas com a acentuação das palavras quando leio o arquivo .csv um exemplo disso são as palavras:

    CONCLUÍDO = CONCLUÍDO
    Orientação Técnica = Orientação Técnica

    A macro utilizada para fazer a importação esta abaixo se alguém puder me ajudar desde já agradeço.


    Sub telefonemovel()

    Dim Linha As String
    Dim rs As DAO.Recordset
    Dim Matriz() As String
    Dim fDialog As Office.FileDialog
    Dim x As Variant


    'Dimensiona o objeto
    Dim Fd As Object

    'Define a caixa de diálogo como seleção de pasta(s)
    Set Fd = Application.FileDialog(1)


    'Define as propriedades da caixa de diálogo

    With Fd

    'Título da caixa de diálogo

    .Title = "Selecione o local onde se encontra o arquivo..."
    .Filters.Clear
    .Filters.Add "Access Projects", "*.csv"

    'Caso este método retorne Verdadeiro significa que o usuário selecionou uma pasta
    If .Show Then

    'Retorna o caminho da pasta para a função
    SelecionarPasta = .SelectedItems(1)

    Else

    MsgBox "Clique em 'OK' para abortar a importação."

    End If

    End With


    'Finaliza o objeto
    Set Fd = Nothing

    F = FreeFile

    Set rs = CurrentDb.OpenRecordset("PAINELOP")

    Open SelecionarPasta For Input As #F


    Line Input #F, Linha ' Pula a 1ª linha
    Line Input #F, Linha ' Pula a 2ª linha
    Line Input #F, Linha ' Pula a 3ª linha
    Line Input #F, Linha ' Pula a 4ª linha


    cont = 4

    Do While Not EOF(F)  ' Começa a importação a partir da 5ª linha

    Line Input #F, Linha

    Debug.Print Linha

    If Linha = "" Then

    Else

    Matriz() = Split(Linha, ",")

    etexto = Trim(Matriz(0))

    If IsNumeric(etexto) Then



    x = Len(Trim(Matriz(0)))

    If x = 8 Then

    rs.AddNew
    rs!x1 = Matriz(0)
    rs!x2 = Matriz(1)
    rs!x3 = Matriz(2)
    rs!x4 = Matriz(3)
    rs!x5 = Matriz(4)
    rs!x6 = Matriz(5)
    rs.Update


    End If
    End If
    End If

    Loop


    Close #F

    rs.Close

    MsgBox "Arquivo Importado com Sucesso!", vbInformation, "Importação de arquivo txt"

    End Sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  Alvaro Teixeira 2/8/2017, 12:35

    Olá Adriano,
    Já experimentou abrir o ficheiro com um editor de texto (notepad) e verificar se apresenta os caracteres corretamente?
    Pode ser um problema de codificação do sistema que gera o ficheiro.
    Seria bom se conseguir postar um ficheiro de exemplo com alguns dados para se poder testar.
    Abraço
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 15/01/2013

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty acentuação do arquivo .csc

    Mensagem  aguch 2/8/2017, 12:53

    Ola, bom dia.

    Já abri o arquivo no bloco de notas e esta normal, o problema não é nem no access, pois a macro já lê as linhas do arquivo sem acentuação.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  Alvaro Teixeira 2/8/2017, 13:10

    Olá Adriano, bom dia aí, boa tarde aqui
    Pode postar ficheiro para se testar.
    Abraço
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 15/01/2013

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty acentuação do arquivo .csv

    Mensagem  aguch 2/8/2017, 13:52

    Segue anexo. Obrigado.
    Anexos
    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Attachmentteste.txt
    Você não tem permissão para fazer download dos arquivos anexados.
    (2 Kb) Baixado 5 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  Alvaro Teixeira 2/8/2017, 15:18

    Olá Adriano,
    O ficheiro não aparenta ser um CSV.
    Tem 6 campos destino, e o separador é a virgula, mas vai dar confusão na parte "InformacaoTipo" pois tem mais virgulas.
    No entanto creio ser possivel.
    Mande uma base de dados com a estrutura da tabela que vai receber os dados importados.
    Fico no aguardo.

    Abraço
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 15/01/2013

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty acentuação do arquivo .csv

    Mensagem  aguch 2/8/2017, 16:03

    Alvaro,

    O arquivo é .csv sim é que eu mudei a extensão para .txt porque não estava conseguindo anexar na outra extensão, favor desconsiderar o txt que enviei anteriormente, pois editei manualmente para ocultar informações sigilosas e acabei inserindo aquelas duas linhas com virgulas a mais, segue anexo.
    Anexos
    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Attachmentcsv.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (26 Kb) Baixado 8 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  Alvaro Teixeira 2/8/2017, 17:10

    Olá Adriano,
    Obrigado pela partilha, segundo estive a verificar tem haver com a codificação do ficheiro.
    Não sei qual o sistema que está a gerar o CSV.

    No entanto abrir com o excel o ficheiro com a extensão correcta CSV e Gravei como txt (unicode)
    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream 015

    Depois alterei a extensão para CSV e já importou bem.

    Existe forma do sistema que gera o ficheiro CSV escolher a codificação?

    Vou investigar mais um pouco.

    Abraço
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 15/01/2013

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty acentuação do arquivo .csv

    Mensagem  aguch 2/8/2017, 17:49

    Ola Alvaro,

    Sim já tinha visto que abrindo pelo Excel e salvando como txt unicod funciona, mas o arquivo original é muito grande e o Excel não abre, mas vou tentar falar com o responsável pelo sistema e tentar entender o que esta acontecendo. Obrigado.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  Alvaro Teixeira 2/8/2017, 18:43

    Olá Adriano,
    A unica forma é converter antes de importar.
    Para isso podemos fazer a conversão via ADODB.Stream.

    Veja o código no meu teste:
    Código:
    'Alvaro Teixeira (2017) para MaximoAccess
    'conversao via "Stream"
    'Requer referencia a Microsoft ActiveX Data Objects (ADO)
    Dim objStream, strData
    Set objStream = CreateObject("ADODB.Stream")

    objStream.Charset = "utf-8"
    objStream.Open
    objStream.LoadFromFile (Application.CurrentProject.Path & "\teste.txt")
    strData = objStream.ReadText()
    objStream.Close

    objStream.Charset = "ISO-8859-1"
    objStream.Open
    objStream.WriteText strData
    objStream.SaveToFile Application.CurrentProject.Path & "\testeConv.txt", 2
    Set objStream = Nothing
    'fim conversao

    Segue teste em anexo.
    Alterei o título do tópico para ficar mais fácil nas "Buscas" do fórum.

    Abraço
    Anexos
    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream AttachmentconversaoTXTviaStream.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (19 Kb) Baixado 34 vez(es)
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 15/01/2013

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  aguch 2/8/2017, 18:52

    Alvaro muito obrigado ajudou muito. abs
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  Alvaro Teixeira 2/8/2017, 19:00

    Olá Adriano,
    Fico feliz por ter ajudado.
    Fica mais esta para este grande fórum.
    Obrigado pelo retorno.
    Abraço

    Conteúdo patrocinado


    [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream Empty Re: [Resolvido]Acentuação do arquivo CSV - Conversão via ADODB.Stream

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 22:30