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]Formatação Rich TextBox do SQL Server

    Compartilhe
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Sex 11 Ago 2017, 20:54

    Senhores, realizo uma conexão ao um BD SQL Server para buscar alguns dados... Dentre eles tem uma Campo do tipo Texto Longo (access) que possui formatação, acredito que seja Rich TextBox.

    Existe alguma forma de Remover essa formatação?

    Terei a necessidade de Exportar esses dados para o Excel, então a Limpeza da formatação do texto ocorreria em consulta. Não posso alterar a tabela, apenas consultar os dados.


    Veja o Modelo dos dados de um Campo:

    {\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil Arial;}}
    {\colortbl ;\red0\green0\blue0;}
    \viewkind4\uc1\pard\cf1\fs20 Texto1 aaaaa\par
    \par
                  Texto2 xxxxxx. As informa\'e7\'f5es foram transmitidas em
    \par
    Veiculo: Yamaha/Factor - Cor: Roxa - Placa: AAA0000\par
    \par
    \f1\par
    }


    Veja como Fica o Texto:
    [Você precisa estar registrado e conectado para ver esta imagem.]


    Utilizando ControleActivex e uma .OCX (RTF2 Control) é possível Chegar a esse resultado em Formulário e Relatório... Porem não sei como fazer para exportar os dados para Excel sem a Formatação.

    Obs: São Muitos dados! Algo em torno de 800 Registros por dia com um período de 6 Anos. Então qualquer movimentação e bem demorada!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  ahteixeira em Sex 11 Ago 2017, 22:38

    Olá Fábio,
    Que tipo de campo é no mssql, não como vê no Access, confira diretamente no sql.
    Verifique se é Blob

    Abraço
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Sab 12 Ago 2017, 01:59

    Entao meu amigo, nao tenho acesso algum ao Sgbd da aplicacao que gera esses dados.
    Sabe aqueles sistemas "Engessados" que nao da pra fazer quase nada e a empresa nao passa informacao alguma e nem abre o Acesso.
    Entao estou de Maos atadas. Mas ja consegui evoluir muito... So falta pequenas coisas e o o pior e esse tipo de Campo.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  ahteixeira em Sab 12 Ago 2017, 12:33

    Olá Amigo Fabio,
    Fiquei um pouco confuso.
    Não tem acesso, no entanto na mensagem nº 1 diz "realizo uma conexão ao um BD SQL Server".
    Eu acredito que o referido campo "texto longo" seja um campo BLOB em que se pode gravar via stram diveros tipos de ficheiro.
    Exemplo: pdf, txt, xls, etc
    Veja mais informações no tópico abaixo:
    [Você precisa estar registrado e conectado para ver este link.]

    Ora se consegue ralizar a conexão, então tem acesso ao SGBD e à respectiva tabela de dados.
    Se instalar o SSMS (Microsoft SQL Server Management Studio) consegue aceder ao Banco de Dados e possivelmente à estrutura.
    O SSMS pode ser instalado gratuitamente, verifique na instalação das versõs Express do SQL.

    Abraço
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Sab 12 Ago 2017, 17:21

    O acesso que faço é com o Access via ODBC. O Usuario fornecido tem acesso somente leitura dos dados.
    ... Se instalar o SSMS (Microsoft SQL Server Management Studio). Tentarei essa dica para ver se o usuário fornecido pode logar no Banco e verificar essas informações no SQL.

    Retorno assim que fizer os testes.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Seg 14 Ago 2017, 17:24

    Meu amigo, consegui acessar a Base dados pelo SSMS (Microsoft SQL Server Management Studio). Porem, verifiquei que o campo em questão se trata de um campo tipo Texto.

    Veja imagem a Baixo:
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Achei estranho, pois mostra limite de 16... Porem esse campo armazena Muitos dados... Ja vi caso em que se ocupa 1 Pagina completa com caracteres.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  ahteixeira em Ter 15 Ago 2017, 12:02

    Olá Fabio, foi retirada a dúvida.

    Estive a verificar a estrututa e parece que não existe dúvidas, é o formato RTF gravado diretamente num campo Texto.
    Para o que pretende usando PlainText, função nativa do Access acho que resolve.

    Crie uma consulta e teste, exemplo:

    Código:
    Obs: PlainText([Observacao])

    Abraço
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Ter 15 Ago 2017, 17:09

    Opa amigo, muito Boa a Dica! Porem o comando não remove por completo.
    Na realidade ele remove apenas as quebras de Linha.... \plan

    Ja pensei em utilizar o Replace... Porem o Texto a ser substituído muda de acordo com a formatação...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  ahteixeira em Ter 15 Ago 2017, 18:22

    Olá, tente postar dois ou tres registos numa base de dados num campo memo.
    Para se ver o que se consegue fazer.
    Abraço
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Qui 17 Ago 2017, 01:19

    Segue o Exemplo.
    No anexo tem os dados na tabela, e uma imagem de como fica o Texto Apos a conversão.
    dropbox.com/s/h0g6st96gwurtd1/Exemplo.rar

    Grato pela atenção!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  ahteixeira em Sab 19 Ago 2017, 12:51

    Olá Fabio Paes,
    Assim fica mais fácil para testar.
    Na minha opinião o mais indicado seria criar o respectivo ficheiro RTF numa pasta temporaria e depois importar dos ficheiros.
    No entanto também pode existir a possibilidade de remover a formatação RTF.
    Vou efetuar uns testes.
    Abraço
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  ahteixeira em Sab 19 Ago 2017, 13:50

    Olá Fabio Paes,

    Encontrei código na net que já faz a conversão.
    É necessário ajustar para os caracteres com acentuação, já faz para alguns será necessário ajustar para os restantes.

    Veja o código:
    Código:
    Public Function RemoveRTFFromString(ByVal str As String) As String
    'Origem ...:  http://www.ozgrid.com/forum/showthread.php?t=170465
    'Alterado .:  Alvaro Teixeira (ahteixeira) 2017


        If str <> "" Then
            Dim resStr As String
            Dim regEx1 As Object
            
            Set regEx1 = CreateObject("VBScript.RegExp")
            With regEx1
                .Global = True
                .IgnoreCase = False
                .MultiLine = True 'Only changes how script reads newlines (FALSE = treats entire string as one line.  TRUE = treats each line of text [up to newline chars] as one line)
            End With
            
             'Remove all {\code}  ,  \code  ,  and  }}  kinds of patterns
            regEx1.Pattern = "({\\)(.*)(}+)|(\\)([a-zA-Z0-9_;-]+)|(\}*)(\s*)(\}*)$"
            resStr = regEx1.Replace(str, "")
            
             'Replace all non-tab and space \s chars with a space " " (so lines of text are seperated)
            regEx1.Pattern = "\r|\n|\v|\f"
            resStr = regEx1.Replace(resStr, " ")
            
             'Trim ends
            regEx1.Pattern = "^( +)|( +)$"
            resStr = regEx1.Replace(resStr, "")
            
            Set regEx1 = Nothing

            'tratamento cararteres portugueses
            resStr = Replace(resStr, "\'ea", "ê")
            resStr = Replace(resStr, "\'e9", "é")
            resStr = Replace(resStr, "\'c9", "É")
            resStr = Replace(resStr, "\'e3", "ã")
            resStr = Replace(resStr, "\'c3", "Ã")
            resStr = Replace(resStr, "\'c1", "Á")
            resStr = Replace(resStr, "\'d3", "Ó")
            resStr = Replace(resStr, "\'c7", "Ç")
            resStr = Replace(resStr, "\'e7", "ç")
            resStr = Replace(resStr, "\'cd", "Í")
            resStr = Replace(resStr, "\'ed", "í")
            '.... adicionar restantes

            'fim tratamento
             RemoveRTFFromString = resStr
        Else
             RemoveRTFFromString = str
        End If

    End Function

    Segue o meu teste, espero que ajude.
    Abraço
    Anexos
    RemoverRTFdeString.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (17 Kb) Baixado 3 vez(es)
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Sab 19 Ago 2017, 15:01

    Meu amigo fico muito grato pelo tempo que utimizou pra me ajudar... Ainda nao testei, mas ansioso pra testar.
    So pela leitura codigo sei que ira funcionar sim...


    Olha que vasculhei a net atraz disso o.




    Assim q testar eu posto o resultado. Muito Obrigado!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3333
    Registrado : 14/08/2013

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  FabioPaes em Sab 19 Ago 2017, 21:53

    Meu amigo! Muito grato pela solução! Funcionou na perfeição! E ficou rápido o suficiente pra ser bem utilizada!

    Segue com as mudanças dos novos caracteres especiais:
    Código:
    Public Function RemoveRTFFromString(ByVal str As String) As String
    'Origem ...:  http://www.ozgrid.com/forum/showthread.php?t=170465
    'Alterado .:  Alvaro Teixeira (ahteixeira) 2017


        If str <> "" Then
            Dim resStr As String
            Dim regEx1 As Object
           
            Set regEx1 = CreateObject("VBScript.RegExp")
            With regEx1
                .Global = True
                .IgnoreCase = False
                .MultiLine = True 'Only changes how script reads newlines (FALSE = treats entire string as one line.  TRUE = treats each line of text [up to newline chars] as one line)
            End With
           
            'Remove all {\code}  ,  \code  ,  and  }}  kinds of patterns
            regEx1.Pattern = "({\\)(.*)(}+)|(\\)([a-zA-Z0-9_;-]+)|(\}*)(\s*)(\}*)$"
            resStr = regEx1.Replace(str, "")
           
            'Replace all non-tab and space \s chars with a space " " (so lines of text are seperated)
            regEx1.Pattern = "\r|\n|\v|\f"
            resStr = regEx1.Replace(resStr, " ")
           
            'Trim ends
            regEx1.Pattern = "^( +)|( +)$"
            resStr = regEx1.Replace(resStr, "")
           
            Set regEx1 = Nothing

            'tratamento cararteres portugueses
            resStr = Replace(resStr, "\'ea", "ê")
            resStr = Replace(resStr, "\'e9", "é")
            resStr = Replace(resStr, "\'c9", "É")
            resStr = Replace(resStr, "\'e3", "ã")
            resStr = Replace(resStr, "\'c3", "Ã")
            resStr = Replace(resStr, "\'c1", "Á")
            resStr = Replace(resStr, "\'d3", "Ó")
            resStr = Replace(resStr, "\'c7", "Ç")
            resStr = Replace(resStr, "\'e7", "ç")
            resStr = Replace(resStr, "\'cd", "Í")
            resStr = Replace(resStr, "\'ed", "í")
            resStr = Replace(resStr, "\'e1", "á")
            resStr = Replace(resStr, "\'f5", "õ")
            resStr = Replace(resStr, "\'fa", "ú")
            resStr = Replace(resStr, "\'f3", "ó")
            resStr = Replace(resStr, "\'ba", "ª")
            resStr = Replace(resStr, "\'ca", "Ê")
            resStr = Replace(resStr, "\'d5", "Õ")
            resStr = Replace(resStr, "\'aa", "ª")
            resStr = Replace(resStr, "\'fc", "->") 'Esse aqui é o tique de OK igual simbolo Nike, mas troquei pela seta
            resStr = Replace(resStr, "\'dc", "Ü")
            resStr = Replace(resStr, "\'c2", "Â")
            resStr = Replace(resStr, "\'b0", "º")
            resStr = Replace(resStr, "\'f4", "ô")
            '.... adicionar restantes

            'fim tratamento
            RemoveRTFFromString = resStr
        Else
            RemoveRTFFromString = str
        End If

    End Function


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Formatação Rich TextBox do SQL Server

    Mensagem  ahteixeira em Sab 19 Ago 2017, 22:44

    Olá Amigo Fábio,
    Fico feliz por ter ajudado.
    Fica mais esta para este grande fórum que é o MaximoAccess.
    Abraço

      Data/hora atual: Seg 25 Set 2017, 10:42