Dlookup Access 2007

Necesito un poco de ayuda... Necesito utilizar el comando vlookup que se usa en Excel pero en Access. Tengo una tabla con dos campos: diámetro y precio.
El campo diámetro tiene valores de 1 a 650 pero solo múltiplos de 50.
En un formulario el usuario ingresará un diámetro que no necesariamente será múltiplo de 50. Tendré un cajade de texto donde me mostrará el precio equivalente. Necesito una fórmula que me asigne el precio al diámetro inmediatamente inferior de la tabla.
Por ejemplo si diámetro de 150 mm vale 1000 euros y diámetro 200 mm vale 2000 euros.. Si el usuario ingresa 125 de diámetro que me dé el precio de 1000 euros.
He visto que el comando Dlookup es el equivalente en Access pero no sé si solo funciona en código. Lo he intentado y me da error.

1 respuesta

Respuesta
1
La función DLookup() (DBúsq()) busca el exacto, no aproxima.
Creo que lo mejor es que, en vez de ingresar el diámetro lo selecciones.
Supongamos que la tabla se llama Precios con los campos Diámetro y Precio.
En el formulario creas un cuadro combinado que llamaremos selDia. En las propiedades de ese cuadro combinado:
Nombre: selDia
Origen de la fila: Select Diametro from Precios order by Diametro
Al hacer clic ---> Procedimiento de evento ---> Me. Refresh
Creas un cuadro de texto para visualizar el precio, en el origen del control de este cuadro de texto:
=DBúsq("[Precio]";"[Precios]";"Diametro=Form!selDia.Value")
Me cuentas.
Gracias por Responder.
Lo que pasa es que la tabla Precios en este caso debería tener unos 1000 registros, En excel lo tengo así.. el dáametro: múltiplos de 50 porque de 1 a 50 tienen el mismo precio.. de 51 a 99 otro precio.. etc.. El comando Vlookup en excel me lo hace de maravilla. Me parece increíble que no exista un comando como el Vlookup de excel en Access. En todo caso, te agradezco mucho tu respuesta.
Por lo menos, yo no la conozco. De todos modos, si va por intervalos plantearía la tabla de la siguiente forma:
Tabla Precios:
Diámetro Precio
1-50 100
51-99 200
...
...
De este modo en el cuadro combinado te saldría 1-50 y puedes utilizar el DLookup ya que buscaría el registro exacto.
Me cuentas.
Lo he logrado!
=DLookUp("precio";"[Consulta Tabla Ordenada Descendente]";"[diametro] <=" & [selDia])
Lo único que he tenido que ordenar la consulta de forma descendente porque de lo contrario me da siempre el valor del primer registro aunque cambie > por <.
Gracias por tu Tiempo.. Era mi primer posteo en todoexpertos y supongo que no será el último...
Gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas