MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Compartilhe

    Fernando.Naque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 15/06/2011

    [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Fernando.Naque em Sex 16 Fev 2018, 19:13

    Boa tarde!

    Tenho uma rotina que utilizo para importação de dados, mas durante a importação alguns caracteres não são reconhecidos. Pesquisei e vi que tem relação com o código de paginação, mas não consegui revolver o problema.
    Alguns erros apresentados:

    Matuzal,m = Matuzalém
    SÆo Pedro = São Pedro

    Segue o código utilizado:

    Código:
    Public Function AbriRC()

    ' Requer referencia a Microsoft Office 11 Object Library
       On Error GoTo PROC_ERR
       
       Dim fd As FileDialog
       Set fd = Application.FileDialog(msoFileDialogFilePicker)
       
       fd.Title = "Selecione o arquivo base de Protocolo"
       fd.Filters.Add "Base GIS", "*.dbf, *.xlsx", 1

       fd.Show
       
       If (fd.SelectedItems.Count > 0) Then
           '------inicio importação excel para sincronização
           Dim strPathFile As String, strFile As String, strPath As String
           Dim strTable As String
           Dim FileName As String
           Dim Dir1 As String
           'Dim blnHasFieldNames As Boolean
           Dim db As DAO.Database
           Dim tbl As DAO.TableDef
           Dim cpo As DAO.Field
           Dim nbTypeFile As Integer
           'blnHasFieldNames = True
           Dir1 = Left(fd.SelectedItems(1), (Len(fd.SelectedItems(1)) - Len(strFile)))
           strPathFile = fd.SelectedItems(1)
           strPath = CurrentProject.Path
           strTable = "FromDBF"
           strFile = Dir(fd.SelectedItems(1))
           nbTypeFile = InStr(1, Right(strFile, 5), ".") 'Tipo de Arquivos (1=DBF 2=Excel)
                       
           'MsgBox Left(fd.SelectedItems(1), (Len(fd.SelectedItems(1)) - Len(strFile) - 1)) & " / " & strFile ' Teste
               
                 
           'apaga temporarios
           'DoCmd.RunSQL "Delete * from [FromDBF]"
            DoCmd.DeleteObject acTable, strTable

           
           'On Error Resume Next
                   
           'importa para tabela local temporária
           'Formato XLSX ACRESCETAR A TABELA EXISTENTE
           'DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames
           
           
                   
           'Formato DBF Importando dados
           DoCmd.TransferDatabase TransferType:=acImport, DatabaseType:="dBASE III", DatabaseName:=Left(fd.SelectedItems(1), (Len(fd.SelectedItems(1)) - Len(strFile) - 1)), ObjectType:=acTable, Source:=strFile, Destination:=strTable
           
           'Executando Consultas Criar Tabela e inserindo as chaves primárias
           DoCmd.SetWarnings (WarbingsOff)
           DoCmd.OpenQuery "CriarTalhao", acViewNormal, acEdit
           CurrentDb.Execute ("Alter Table BaseTalhao ADD COLUMN cd_id1 AutoIncrement;")
           DoCmd.OpenQuery "CriarParcelas", acViewNormal, acEdit
           CurrentDb.Execute ("Alter Table BaseParcelas ADD COLUMN cd_id2 AutoIncrement;")
           DoCmd.SetWarnings (WarbingsOn)
               
           
                     
           'Formato CSV
           
           'DoCmd.TransferText TransferType:=acImportDelim, _
                   TableName:="strTable", hasfieldnames:=True, FileName:=strPathFile
           'DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strTable, strPathFile, blnHasFieldNames
           
           'sql verifica existentes e marca com não novo
           'DoCmd.OpenQuery "xls01marcaExistentes", acViewNormal, acEdit
           'sql atualiza existentes
           'DoCmd.OpenQuery "xls02AtualizaExistentes", acViewNormal, acEdit
           'sql lança novos no ficheiro funcionarios
           'DoCmd.OpenQuery "xls03LancaNovos", acViewNormal, acEdit
           
           MsgBox "Operação concluída.", vbInformation, ""
           
           
           'apaga temporarios
           'DoCmd.RunSQL "Delete * from [Dados Coletor]"
           
       Else
           MsgBox "Não foi escolhido nenhum ficheiro", vbInformation, ""
       End If
       
    PROC_EXIT:
       Exit Function
       
    PROC_ERR:
       DoCmd.Hourglass False
       If Err.Number = 3011 Then
          LocalXML = ""
          MsgBox ("Ficheiro inválido. Verifique se no nome do arquivo existe espaços em branco, algum caractere especial (- / _ & @) ou se o formato do arquivo está correto.")
          'Cria uma tabela
          Set db = CurrentDb
          Set tbl = db.CreateTableDef("FromDBF")
          Set cpo = tbl.CreateField("cData", dbDate)
          tbl.Fields.Append cpo
          db.TableDefs.Append tbl
          db.TableDefs.Refresh
             
       Else
           MsgBox Err.Description
       End If
       Resume PROC_EXIT
       

    End Function

    SO - Win10 - Access 2016
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Alexandre Neves em Sex 16 Fev 2018, 20:12

    Boa noite,
    Tente importar através de DAO/ADO. Poderá ultrapassar a situação (não tenho certeza)


    .................................................................................
    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

    Fernando.Naque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 15/06/2011

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Fernando.Naque em Sex 16 Fev 2018, 22:31

    Testando a aplicação em uma outra maquina sendo a unica diferença o office ser 64 bits não ocorre o problema.

    Então acredito que o problema não esteja no código.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Alexandre Neves em Sab 17 Fev 2018, 12:24

    Bom dia,
    Mesmo que seja do sistema, pode ser que pelo DAO/ADO ultrapasse.


    .................................................................................
    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

    Fernando.Naque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 15/06/2011

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Fernando.Naque em Seg 19 Fev 2018, 13:08

    Entendi Alexandre!
    Tem algum post sobre DAO/ADO pois não sei como fazer essa alteração no código.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  ahteixeira em Seg 19 Fev 2018, 18:10

    Olá a todos,

    Fernando, veja se ajuda:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço

    Fernando.Naque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 15/06/2011

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Fernando.Naque em Ter 20 Fev 2018, 01:00

    Alexandre

    A ideia é essa mesmo, mas meu arquivo de importação esta em DBF e não em TXT.

    O objeto Stream(ADO) possui metodos para trabalhar com arquivos DBF?


    Última edição por Fernando.Naque em Ter 20 Fev 2018, 02:40, editado 1 vez(es)

    Fernando.Naque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 15/06/2011

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Fernando.Naque em Ter 20 Fev 2018, 02:29

    Conforme mencionei anteriormente isso não ocorre em todas as máquinas.

    Consultando o link:
    msdn.microsoft.com/en-us/library/bb177605(v=office.12).aspx  [Não são permitidos links externos]
    Copiar link e colar no navegado

    Com isso verifiquei que a máquina onde gera o erro não estava com a inicialização para Dbase

    Criei um arquivo reg para inserir as informações no registro e corrigiu vários caracteres alguns ainda passam mas a maioria dos problemas foi solucionado.

    Via código para arquivos DBF não consegui a solução.

    As informações inseridas no registro para o Access 2016 e S.O Windows 10 via arquivo .reg em anexo.
    Anexos
    AccessEngine.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (3 Kb) Baixado 5 vez(es)
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  ahteixeira em Ter 20 Fev 2018, 13:00

    Olá Fernando,
    Efetivamente o meu post anterior não se aplica.
    A sugestão do Alexandre Neves carece de teste e poderá ser uma alternativa.
    Relativamente à sugestão da Microsoft isso deve-se por ter sido removido o acesso a base de dados DBF salvo o erro a partir da versão 2013 ou 2016.

    Estou no celular e não encontro, mas tenho uma ideia que a situação pode ser resolvida com a alteração no registry da codificaçao.
    Já vi isso em qualquer lado e poderá resolver.

    Vou tentar encontrar.

    Abraço a todos
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  ahteixeira em Qua 21 Fev 2018, 23:35

    Olá Fernando,

    Encontrei, é alterar de "OEM" para "ANSI", veja no tópico abaixo:
    [Você precisa estar registrado e conectado para ver este link.]

    Teste e ficamos aguardar retorno,

    Abraço

    Fernando.Naque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 15/06/2011

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Fernando.Naque em Sex 23 Fev 2018, 20:39

    O problema foi resolvido. Gerei o arquivo DBF novamente e os erros não ocorreram mais.


    Última edição por Fernando.Naque em Sex 23 Fev 2018, 22:10, editado 1 vez(es)

    Fernando.Naque
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 15/06/2011

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  Fernando.Naque em Sex 23 Fev 2018, 21:52

    Muito obrigado Alexandre Neves e Ahteixeira pela atenção e dedicação! cheers bounce
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação de arquivos não aceita caracteres acentuados e especiais como cedilha

    Mensagem  ahteixeira em Sex 23 Fev 2018, 23:59

    Olá Fernando,

    Obrigado pelo retorno, o fórum agradece.

    Abraço a todos

      Data/hora atual: Sex 25 Maio 2018, 04:24