Ir para conteúdo
Fórum Script Brasil
  • 0

Retirar acentos de uma tabela inteira


vms

Pergunta

Olá pessoal

Tenho um banco feito no access onde tenho uma tabela com um campo chamado Descrição (tipo Texto)

estou usando a função abaixo para retirar os acentos.

Eu queria saber como usar essa função no Update

porque se eu for varrer a tabela irá demorar muito.

function RemoveAcento(Str: string): string;
const
  ComAcento = 'àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ';
  SemAcento = 'aaeouaoaeioucuAAEOUAOAEIOUCU';
var
   x: Integer;
begin;

  for x := 1 to Length(Str) do
    if Pos(Str[x],ComAcento) <> 0 then
    Str[x] := SemAcento[Pos(Str[x], ComAcento)];

  Result := Str;
end;

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

voce olhou o código no botão ???

Option Compare Database
Option Explicit

Function LimpaAcentos(S As String) As String
'* Objetivo - Retirar os acentos, sem modificar as strings.
'* Parametros -  S - String a ter acentos retirados
'* Adaptada do Algoritmo para Retirar Acentos para Delphi de Marcio Castilho
'* Publicada em 08/12/00 para o site da Revista Delphi Journal
'* Adaptacao: Rogerio Olimpio Lourenco de Oliveira - 2000
'* (5120.rogerio@bradesco.com.br)

Dim Acentos1 As String, Acentos2 As String, TMP As String, tmp2 As String
Dim i As Integer, Aux As Integer
    Acentos1 = "ÀÌÒÙÈÁÍÓÚÉÃÏÕÜËÄÖÂÎÔÛÊàìòùèáíóúéãïõüëáöâîôûêÇç"
    Acentos2 = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"
    tmp2 = ""
     For i = 1 To Len(S)
        Aux = InStr(1, Acentos1, Mid(S, i, 1), 0)
        If (Aux <= 0) Then
           TMP = Mid(S, i, 1)
        Else
            TMP = Mid(Acentos2, Aux, 1)
        End If
        tmp2 = tmp2 + TMP
    Next i
    LimpaAcentos = tmp2
End Function
Private Sub cmdRemove_Click()
Dim d As Database, r As Recordset

Set d = CurrentDb
Set r = d.OpenRecordset("Acentos")

    r.MoveFirst
    Do Until r.EOF
    'Faça até que chegue ao último registro

    'Recebi a mensagem 'Update ou CancelUpdate sem AddNew ou Edit, mesmo com o edit abaixo
    'Acontece que update e movenext estavam em ordem inversa.
        r.Edit
        r!Nome = LimpaAcentos(r!Nome)
        r!Endereco = LimpaAcentos(r!Endereco)
        r.Update
        r.MoveNext
    Loop
    Set r = Nothing
    Set d = Nothing
    Me.Refresh
End Sub

a informação que voce precisa está ai

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...