"No Como" no funciona en mi Access

Desarrollé una consulta porque estoy tratando de excluir registros de texto de mi base de datos utilizando el criterio "No Como", pero no resulta, pues al escribirla le agrega de forma automática la letra "O" entre No y Como y al ejecutar me arroja un error: "La expresión que ha especificado tiene una sintaxis no válida" "Es posible que haya escrito una coma sin ningún identificador o valor que la preceda". ¿Alguien sabe qué pasa?

2 respuestas

Respuesta
1

Sin saber como tiene escrito el código no se puede dar una respuesta

¡Gracias! Estoy desarrollando una consulta por medio de Diseño de Consultas del mismo Access y utilizando una base de datos en perfecto estado. Entiendo que existen diferente criterios de búsqueda o consulta y uno de ellos es Como "xxx*" para buscar registros que se desean encontrar y "NO Como" para aquellos que se desean excluir de la consulta. ¿Es eso lo que consultas? Gracias.

Claro que puede utiliar LIKE NOT le dejo este ejemplo con DAO:

Sub BuscarRegistros()
    Dim strSQL As String
    Dim strFiltro As String
    Dim rs As DAO.Recordset
    ' Ingresa el texto a buscar
    strFiltro = InputBox("Ingrese el texto a buscar:", "Buscar registros")
    If Len(strFiltro) > 0 Then
        ' Construir la consulta SQL con la cláusula LIKE y NOT
        strSQL = "SELECT * FROM NombreTabla WHERE CampoTexto NOT LIKE '*" & strFiltro & "*'"
        ' Crear un nuevo recordset y abrirlo
        Set rs = CurrentDb.OpenRecordset(strSQL)
        ' Verificar si se encontraron registros
        If Not rs.EOF Then
            rs.MoveFirst
            Do Until rs.EOF
                ' Imprimir los valores de los campos
                Debug.Print rs!Campo1 & " - " & rs!Campo2
                rs.MoveNext
            Loop
        Else
            MsgBox "No se encontraron registros."
        End If
        ' Cerrar el recordset
        rs.Close
        Set rs = Nothing
    Else
        MsgBox "No se ingresó un texto a buscar."
    End If
End Sub

Perdón es Not Like...

Respuesta

Lo normal es:

Como xxxx

Diferente de xxx

Que contiene xxxx o que no contiene xxxx

Una alternativa es utilizar la función InStr (en la cadena de texto) que localiza el comienzo de la posición de la coincidencia (el numero de carácter) y si no lo encuentra devuelve un cero.

Gracias pero no es lo que necesito. La pregunta previa es si existe como instrucción para criterio de consulta la siguiente: "No Como XXX*". 

Yo he leído que sí, así como el Criterio "Como XXX*". Yo no necesito desarrollar una rutina, sólo colocar en la consulta que puedo hacer por medio de Access un criterio que excluya ciertos registros de mi base de datos. Gracias.

Deseo excluir a los registros que en el campo ABCD contengan el texto 'Tuerca'
.- Que NO lo contenga   ==> InStr ([ABCD];"Tuerca") = 0

.- Que NO comience por el  ==> InStr ([ABCD];"Tuerca") <> 1

Conocida la cadena a localizar se conoce su longitud (Len ("Tuerca") ) por lo que también se puede a aquellos que la tengan al final que siempre será la longitud de [ABCD] menos la de 'Tuerca' .

Gracias! funcionó perfecto. Para eliminar varios registros que contengan diferentes textos, ¿cómo se hace? Traté de seguir en las líneas de criterios que siguen más abajo, pero no funcionó para quitar varios registros.

Se pueden añadir más condiciones que pueden ser:
.- Inclusivas:  InStr([ABCD];"AAAA") = 0 OR  InStr([ABCD];"BBBB") = 0

.- Exclusivas:  InStr([ABCD];"AAAA") = 0 AND  InStr([ABCD];"BBBB") = 0

Las posibilidades que permite (esta y todas las opciones) solo tiene los limites que imponga la imaginación.

La opción propuesta es una de las muchas alternativas que hay.

Lo que me ha quedado en el tintero es que la función (con una B al final) hace una comparación binaria y distingue entre mayúsculas y minúsculas, detalle que puede ser muy útil (por ejemplo al verificar las contraseñas):

En la ventana de inmediato:

¿
? InStrB("En un lugar de la mancha","lugar")
13
? InStrB("En un lugar de la mancha","luGar")
0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas