Access - CUADRO DE TEXTO

 
Vista:

CUADRO DE TEXTO

Publicado por Eduardo (122 intervenciones) el 26/07/2007 21:46:51
estimados listeros, necesito crear un forms con un cuadro de texto que permita ingresar una serie de elementos numericos separados por una coma y en base a esto ejectutar una consulta de seleccion que buscara en base a esos numeros
algo asi como un IN
aunque la idea la encuentro fantastica no he logrado plazmarla en el access, si alguno puede tenderme una mano se lo agradecere
saludos desde chile
Eduardo
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
Imágen de perfil de Alejandro

Búsqueda utilizando valores numéricos separados por comas

Publicado por Alejandro (4142 intervenciones) el 16/08/2023 22:51:16
Para lograr esto, puedes utilizar una consulta de selección con el operador `IN` en Access, pero primero necesitas procesar los elementos ingresados en el cuadro de texto y convertirlos en una lista que la consulta pueda entender. Aquí tienes los pasos para lograrlo:

1. Crear el formulario:

Crea un formulario con un cuadro de texto donde los usuarios puedan ingresar los elementos numéricos separados por comas.

2. Crear la consulta:

Crea una consulta de selección en Access que utilice el operador `IN`. En lugar de ingresar directamente los valores, usarás una función que procesará los valores ingresados en el cuadro de texto y los convertirá en una lista. Aquí está la estructura básica de la consulta:

1
2
3
SELECT *
FROM TuTabla
WHERE TuCampo IN (SELECT Valor FROM fnParseList([Forms]![NombreDeTuFormulario]![TuCuadroDeTexto], ','))

3. Crear la función para procesar la lista:

Crea una función de módulo en Access para procesar la lista de elementos ingresados en el cuadro de texto y convertirlos en una tabla temporal. Aquí tienes un ejemplo de cómo podría ser la 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
Function fnParseList(ByVal strList As String, ByVal strDelimiter As String) As Variant
    Dim arr() As String
    Dim strSQL As String
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
 
    arr = Split(strList, strDelimiter)
    strSQL = "CREATE TABLE TempList (Valor INTEGER)"
 
    Set db = CurrentDb()
    db.Execute strSQL
 
    For Each Item In arr
        strSQL = "INSERT INTO TempList (Valor) VALUES (" & Item & ")"
        db.Execute strSQL
    Next Item
 
    Set rs = db.OpenRecordset("TempList")
    fnParseList = rs
 
    rs.Close
    Set rs = Nothing
 
    db.Execute "DROP TABLE TempList"
End Function

4. Utilizar la consulta en el formulario:

Crea un informe basado en la consulta y, en tu formulario, usa un botón para abrir el informe con los resultados.

Asegúrate de reemplazar "TuTabla", "TuCampo", "NombreDeTuFormulario" y "TuCuadroDeTexto" con los nombres reales de tu tabla, campo, formulario y cuadro de texto.

Este enfoque procesa los valores ingresados en el cuadro de texto y los convierte en una lista que se puede usar en la consulta con el operador `IN`. Ten en cuenta que esta solución crea y elimina una tabla temporal en la base de datos, por lo que podría no ser adecuada para bases de datos compartidas o con un alto volumen de datos. Si es necesario, puedes explorar otras opciones para realizar la búsqueda utilizando valores separados por comas.
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