Access - Corregir caracteres raros. Como hago?

   
Vista:
Imágen de perfil de Ignacio

Corregir caracteres raros. Como hago?

Publicado por Ignacio (5 intervenciones) el 05/05/2014 17:27:51
Hola a todos.
Les comento cual es el inconveniente que tengo y que me gustaria resolver.
Tengo una Tabla en Access donde en la misma hay un campo con nombre y apellido.
Esa tabla contiene una lista de personas el cual en algunos casos, determinados nombres contienen caracteres raros, es decir (Ñ, ´, { , ' ,#, etc) Ej: Martin Muñoz , Sebástian Perez, etc.
Mi idea es hacer una consulta o macro en donde recorra toda esta tabla y que me realice el remplazo de determinados caracteres.
Ej: Ñ por N, á por a, etc.
Si alguien me puede tirar una idea, se los agradecería.

Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Corregir caracteres raros. Como hago?

Publicado por deneg_nhj (349 intervenciones) el 07/05/2014 01:36:16
En una consulta utiliza la función Replace.

Solución A)

-- Realiza tantas consultas como sustituciones vas a realizar, cada consulta la utiliza para un carácter en especial.

Solución B)

-- Crea una tabla con 2 campos, uno para los valores originales y el otro para los valores a nuevos.
-- Mediante codigo crea una rutina para leer todos los registros de la tabla, un ciclo while
-- Ejecutas una consulta con la función replace por cada registro. Esto lo haces mediante la sentecia Currentdb.execute sSQL


Saludos!

deneg_nhj
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Nacho

Corregir caracteres raros. Como hago?

Publicado por Nacho (5 intervenciones) el 07/05/2014 13:21:44
Muchas Gracias por la respuesta.
Al final pude resolver mi inconveniente de la siguiente manera:

-----------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'Creo un nuevo mudolo
Function  TildesYEñes(texto) As String
Dim LargoTexto As Long
Dim iX As Long
Dim Ascii As Long
TildesYEñes = ""
LargoTexto = Len(texto)
For iX = 1 To LargoTexto
Ascii = Asc(Mid(texto, iX, 1))
Select Case Ascii
'Tomo los valores de los caracteres que quiero cambiar de una tabla ascci
Case Is = 193
TildesYEñes = TildesYEñes & Chr(97)
Case Is = 170
TildesYEñes = TildesYEñes & Chr(97)
Case Else
TildesYEñes = TildesYEñes & Mid(texto, iX, 1)
End Select
Next iX
End Function
-------------------------------------------------------------------------
Luego lo que hice fue realizar una consulta de de Creación de Tabla, y en uno de los campos puse lo siguiente:
Le asigne a un nuevo campo la función creada anteriormente pasandole como parámetros el campo que quería corregir de la tabla:
Ej: ApelNom: TildesYEñes([ExportaPadron]![ApelNom])

En caso de que decen agregar mas caracteres para corregir es cuestión de agregarlos al Case.
Yo puse alguno a modo de ej. pero tengo una lista bastante largo que tuve que hacer a mano.
Espero que esto les sirva de ayuda como me sirvió a mi.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

Corregir caracteres raros. Como hago?

Publicado por Norberto (432 intervenciones) el 13/05/2014 09:04:57
Hola.

Prueba esta función:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Function Convert2ASCII128(OriginalText As String) As String
    'Caracteres internacionales
    Const Str1 = "áéíóúýàèìòùâêîôûäëïöüÿñºªÁÉÍÓÚÝÀÈÌÒÙÂÊÎÔÛÄËÏÖÜÑ¡¿çÇ"
    'Correspondencia
    Const Str2 = "aeiouyaeiouaeiouaeiouyn..AEIOUYAEIOUAEIOUAEIOUN!?cC"
    'Carácter a usar en los demás casos
    Const StrElse = "_"
 
    Dim i As Integer, NewText As String, c As String * 1
    Dim Pos As Integer
 
    For i = 1 To Len(OriginalText)  'Recorremos el texto recibido
        c = Mid(OriginalText, i, 1) 'carácter a carácter
        Pos = InStr(1, Str1, c)     'Miramos si el carácter está en la primera cadena
        If Pos > 0 Then             'Si es así
            NewText = NewText & Mid(Str2, Pos, 1)   'Añadimos el correspondiente
        ElseIf Asc(c) > 128 Then    'Si no es así, pero el código ANSI es mayor que 128
            NewText = NewText & StrElse         'Añadimos el caracter genérico
        Else
            NewText = NewText & c   'Si es un caracter "normal" lo añadimos tal cual
        End If
    Next
 
    Convert2ASCII128 = NewText      'Devolvemos la nueva cadena
 
End Function

Si se da el caso de un nuevo carácter que queramos reemplazar (p.e. å), lo añadimos a la primera cadena (...ÜÑ¡¿çÇå") y en la segunda ponemos el equivalente "no raro" (...UN!?cCa").

Un saludo,

Nor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ignacio

Corregir caracteres raros. Como hago?

Publicado por Ignacio (5 intervenciones) el 13/05/2014 22:49:06
Gracias por el aporte y las prontas respuestas.
Se puede colocar el caso como cerrado por mi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar