Access - Añadir registros automáticamente en un formulario, con solo poner uno

   
Vista:
Imágen de perfil de Antonio

Añadir registros automáticamente en un formulario, con solo poner uno

Publicado por Antonio toni.cata@gmail.com (3 intervenciones) el 22/03/2016 09:09:44
Tengo una tabla A con varios campos (ID1, C2, C3) y quiero que en el formulario B, cuando en un cuadro de texto le escribo ID1 (que corresponde a la tabla A) ya me aparezcan los otros datos de esa tabla A (C2 y C3) en ese formulario B. ¿Cómo lo hago?
He probado con:
=DBúsq([campo C2];[tabla A];[campo ID1=Form!formulario B.Value])
pero no me funciona.
Me sale: #¿Nombre?
¿Qué hago mal?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Añadir registros automáticamente en un formulario, con solo poner uno

Publicado por Enrique Heliodoro (1663 intervenciones) el 22/03/2016 09:27:16
Los ARGUMENTOS de las funciones de dominio han de ser cadenas de texto (o variables de texto) que el motor de Access (en tiempo de ejecución) evaluara y de ser correctas aceptara.

Sin entrar en detalles (solo analizando la sintaxis que has utilizado), esta debería haberse escrito asi:

Original:
=DBúsq([campo C2];[tabla A];[campo ID1=Form!formulario B.Value])

Lo correcto:
=DBúsq("[campo C2]"; "[tabla A]"; "[campo ID1] =Form![formulario B].[Nombre del campo]")

Se apreciara que determinados nombres (la tabla y la referencia al formulario) están entre corchetes PORQUE el nombre contiene espacios
También se ha corregido la sintaxis de la condición, porque se utiliza una referencia absoluta y la propiedad 'Value' no es la adecuada, en su lugar debería ir el nombre del objeto de ese formulario (porque el formulario en su conjunto solo representa una espacialidad [ubicación], pero no un valor de uno de sus objetos [aunque solo tuviera ese único]).

Si 'el formulario' fuera el mismo en el que se ejecuta el código, la referencia podría ser relativa ....
=DBúsq("[campo C2]"; "[tabla A]"; "[campo ID1] =" & [Nombre del campo])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Añadir registros automáticamente en un formulario, con solo poner uno

Publicado por Antonio catalan (3 intervenciones) el 22/03/2016 22:43:23
En la expresión:
=DBúsq("[campo C2]"; "[tabla A]"; "[campo ID1] =Form![formulario B].[Nombre del campo]")
o en la otra:
=DBúsq("[campo C2]"; "[tabla A]"; "[campo ID1] =" & [Nombre del campo])
el [Nombre del campo], ¿a qué campo se refiere?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Añadir registros automáticamente en un formulario, con solo poner uno

Publicado por Enrique Heliodoro (1663 intervenciones) el 23/03/2016 11:05:26
Una tabla es un contenedor de datos
Un formulario: un contendor de objetos

Los objetos del formulario, son los que 'reciben' los valores (datos) de una tabla o también datos independientes, el formulario NO recibe dato alguno, a lo sumo 'dice/informa' de donde provienen los datos que se mostraran en sus objetos (si estos provienen de una tabla o consulta).

Una ruta absoluta comienza en la jerarquía mas alta (colección), dado que tratamos de formularios, la colección sera 'FORMS'
Forms

Dentro de esa colección, se indicara a cual de los formularios (con los datos presentados, aquí parece que se refiere al formulario 'Formulario B')
Forms.[Formulario B]

Pero los datos NO ESTAN en el formulario, están en sus objetos (cuadros de texto, cuadros de lista ....) y 'Value' no creo que sea el nombre de alguno (y de serlo se esta contraviniendo una de las normas básicas de cualquier entorno de programación: NO UTILIZAR JAMAS COMO NOMBRES A LAS PALABRAS RESERVADAS), 'Value' es una palabra reservada (es una propiedad de los objetos), supongamos que el campo se llama 'El_Nombre' ....
Forms.[Formulario B].[el_nombre]

Creo que queda claro que '[nombre del campo] es la referencia a un objeto de un formulario con un valor (y que como no me lo han presentado y ello implica que es para mi un desconocido), lo llamo 'de forma genérica' con la ilusión de que quien reciba la información sustituya ese 'nombre genérico' por el adecuado y real (el nombre del objeto del formulario que contiene/presenta el valor que deseamos utilizar).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Añadir registros automáticamente en un formulario, con solo poner uno

Publicado por Antonio Catalan (3 intervenciones) el 24/03/2016 05:09:17
Gracias por la aclaración. Ya me funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar