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]Inserir Qualificador de texto e Símbolo decimal na importação

    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  aguch 30/8/2017, 15:16

    Pessoal estou tendo problemas na importação do meu arquivo .csv preciso inserir na minha macro o código que faz com que seja utilizado o Qualificador de texto = " (aspas duplas)  e o
    Símbolo decimal igual a ponto, pois meu arquivo texto é delimitado por virgula e estou tendo uma quebra de linha indesejada desalinhando a posição das colunas, quando faço a importação manual onde o access da essas opções funciona perfeitamente, mas o processo precisa ser automatizado, alguém sabe como posso fazer isso na macro? Abaixo a macro que estou utilizando. Obrigado.

    Sub importaTurmaUnidadeInsc()

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

    On Error Resume Next

    '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)

    Debug.Print SelecionarPasta


    'DoEvents

    'SelecionarPasta = Application.CurrentProject.Path
    'Debug.Print SelecionarPasta


    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("base_Turma_por_Unidade_de_inscricao")

    Open SelecionarPasta For Input As #F

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

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

    Line Input #F, Linha

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

    rs.AddNew

    rs!A1=Matriz(0)
    rs!A2=Matriz(1)
    rs!A3=Matriz(2)
    rs!A4=Matriz(3)
    rs!A5=Matriz(4)
    rs!A6=Matriz(5)
    rs!A7=Matriz(6)
    rs!A8=Matriz(7)
    rs!A9=Matriz(Cool
    rs!A10=Matriz(9)
    rs!A11=Matriz(10)
    rs!A12=Matriz(11)
    rs!A13=Matriz(12)
    rs!A14=Matriz(13)
    rs!A15=Matriz(14)
    rs!A16=Matriz(15)
    rs!A17=Matriz(16)
    rs!A18=Matriz(17)
    rs!A19=Matriz(18)
    rs!A20=Matriz(19)
    rs!A21=Matriz(20)
    rs!A22=Matriz(21)
    rs!A23=Matriz(22)
    rs!A24=Matriz(23)
    rs!A25=Matriz(24)
    rs!A26=Matriz(25)
    rs!A27=Matriz(26)
    rs!A28=Matriz(27)
    rs!A29=Matriz(28)
    rs!A30=Matriz(29)
    rs!A31=Matriz(30)
    rs!A32=Matriz(31)
    rs!A33=Matriz(32)


    rs.Update

    Loop

    Close #F

    rs.Close

    MsgBox "Arquivo Importado com Sucesso e Removidos duplicados na tabela temporaria!", vbInformation, "Importação de arquivo txt"

    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty Re: [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  Alexandre Neves 30/8/2017, 18:07

    Boa tarde,
    Vá aos campos respectivos (não indicou) e formate como pretende
    formate com "
    utilize a função replace para o decimal


    .................................................................................
    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
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty Re: [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  aguch 30/8/2017, 18:20

    Ola Alexandre, boa tarde.

    No caso o campo que esta causando problema seria o "rs!A30=Matriz(29)" que corresponde a endereços e as vezes este possui virgula causando confusão com o delimitador que também é virgula. Desculpe, mas não entendi sua resposta devo colocar esta configuração direto na tabela e não no código? Obrigado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty Re: [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  Alexandre Neves 30/8/2017, 20:44

    Se é aqui que quer substituir a vírgula pelo ponto, coloque
    rs!A30=replace(Matriz(29),",",".")


    .................................................................................
    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
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty Re: [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  aguch 30/8/2017, 22:04

    Ola Alexandre obrigado mais uma vez pela atenção então, só posso aplicar o "Replace" antes do "Split", porem se fizer isso vou substituir a virgula por ponto inclusive no meu delimitador de coluna. A coluna "Endereço" que esta causando problema quando possui uma virgula ex:

    "RUA SILVA - Nr. 0 -  - VIRTUAL - CEP:00000 - SÃO PAULO - SP - NO DIA XXX, ACESSE O LINK: BBB.COM.BR E ENTRE ZZ"

    ela sempre vem delimitada por aspas duplas preciso fazer o replace neste campo sempre que encontrar um texto que esteja entre aspas duplas. Observe que o exemplo dado acima é um texto que esta todo dentro da coluna Endereço e não deve ser dividido durante a importação, o que ocorre é que o texto fica dividido, pois o meu delimitador virgula se confunde com a virgula deste texto que aparece depois do "XXX,". Desculpe se a explicação estiver confusa estou tentando ser o mais claro possível. Obrigado
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty Re: [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  Alexandre Neves 30/8/2017, 22:58

    Existe sempre esse trecho com aspas?

    se sim, utilize 2 splits para recolher o endereço
    rs!A30= Matriz(29) & "," & Matriz(30)

    se não, procure se tem ou não
    if left(Matriz(29),1)="""" then rs!A30= Matriz(29) & "," & Matriz(30) else rs!A30= Matriz(29)


    .................................................................................
    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
    avatar
    aguch
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty Re: [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  aguch 31/8/2017, 13:21

    Ola Alexandre, bom dia.

    Muito obrigado deu certo. abs

    Conteúdo patrocinado


    [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação Empty Re: [Resolvido]Inserir Qualificador de texto e Símbolo decimal na importação

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 21:41