Ejecutar un select en access

¿La única forma de ejecutar una select dentro de un programa VBA en Access es por medio de un Recordset?
Quiero ejecutar una select del tipo:
Select nombrecliente from clientes where dnicliente=campodeunformulario
Y el valor devuelto por la select asignárselo a una variable o un campo de un formulario para visualizarlo. ¿Solo puedo hacerlo usando un recordset?
Si es así, ¿Cómo puedo hacer este tipo de búsquedas de una forma rápida y sencilla?

3 Respuestas

Respuesta
1
Prueba esto:
variable = dlookup ( "nombrecliente", "clientes","[dnicliente]= " & forms![miformulario]![campodeunformulario])
si el dni es numérico, y :
variable = dlookup ( "nombrecliente", "clientes","[dnicliente]= '" & forms![miformulario]![campodeunformulario] & "'")
Si el dni es alfanumérico.
Suerte
Muchas gracias. El dlookup ya le conocía y quería hacer una select en su lugar, pero parece que si no usas un recordset no se puede ¿no?
Volveré al dlookup de siempre :( sniff
Respuesta
1
Si sólo quieres encontrar un valor cada vez utiliza DLOOKUP. (DBÚSQ en diseño de formularios y consultas).
elnombre=DLookUp("nombrecliente","clientes","DNICLIENTE='" & forms!nombrefom!campodeunform & "'"
)
También podrías utilizar lo que está después del = para filtrar y hacer que muestre un formularioel registro de nombre cliente.
En modo diseño utiliza ";" en lugar de ",".
Respuesta
1
Lo siento per te tenia perdido y vi tu pregunta por casualidad. Supongo que ya la tendrás resuelta, aunque yo por si acaso te mando un ejemplo
En un botón de comando de un formulario en modo diseño le pones
dim base as database
dim rst as recordset
set base=currentdb
set rst=base.openrecordset("Select nombrecliente from clientes where dnicliente='" & me.dni & "'")
msgbox rst.fields("nombrecliente")
rst.close
set rst=nothing
base.close
set base=nothing
Muchas gracias, otros expertos me han dicho que lo más rapido o cómodo es usar la función dlookup, porque con recordsets resulta un poco peñazo: declararlo, abrirlo, etc. etc. De todas formas me gusta tu solución, gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas