ACC: Cómo crear una instrucción de In() parámetros

Seleccione idioma Seleccione idioma
Id. de artículo: 100131 - Ver los productos a los que se aplica este artículo
Moderada: Requiere macro básico, codificación y las capacidades de interoperabilidad.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se muestra dos métodos que puede utilizar para pasar varios valores a una consulta mediante un mensaje del parámetro. El primer método utiliza la función Instr() para analizar los valores de parámetro especificados cuando se ejecuta la consulta. El segundo método describe una forma para crear una consulta mediante el operador de In() con varios valores.

Nota: Una demostración de la técnica utilizada en este artículo puede verse en el archivo de ejemplo Qrysmp97.exe. Para obtener información acerca de cómo obtener este archivo de ejemplo, consulte el siguiente artículo en Microsoft Knowledge Base:
182568ACC97: Microsoft Access 97 consultas de ejemplo disponible en el Centro de descarga

Más información

Método 1

El método siguiente muestra cómo utilizar la función Instr() para pasar varios valores, separados por comas, para una consulta de parámetros.

En el siguiente ejemplo se basa en la tabla de empleados de la base de datos de ejemplo Neptuno.mdb (o Neptuno.mdb en la versión 2.0).

  1. Abra la base de datos de ejemplo Neptuno.mdb.
  2. Crear la siguiente consulta nueva basada en la tabla Employees y guardar la consulta como ParamQuery:
          Query: ParamQuery
          --------------------
          Type: Select Query
    
          Field: EmployeeID
             Table: Employees
             Show: True
          Field: LastName
             Table: Employees
             Show: True
    Nota: en Microsoft Access 2.0, hay un espacio en los nombres de campo ID empleado y el apellido.
  3. En la siguiente columna vacía, escriba la expresión y atributos siguientes:
          Field: InStr([Last Names separated by commas,Blank=All],[LastName])
          Criteria:  > 0 Or Is Null
          Show: False
  4. Cambie a la vista Hoja de datos y escriba los nombres últimos siguientes, separados por comas, en el cuadro de diálogo del valor de parámetro:
    Fuller, King Díaz
Nota: Se devuelven tres registros. Si deja en blanco el parámetro, la consulta devolverá todos los registros.

Método 2

El método siguiente utiliza una consulta que llama a una función y le pasa dos parámetros. El primer parámetro es el nombre de un campo que existe en la tabla en el que se basa la consulta. El segundo parámetro pide al usuario para especificar una lista de valores. La función procesa las entradas del usuario como la lista de varios parámetros para el operador In().

Esta parte del artículo se supone que está familiarizado con Visual Basic para aplicaciones y con la creación de aplicaciones de Microsoft Access mediante las herramientas de programación suministradas con Microsoft Access. Para obtener más información acerca de Visual Basic para Aplicaciones, consulte su versión del manual "Creación de aplicaciones con Microsoft Access".

Nota: el Visual Basic para aplicaciones se denomina Access Basic de Microsoft Access versiones 1.x y 2.0. Para obtener más información acerca de Access Basic, consulte el manual "Introduction to Programming" de la versión 1.x de Microsoft Access o el manual "Creación de aplicaciones" de la versión 2.0

El ejemplo siguiente se basa en la base de datos de ejemplo Neptuno.mdb (o Neptuno.mdb en las versiones 1.x y 2.0)

  1. Cree un nuevo módulo con las dos funciones siguientes:
          '************************************************************
          'Declarations section of the module.
          '************************************************************
    
          Option Explicit
    
          '============================================================
          ' The GetToken() function defines the delimiter character.
          '============================================================
    
          Function GetToken (stLn, stDelim)
             Dim iDelim as Integer, stToken as String
             iDelim = InStr(1, stLn, stDelim)
             If (iDelim <> 0) Then
                stToken = LTrim$(RTrim$(Mid$(stLn, 1, iDelim - 1)))
                stLn = Mid$(stLn, iDelim + 1)
             Else
                stToken = LTrim$(RTrim$(Mid$(stLn, 1)))
                stLn = ""
             End If
             GetToken = stToken
          End Function
    
          '============================================================
          ' The InParam() function is the heart of this article. When
          ' the query runs, this function causes a query parameter
          ' dialog box to appear so you can enter a list of values.
          ' The values you enter are interpreted as if you
          ' had entered them within the parentheses of the In() operator.
          '============================================================
          Function InParam (Fld, Param)
             Dim stToken as String
             'The following two lines are optional, making queries
             'case-insensitive
             Fld = UCase(Fld)
             Param = UCase(Param)
             If IsNull(Fld) Then Fld = ""
             Do While (Len(Param) > 0)
                stToken = GetToken(Param, ",")
                If stToken = LTrim$(RTrim$(Fld)) Then
                   InParam = -1
                   Exit Function
                Else
                   InParam = 0
                End If
             Loop
          End Function
    						
  2. Cierre y guarde el módulo.
  3. Cree una nueva consulta basada en la tabla Customers. Arrastre los campos que desee a la cuadrícula de la consulta.
  4. Agregue el siguiente campo a la cuadrícula de la consulta.

    Nota: En el siguiente ejemplo, un subrayado (_) al final de una línea se utiliza como un carácter de continuación de línea. Quite el carácter de subrayado del final de la línea cuando escriba este ejemplo.
          FieldName: InParam([CustomerID],[ Enter ID list using commas and no _
                     spaces:])
          Show: False
          Criteria: True
    Nota: en las versiones 1.x y 2.0, hay un espacio en el ID de cliente el nombre de campo.

    Nota: El valor InParam(...) muestra para el FieldName debe escribirse como una instrucción en una sola línea. La función InParam() funciona con campos Integer, así como con los campos de texto.
  5. En el menú consulta, haga clic en parámetros. Escriba el siguiente parámetro con un tipo de datos de texto:
    lista ID. escriba mediante comas y sin espacios:
  6. Haga clic en Aceptar y ejecutar la consulta. Nota que se preguntará para especificar una lista de parámetros. El mensaje siguiente se muestra en el cuadro de diálogo:
    Escriba la lista de identificadores mediante comas y sin espacios:
  7. En las versiones 97, 7.0 y 2.0, escriba:
    CHOPS EASTC, FAMIA
    En versión 1.x, escriba:
    BLUEL CACTP, DOLLC
    Todos los registros que cumplan los criterios se muestran.
Nota: Es una limitación del operador in () que no admite caracteres comodín, como * o?. Por ejemplo, Microsoft Access no puede ejecutar
   IN("A*", "BON*", "CRATE???")
				

Referencias

Para obtener más información sobre el operador in, busque el índice de Ayuda "En el operador."

Propiedades

Id. de artículo: 100131 - Última revisión: jueves, 18 de enero de 2007 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft Access 1.0 Standard Edition
  • Microsoft Access 1.1 Standard Edition
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbmt kbhowto kbprogramming kbusage KB100131 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 100131
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com