Recuperar Index cuando uso DoCmd.GoToRecord para hacer un registro desde un formulario

Utilizo DoCmd. GoToRecord para realizar un registro en una tabla X desde un formulario, mi problema es que inmediatamente despues debo realizar registros en otra tabla Y pero con la referencia del index del registro en mi primera tabla X.

2 respuestas

Respuesta

Creo que no estás recibiendo respuesta porque no se entiende cuál es tu problema. O, al menos, yo no lo entiendo.

Te animo a que replantees tu pregunta de otra manera y quizá con algo más de detalle sobre los objetos que estás utilizando, y, si lo crees conveniente, pongas un ejemplo.

Ánimos! ;-)

Hola,

De antemano gracias por sus respuesta, voy a tratar de explicarme mejor, tengo un formulario "A" con el que capturo un registro en la tabla "X" (para hacer esta captura utilizo "DoCmd.GoToRecord"), al momento de capturar este registro abro el formulario "B" (utilizo "DoCmd.OpenForm") con este formulario voy a capturar uno a o mas registros en una tabla "Y".

Mi problema es que uno de los campos de la tabla "Y" se debe llenar con el Index (Autonumerico) que se genere del registro recién hecho en la tabla "X", mis preguntas son:

   1.- Como obtengo el Index de mi registro en la tabla "X"?

   2.- Si lo obtengo en una variable publica o global como lo uso en una Query por ejemplo "SELECT X.NAME FROM X WHERE X.ID = ??????"

Espero haberme explicado mejor, gracias

De verdad que lo lamento, pero sin verlo claro. Me confunde la terminología que usas. Además, no veo claro si cuando abres el formulario B ya lo haces en el registro que quieres o te vas paseando por los registros de ese formulario hasta que encuentras el que quieres. Eso de "capturar" no me dice si ya los tienes creados o te vas a un registro nuevo.

El docmd. Openform tiene varios argumentos, y si no indicas qué argumentos le estás pasando...

Así como lo explicas no te puedo dar ninguna solución. :-(

Ponme un ejemplo como si me lo estuvieras explicando mientras veo tu pantalla, a ver si así...

Respuesta

Creo, que lo que quieres, es que el código principal de la tabla X te aparezca para llenar los datos en la tabla Y. Ésto lo puedes lograr con variables temporales, en el código vba usas:

tempvars.add "TuIndex", me.index.value 

Donde "TuIndex" sería el nombre de tu variable temporal y "me.index.value" el nombre del campo que contiene tu código principal.

Luego, cuando abras la segunda tabla (que supongo que lo haces desde otro formulario), en el evento cargar, utilizas:

Me.CampoDelIndex.value = tempvars!TuIndex

De esta forma, cuando cargas el segundo formulario para llenar la tabla Y, automáticamente te carga el valor que almacenaste en la primera.

Esto te sirve si abres el formulario de la tabla Y inmediatamente después de guardar los registros de la tabla X, bueno, eso sería lo ideal, aunque de todas formas el valor de tu variable queda almacenado hasta que cierres access o hasta que ejecutes el comando "tempvars.remove "TuIndex"" que hace que tu variable sea removida de la memoria.

Si este no es el caso, sería mejor que ampliaras tu pregunta, talvez Neckito tenga la mejor solución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas