Hola,

 Neceisto que alguien me confirme si es posible hacer una consulta por
 criterio introduciendo el texto sin acentos y que me muestre el resultado
 tal y como están introducidos en la tabla, osea, acentuado allí dónde
 corresponde.

El problema es que si no introduzco el texto con su acento (según criterio
o filtro), Access no es capáz de resolverlo y no me da ningún resultado.
En la ayuda del Access no encuentro nada relacionado con el tema de
acentos.

Muchas gracias por adelantado

RESPONDE CHEA
=============

Esa es la solución que yo aplico, y para que no sea un coñazo hacer eso con
todas las vocales, hace tiempo que hice una función para que lo calculara.

Copiándola en un módulo, luego, en en el criterio de la consulta basta con
poner:

like buscaacent([introduzca texto a buscar])

La función en cuestión es la siguiente:

Function Buscaacent(X)
Dim i As Variant, A As Integer, l As Integer, busc As Variant
Static letras(5) As Variant
    l = Len(X)
    busc = X
    A = 1
    letras(1) = "AÁÀÂÄ"
    letras(2) = "EÉÈÊË"
    letras(3) = "IÍÌÎÏ"
    letras(4) = "OÓÒÔÖ0"
    letras(5) = "UÚÙÛÜ"
    While A <= l
        letra = Mid(busc, A, 1)
        For Each i In letras
            vocal = InStr(1, i, letra, 1)
            If vocal > 0 Then
                nuevaletra = "[" & i & "]"
                busc = Left(busc, A - 1) & nuevaletra & Right(busc, l - A)
                A = A + 1 + Len(i)
                l = l + 1 + Len(i)
                Exit For
            End If
        Next
        A = A + 1
    Wend
If busc = "" Then
    Buscaacent = X
Else
    Buscaacent = busc
End If
'(c) J.Bengoechea
End Function


RESPONDE eduardo olaz
=====================
Si también necesitas tratar las minúsculas y las "Yy" puedes usar el
siguiente código
Lo que hace es ir recorriendo uno a uno los caracteres del texto y los va
añadiendo por la derecha a otra subcadena, que al final será la que se
devuelva.
Caso de que el caracter tenga acento lo sustituye por la vocal, sin acento.
Toma en cuenta también las ÃãÕõ del portugués.
______________________________________

Public Function TextoSinAcentos(ByVal Texto As String) As String
    ' Esta función devuelve el texto sin acentos
    ' eduardo@olaz.net
    Dim lngTexto As Long
    Dim i As Long
    Dim strCaracter As String * 1
    Dim strNormalizado As String

    lngTexto = Len(Texto)
    If lngTexto = 0 Then
        TextoSinAcentos = ""
        Exit Function
    End If
    For i = 1 To lngTexto
        strCaracter = Mid(Texto, i, 1)
        Select Case strCaracter
        Case "Á", "À", "Â", "Ä", "Ã"
            strCaracter = "A"
        Case "á", "à", "â", "ä", "ã"
            strCaracter = "a"
        Case "É", "È", "Ê", "Ë"
            strCaracter = "E"
        Case "é", "è", "ê", "ë"
            strCaracter = "e"
        Case "Í", "Ì", "Î", "Ï"
            strCaracter = "I"
        Case "í", "ì", "î", "ï"
            strCaracter = "i"
        Case "Ó", "Ò", "Ô", "Ö", "Õ"
            strCaracter = "O"
        Case "ó", "ò", "ô", "ö", "õ"
            strCaracter = "o"
        Case "Ú", "Ù", "Û", "Ü"
            strCaracter = "U"
        Case "ú", "ù", "û", "ü"
            strCaracter = "u"
        Case "Ý"
            strCaracter = "Y"
        Case "ý", "ÿ"
            strCaracter = "y"
        End Select
        TextoSinAcentos = TextoSinAcentos & strCaracter
    Next i
End Function
______________________________________


RESPONDE JUAN M AFAN DE RIBERA
===============================

Hola Eduardo,

si me permites, yo también quiero decir algo. Es sólo para sustituir ese
laaaargo Select Case. Por si te sirviera, lo he cambiado un poco, a ver qué
te parece. Ojo que lo tuyo ya me parece perfecto y lo de Chea (que es la
madre del cordero en este asunto) pues también... pero en fin, es por meter
baza, ya sabes, jejeje

Public Function TextoSinAcentos(ByVal Texto As String) As String
    ' Esta función devuelve el texto sin acentos
    ' eduardo@olaz.net
    Dim lngTexto As Long
    Dim i As Long
    Dim lngPos As Long
    Dim strCaracter As String * 1
    Dim strNormalizado As String
    Dim strConAcentos As String
    Dim strSinAcentos As String

    lngTexto = Len(Texto)
    If lngTexto = 0 Then
        TextoSinAcentos = ""
        Exit Function
    End If

    strConAcentos = "ÁÀÂÄÃáàâäãÉÈÊËéèêëÍÌÎÏíìîïÓÒÔÖÕóòôöõÚÙÛÜúùûüÝýÿ"
    strSinAcentos = "AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuYyy"

    For i = 1 To lngTexto
        strCaracter = Mid(Texto, i, 1)
        'comparamos el caracter con la cadena con acentos
        lngPos = InStr(1, strConAcentos, strCaracter, vbBinaryCompare)
        'si se ha encontrado coincidencia ...
        If lngPos <> 0 Then
            'sustituímos el caracter con el que tiene la misma
            'posición en la cadena sin acentos (o sea la letra sin acentos)
            strCaracter = Mid(strSinAcentos, lngPos, 1)
        End If
        '... y si no, pues seguimos como si nada
        TextoSinAcentos = TextoSinAcentos & strCaracter
    Next i

End Function






    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)