Access - PARA JOSELO

 
Vista:

PARA JOSELO

Publicado por Cristina (11 intervenciones) el 17/12/2007 19:59:30
Hola Joselo.

El otro día te planteé una duda que me ha surgido respecto a una solución que diste para un usuario pero tuviste que irte.

Me gustaría volver a retomar esta cuestión que te plantee hace unos días ya que todavía no he encontrado la solución a lo que necesito por si tú me puedes ayudar.

En unos comentarios más abajo un usuario preguntaba el modo de rellenar automáticamente un campo de un subformulario en un campo de un formulario.

Tú diste la siguiente solución:

En el FORMULARIO B, control FECHA, escribir el siguiente código en el evento Despues de Actualizar
Forms("FORMULARIO A"). Controls("FECHA") = Me.FECHA

Yo he aplicado este código a una base de datos que estoy realizando ya que me venía muy bien la idea y me funciona a la perfección.

El problema radica en lo siguiente:

El subformulario lo necesito tener continuo por diferentes motivos. El problema viene cuando al ir añadiendo filas, si yo por ejemplo elimino la última fila con el último dato metido, en el campo del formulario que se rellena automáticamente de los registros del subformulario sigue manteniendo el último campo metido aunque ya no esté.

Yo lo que necesito es que en el momento que por el motivo que sea necesite eliminar el último valor añadido que el campo del formulario automáticamente se rellene con el valor del campo anterior . Ejemplo:

Si yo tengo en el subformulario los registros:

Jose
Elena
Juan

Cuando yo elimine el campo Juan el subformulario me quedaría asi:

Jose
Elena

Lo que yo quiero que me ocurra es que al eliminar el registro Juan, automáticamente necesitaría que en el campo del formulario donde se está rellenando automáticamente los campos pusiera Elena pero no resulta así y me sigue manteniendo el nombre del campo que ya no existe (Juan).

La idea es:

1° En FORM_B (que es un subformulario) agregar registros continuos
2° El control NOMBRE_A del FORM_A toma el valor de FORM_B & NOMBRE_B mediante tu código Forms("FORM_A"). Controls("NOMBRE") = Me.NOMBRE (José)
3° En FORM_B agregar registro
4° El control NOMBRE_A toma el valor de FORM_B & NOMBRE_B(Elena)
5° En FORM_B agregar registro
6° El control NOMBRE_A toma el valor de FORM_B& NOMBRE_B (Juan)
7° Eliminar tercer registro (Juan)

Por lo que el valor del FORM_A & NOMBRE_A tendría que ser Elena no Juan como actualmente me está pasando.

Me gustaría saber si existe la posibilidad cuando elimine el registro del FORM_B &NOMBRE_B en el FORM_A & NOMBRE_A automáticamente ponga el valor de la fila anterior del campo eliminado (Elena en vez de Juan).

Gracias.
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

RE:PARA JOSELO

Publicado por JOSELO (232 intervenciones) el 17/12/2007 20:17:10
ME parece que voy entendiendo, aver si es esto lo que necesitas.

Tu tienes un Subformulario (Formularios Continuos) que cuando seleccionas algun registro se actualice los controles del formulario principal. ¿Es así?
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

RE:PARA JOSELO

Publicado por Cristina (11 intervenciones) el 17/12/2007 20:31:16
Exacto.

Diste una solución a un usuario anterior con ese código y efectivamente automáticamente según pongo los datos en el subformulario me lo va agregando automáticamente en el formulario (decir que el formulario es en forma formulario simple, por lo tanto si voy añadiendo datos en el subformulario siempre me rellena automáticamente el último dato añadido en el subformulario).

El problema llega cuando por un motivo X tengo que agregar el último valor añadido, cuando lo elimino en el campo del formulario donde automáticamente se va rellenando automáticamente el último valor me sigue quedando ese valor.

Lo que necesito es que cuando elimine ese valor automáticamente me ponga en el formulario el valor anterior, por eso ponia el ejemplo de los nombres.

No se si me he explicado correctamente.

Gracias de nuevo Joselo.
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

RE:PARA JOSELO

Publicado por JOSELO (232 intervenciones) el 17/12/2007 20:44:17
Soy bastante duro de comprender, pero me parece que el tema es asi.
En el subformulario (el listado), llamado FORM_B hay un control llamado NOMBRE_B, en el cual hay 3 registros.
José
Juan
Pedro
...
En el Formulario principal (FORM_A) hay un control llamado NOMBRE_A.
...
...
El tema es que cuando seleccionas José (NOMBRE_B=José) tiene que mostrar NOMBRE_A = José).
Cuando seleccionas Pedro (NOMBRE_B=Pedro) tiene que mostrar NOMBRE_A = Pedro).
Y cuando eliminas el registro de Pedro en NOMBRE_A tiene que aparecer Juan.
...
...
OK
..
..
ME parece que en el subformulario FORM_B tienes que utilizar el evento Al activar el registro y colocar la instruccion que necesites, en este caso debería ser
Forms("FORM_A").Controls("NOMBRE_A") = Me.NOMBRe_B.
Entonces mostrará en el formulario FORM_A los datos del registro seleccionado en el FORM_B.
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

RE:PARA JOSELO

Publicado por Cristina (11 intervenciones) el 17/12/2007 20:56:19
Lo he probado pero creo que no lo hago bien.

En esta dirección he dejado un ejemplo de la base por si te sirve mas sencillo que mis explicaciones verlo directamente que es lo que hay hecho y lo que necesitaría por si me puedes echar una mano.

http://www.megaupload.com/es/?d=6Z04BBZI

Muchas gracias por todo.
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

RE:PARA JOSELO

Publicado por Cristina (11 intervenciones) el 17/12/2007 21:20:53
Perfecto, ahora te la envio. Gracias!!!
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

RE:PARA JOSELO

Publicado por Victoria (1530 intervenciones) el 18/12/2007 12:48:51
Hola, me inmiscuyo en la pregunta dirigida a JOSELO

En lo que dices no me queda claro si en tu formulario principal SE GUARDAN los valores del campo que muestras (con el dato de tu subForm)

Voy a dar por hecho que no y entonces la solución es muy sencilla:

En el subFormulario,

Private Sub nombre_AfterUpdate()
Forms!FORM_B!Nombre = Me.nombre
End Sub

Private Sub nombre_GotFocus()
Forms!FORM_B!Nombre = Me.nombre
End Sub

Cuando ELIMINES un registro del subForm, envia el foco al campo NOMBRE del subForm y así te mostrará siempre el valor del registro activo

Un saludo y felices fiestas

Victoria
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

RE:PARA JOSELO

Publicado por JOSELO (232 intervenciones) el 18/12/2007 14:00:31
No me molesta, aparte en el tema Visual Basic, estoy convencido que usted está varios años luz más adelantada. Gracias.
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