Declarar variable

¿Cómo estás?, necesito una ayuda, gracias de antemano.
Tengo una base de datos en la que armé un primer formulario que ingresa el código de usuario. Luego se abren varios formularios, algunos subformularios anidados, etc. Yo quiero que el CodUs se guarde en todas las tablas sucesivas en las que da ingreso de datos. No quiero tomar el valor del formulario porque si me lo cierra me quedo sin valor disponible. No sé como declarar la variable, cargar allí el CodUs y tenerlo disponible mientras tenga abierta la base de datos.

1 respuesta

Respuesta
1
En vez de declararla con Dim (Dim var as ....) declarala con Public (Public var as ...)
Hola Angeles gracias! , yo declaro en el formulario de usuario public varUs as string. Luego cuando verifico si el usuario existe con un lookup, en ese procedimiento asigno el valor así (donde Qusuario es el independiente en el form):
varUs = Forms![FormUsuario]![Qusuario]
El tema es que cuando quiero usarla está vacía. Por ejemplo pensé en el evento antes de insertar del siguiente formulario forzar el valor en la tabla (es decir si el registro es nuevo-inserta, entonces el Us1 le cargo la varUs, y, si ya existe o sea es modificación no modifico el valor. Y escribí
Table![TPAProductosxProyecto]![Us1I] = varUs
o lo escribo mal o tal vez vaya en otro evento, ¿qué se te ocurre?
Algo hago mal, necesito ayuda urgente, ¿podrás ayudarme o de lo contrario avisarme si no podes? Gracias es que estoy muy complicada de tiempo y no puedo resolverlo.
Puedes probar a poner varUs = Forms![FormUsuario]![Qusuario].Value
Por otro lado Table no existe, sería TableDef para el objeto y TableDefs para la colección.
Prueba y me cuentas.
Casi perdida... Te cuento empezando:
Hago la declaración donde dice Option Compare DataBase del FormUsuario, ¿eso esta bien?
Luego escribo ... Value y sigue diciendo que está en blanco. ¿Podría comprobar en el paso siguiente a la asignación si está vacía o no? Para descartar...
Luego en el subformulario anidado, en el evento antes de insertar, probé con Def y Defs y me da: Error 424 en tiempo de ejecución. Se requiere un objeto sobre esta instrucción y cuando me pongo sobre varUs me dice vacía:
TableDefs![TPAProductosxProyecto]![Us1I] = varUs   Probé poner .Value aquí también despues de varUs y sigue dando el mismo error.
Gracias por contestar tan rápido!.
Lo otro que me queda es arrastrar la variable reverenciando FormUsuario-QUsuario pero tengo miedo que me cierren el formulario y perderla!
Gracias otra vez y agradezco mucho tu ayuda, Virginia desde Balcarce, Argentina.
Logré pasar la variable al abrir otro formulario y cerrando el que tengo los usuarios, si me das un correo donde te lo pueda mandar te la envío y a ver si así te puedo ayudar.
Hola Angeles, te mando mi correo [email protected] . Te agradezco muchísimo! Ni bien llegue el correo pruebo y te cuento.., Saludos, Virginia
Ya te lo envié, ya me contarás
Angeles, si es .mdb mi servidor no lo deja pasar, ¿podrías zipearlo por favor? Gracias!
Ya te lo envié
Angeles, tu respuesta llega sin problemas pero no el mail que me envías con el archivo adjunto. Te mando nuevamente mi dirección y otra alternativa por las dudas...
[email protected]
[email protected]
Perdón por la insistencia pero me da pena que te hayas preocupado tanto y no recibirlo, gracias una y otra vez, Virginia
Ya te lo volví a enviar, esperemos que a la tercera sea la vencida.
Llevas toda la razón, tienes que declararla en un módulo común para toda la BD, no el un módulo de un formulario en concreto.
Vas a la pestaña de módulos y creas uno nuevo, es ahí donde la declaras:
Option Compare Database
Option Explicit
Public vUsu
Guardas el módulo y puedes acceder a esa variable desde cualquier parte de la BD.
Ya me contarás.
Angeles, te agradezco tu disposición hasta llegar a la solución, ahora funciona. Gracias! Me he sentido respaldada por ti, un saludo, Virginia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas