Consulta. Varios valores de un campo memo. Desde un formulario.

21/10/2011 - 17:02 por Armantes | Informe spam
Buenas,

Estoy tratando de hacer un buscador desde un formulario. La idea es
que en un formulario rellene un campo con valores separados por comas.
Al pulsar un boton me abra una consulta que me busque esos valores
separados por comas en un campo memo. Quiero que me aparezcan los
registros cuando aparezca al menos uno de esos valores en el campo
memo.

Gracias por su interes.

Un saludo,

Carlos

Preguntas similare

Leer las respuestas

#6 Armantes
27/10/2011 - 23:41 | Informe spam
On 27 oct, 12:27, José Mª Fueyo wrote:
Hola


Buenas noches José Mª,

Muchisimas gracias por tu contestación. Te lo agradezco mucho.
He estado mirando la solución de hacer la cadena con el split pero me
surge una duda. Yo no se si en el cuadro de texto van a poner una,
dos, tres o cuatro palabras. Es decir que a la hora de hacer el filtro
en el formulario no se hasta donde consultar, no se los límites, es
decir si no se si consulto hasta Valor1 o Valor2, Valor3, Valor4 ...
¿me explico? ¿como lo hago?

Un abrazo,

Carlos


Pues puedes hacer tal como pone en el link. Crea una matriz de cadenas
con los valores introducidos en tu cuadro de texto(usando la función
split y como separador un espacio), y a continuadión construye una
sentencia WHERE (sin el WHERE) donde indicas que el campo memo
contenga uno u otro valor (MiMemo like '*Valor1*' OR MiMemo like
'*Valor2*' OR...). Esta sentencia se la asignas a la propiedad FILTER
del formulario y a continuación estableces la propiedad FilterOn a
true.
Para luego volver a mostrar todos, establece la propiedad FilterOn a
false.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#7 José Mª Fueyo
28/10/2011 - 10:13 | Informe spam
Hola.
Un ejemplo. Pon en tu formulario un cuadro de texto llamado
txtBusqueda, un grupo de opciones con dos botones, llamado fraFiltro.
En el evento "al hacer click" de éste grupo de opciones, péga éste
codigo
<pego>
'Compruebo que botón se ha pulsado
Select Case fraFiltro.Value
Case 1 'Aplicar filtro
If Me.txtBusqueda.Value <> "" Then 'Hay un valor de filtro
Dim sCriterio() As String, I As Integer
Dim sFiltro As String
sFiltro = ""
sCriterio = Split(Me.txtBusqueda.Value, " ")
For I = 0 To UBound(sCriterio)
sFiltro = sFiltro & "Notas like '*" & sCriterio(I)
& "*' OR "
Next
'Elimino el último OR sobrante
sFiltro = Left(sFiltro, Len(sFiltro) - 4)
Me.Filter = sFiltro
Me.FilterOn = True
Else 'No hay valor de filtro, no hago nada y vuelvo a
poner grupo de opciones a "Mostar todos"
Me.fraFiltro.Value = 2
End If
Case 2
Me.FilterOn = False
End Select
</pego>

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#8 Armantes
31/10/2011 - 09:50 | Informe spam
Hola José Mª,

Perfecto es exactamente lo que quería. Funciona a las mil maravillas.
Cerramos el hilo.

Muchas gracias por tu atención y por compartir tus conocimientos.

Un abrazo,

Carlos

On 28 oct, 09:13, José Mª Fueyo wrote:
Hola.
Un ejemplo. Pon en tu formulario un cuadro de texto llamado
txtBusqueda, un grupo de opciones con dos botones, llamado fraFiltro.
En el evento "al hacer click" de éste grupo de opciones, péga éste
codigo
<pego>
    'Compruebo que botón se ha pulsado
    Select Case fraFiltro.Value
        Case 1 'Aplicar filtro
            If Me.txtBusqueda.Value <> "" Then 'Hay un valor de filtro
                Dim sCriterio() As String, I As Integer
                Dim sFiltro As String
                sFiltro = ""
                sCriterio = Split(Me.txtBusqueda.Value, " ")
                For I = 0 To UBound(sCriterio)
                    sFiltro = sFiltro & "Notas like '*" & sCriterio(I)
& "*' OR "
                Next
                'Elimino el último OR sobrante
                sFiltro = Left(sFiltro, Len(sFiltro) - 4)
                Me.Filter = sFiltro
                Me.FilterOn = True
            Else 'No hay valor de filtro, no hago nada y vuelvo a
poner grupo de opciones a "Mostar todos"
                Me.fraFiltro.Value = 2
            End If
        Case 2
            Me.FilterOn = False
    End Select
</pego>

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#9 José Mª Fueyo
31/10/2011 - 16:43 | Informe spam
:-)
A ti por el feedback

Salu2
José Mª Fueyo
[MS MVP Access]
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida