Compartir a través de


El operador Between...And

Se aplica a: Access 2013 | Access 2016

Determina si el valor de una expresión está dentro de un intervalo de valores especificado. Use este operador dentro de instrucciones SQL.

Sintaxis

expr [ Not ] Entrevalue1yvalue2

La sintaxis del operador Between…And consta de los siguientes elementos:

Parte Descripción
expr Expresión que identifica el campo que contiene los datos que se quieren evaluar.
value1, value2 Expresiones con las que se desea evaluar expresión.

Comentarios

Si el valor de expresión se encuentra entre valor1 y valor2 (inclusive), el operador Between…And devuelve True; de lo contrario, devuelve False. Se puede incluir el operador lógico Not para evaluar la condición opuesta (es decir, si expr está fuera del rango definido por valor1 y valor2).

Se puede usar Between…And para determinar si el valor de un campo está dentro de un rango numérico especificado. El ejemplo siguiente determina si se envió un pedido a una ubicación dentro de un rango de códigos postales. Si el código postal está entre 98101 y 98199, la función IIf devuelve "Local". En caso contrario, devuelve "Nonlocal".

SELECT IIf(PostalCode Between 98101 And 98199, "Local", "Nonlocal")
FROM Publishers;

Si expresión, valor1 o valor2 es Null, Between…And devuelve un valor Null.

Como los caracteres comodín, por ejemplo *, se tratan como literales, no se pueden utilizar con el operador Between…And. Por ejemplo, no se pueden usar 980* y 989* para buscar todos los códigos postales que empiezan por 980 hasta 989.

En su lugar, hay dos alternativas para lograrlo. Se puede agregar una expresión a la consulta que toma los tres caracteres de la izquierda del campo de texto y usar Between…And con esos caracteres. O bien, se pueden rellenar los valores altos y bajos con caracteres adicionales, en este caso, 98000 hasta 98999 o 98000 hasta 98999-9999 si se usan códigos postales extendidos. (Debe omitir - 0000 de los valores bajos porque de lo contrario, 98000 se quita si algunos códigos postales tienen secciones extendidas y otros no).

Ejemplo

En este ejemplo, se muestra el nombre y el contacto de todos los clientes que realizaron pedidos en el segundo trimestre de 1995.

En este ejemplo, se llama al procedimiento EnumFields, que se incluye en el ejemplo de la instrucción SELECT.

Sub SubQueryX() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
    
    ' List the name and contact of every customer  
    ' who placed an order in the second quarter of 
    ' 1995. 
 
    Set rst = dbs.OpenRecordset("SELECT ContactName," _ 
        & " CompanyName, ContactTitle, Phone" _ 
        & " FROM Customers" _ 
        & " WHERE CustomerID" _ 
        & " IN (SELECT CustomerID FROM Orders" _ 
        & " WHERE OrderDate Between #04/1/95#" _ 
        & " And #07/1/95#);") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 25 
 
    dbs.Close 
 
End Sub

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.