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