2012-02-21 34 views
8

Actualmente Quiero conseguir un valor de un formulario para establecer en una consulta SQL que hago en un módulo bajo acceso con VBA. He intentado utilizarObtener un valor de texto de un formulario en Access utilizando un módulo de VBA

value = Forms![NameOfForm]![NameOfTextbox] 

sqlquery = "...." & value & "....." 

Se crea un error (2450) diciendo que no puede encontrado la forma especificada. ¿Cómo puedo obtener el valor de este cuadro de texto para poder usarlo en mi módulo?

Thx

+0

Es la forma abierta cuando intenta esto? – Fionnuala

Respuesta

6

modificar el código VBA para asegurar que el formulario está abierto.

DoCmd.OpenForm "NameOfForm" 

Eso debería evitar el error # 2450.

Después, no es necesario para almacenar el valor de [NameOfTextbox] a una variable, a continuación, utilizar esa variable para construir la instrucción SQL. Puedes usar su valor directamente.

sqlquery = "SELECT * FROM YourTable " & _ 
"WHERE some_field = '" & Forms![NameOfForm]![NameOfTextbox] & "';" 

o incrustar una referencia al cuadro de texto en sí (en lugar del valor del cuadro de texto) en la consulta.

sqlquery = "SELECT * FROM YourTable " & _ 
"WHERE some_field = Forms![NameOfForm]![NameOfTextbox];" 

que supone some_field es un campo de tipo de datos de texto, por lo cerrado del valor de texto con comillas simples en el primer ejemplo de consulta. Observe que el segundo ejemplo no necesita las comillas porque hace referencia al cuadro de texto por nombre en lugar de su valor.

Sin embargo, si continúa con su enfoque original (almacenando el valor del cuadro de texto en una variable), no nombre el valor "variable" porque el valor puede confundirse con una propiedad de muchos objetos.

Cuestiones relacionadas