Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Dos formularios para 1 misma tabla

Estas en el tema de Dos formularios para 1 misma tabla en el foro de Bases de Datos General en Foros del Web. Hola a todos. Estoy constuyendo una Base de Datos y me ha surgido un pequeño problemilla, a ver si alguien me lo puede resolver. El ...
  #1 (permalink)  
Antiguo 17/06/2008, 08:46
 
Fecha de Ingreso: mayo-2008
Mensajes: 80
Antigüedad: 16 años
Puntos: 0
Dos formularios para 1 misma tabla

Hola a todos.
Estoy constuyendo una Base de Datos y me ha surgido un pequeño problemilla, a ver si alguien me lo puede resolver.

El caso es que necesito rellenar una tabla en dos fases, una serie de datos se rellenan en la fase 1 y otros datos de la misma tabla, no se rellenarán hasta el final del proceso en la fase final. El problema está en:

¿Cómo demonios, paso de un formulario al otro pero en el mismo registro de la tabla?

La idea es hacer un boton de comando que me abra el otro formulario, y si en el Formulario 1, estoy metiendo datos del registro id= 7 (por ejemplo), pues que me habra el Formulario final pero con los datos del mismo registro id=7 para seguir rellenando el mismo registro de la tabla.

Estoy tratando de hacerlo con una macro y asignarsela a un boton de comando pero no se muy bien qué tengo que poner en la macro.
A ver si alguien puede echarme un cable, please

Ah estoy usando Access 2007 (se que no es lo mejor del mundo pero estoy empezando en las BD, ya me ire adaptando a otros sistemas)

Gracias de antemano!!
  #2 (permalink)  
Antiguo 17/06/2008, 09:06
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Dos formularios para 1 misma tabla

POn un boton para abrir el form, filtrado por el id:

docmd.openform "ElOtroForm",,,"Id=" & me.CampoId

Es posible que tengas que forzar la grabacion del registro antes de la apertura para "tener algo que abrir"

DoCmd.RunCommand acCmdSaveRecord

Un saludo
  #3 (permalink)  
Antiguo 18/06/2008, 01:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 80
Antigüedad: 16 años
Puntos: 0
Respuesta: Dos formularios para 1 misma tabla

Hola Taribo007. Muchas gracias por tu ayuda, pero no me sale bien.

Creo el boton de comando y le asigno la acción "AbrirFormulario" y en los argumentos porngo:
Código:
Fase2; Formulario; ; "[id_cursillos]=" & [me].[id_cursillos]; ; Normal
Donde Fase2 es el formulario que debe abrir y id_cursillos el campo que determina el registro que quiero abrir. Desde el Formulario Fase1 me coloco en el registro 2 y pico en el boton, se me abre el formulario Fase2 pero en el primer registro, no se me va directamente al registro 2 que es el que quiero.

¿Alguna idea? o ¿ves algun error? (Los corchetes de [me], los pone sólo access no se muy bien por qué)

Gracias.
  #4 (permalink)  
Antiguo 18/06/2008, 02:31
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Dos formularios para 1 misma tabla

Te recomiendo que usas codigo tal como yo te lo puse, no una macro. Abre las propiedades del formulario >> Pestaña eventos >> Al hacer click. Situate en esa linea. Si hay algo, borralo. vete a la derecha del todo, hay un boton con tres puntitos (...). Pulsalo y elige "Generar evento">> De codigo. Se te debe abrir la ventana de VBA en el evento click del boton. Pues es ahi donde has de poner esto:

docmd.openform "Fase2",,,"id_cursillos=" & me.id_cursillos

Prueba asi y nos cuentas. El campo id_cursillos es de tipo numerico??

Un saludo
  #5 (permalink)  
Antiguo 19/06/2008, 01:56
 
Fecha de Ingreso: mayo-2008
Mensajes: 80
Antigüedad: 16 años
Puntos: 0
Respuesta: Dos formularios para 1 misma tabla

pues sigue sin salirme. He seguido los pasos que me has dado y esto es lo qye hay en la ventana del VB:
Código:
Private Sub Form_Click()
DoCmd.OpenForm "Fase2", , , "id_cursillos=" & Me.id_cursillos
End Sub
Ahora en las propiedades del formulario en la fila "Al hacer Click" me sale
Cita:
[procedimiento de evento]
pero al hacer click en el boton, me abre el formulario fase2 con un sólo registro, (hasta aqui bien), pero uno nuevo en blanco, no el que yo quería con el id_cursillo igual.

Ah! el id_cursillos es autonumérico y es la clave de la tabla. Por si te sirve de ayuda.
¿Alguna otra idea?
Gracias.
  #6 (permalink)  
Antiguo 19/06/2008, 03:31
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Dos formularios para 1 misma tabla

Es posible que tengas que forzar la grabacion del registro antes de la apertura para "tener algo que abrir". Vamos a comprobar si tenemos algo que abrir, es decir, si el registro esta guardado en la tabla. Pon esto:

Private Sub Form_Click()
If DCount("*", "NombreTabla", "id_cursillos=" & Me.id_cursillos) = 0 Then
MsgBox "Aun no existe el registro en la tabla"
Else
MsgBox "Ya esta el registro en la tabla"
End If
DoCmd.OpenForm "Fase2", , , "id_cursillos=" & Me.id_cursillos
End Sub


Si te sale el mensaje de que aun no esta grabado, deberia solucionarse con la siguiente intruccion puesta antes de la apertuta del form:
DoCmd.RunCommand acCmdSaveRecord

Con ella forzamos la grabacion del registro.

Un saludo

ED: Pon el nombre real de la tabla en lo que he puesto en rojo
  #7 (permalink)  
Antiguo 21/06/2008, 04:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 80
Antigüedad: 16 años
Puntos: 0
Respuesta: Dos formularios para 1 misma tabla

De eso no va a ser tampoco. Ya que en la tabla en sí hay ya datos metidos. De hecho en el formulario Fase1, lo que hago es moverme por los registros (que ya estan en la tabla) por ejmplo, me muevo hasta el registro cuyo id_cursillos = 5, y desde ahí pico en el boton.

Me abre el formulario Fase2 pero ni rastro del campo id_cursillos = 5. (Está puesto en ambos formularios precisamente para comprobar que me abre el correcto) Me pone id_cursillos = (nuevo), y si me fijo abajo pone registro 1 de 1. Es decir, me abre un registro nuevo para introducir datos, pero no el que tiene el id_cursillos = 5.

De todas formas ahora probaré lo que me dices por si acaso, pero ya te digo que no creo que sea eso, porque en la tabla ya hay datos.
Gracias Taribo007.
  #8 (permalink)  
Antiguo 23/06/2008, 01:15
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Dos formularios para 1 misma tabla

Eso, prueba lo que te dige. Si el mensaje sale que hay registro, tiene que abrirte bien el form. Comprueba tambien el modo de apertura en las propiedades del form Fase2. Si en su propiedad entrada de datos, pone SI, esta en modo de apertura para introducir datos. Y al abrirlo con el metodo OpenForm se sin nada en su 4 argumento, se abre con las propiedades del propio form

Un saludo
  #9 (permalink)  
Antiguo 23/06/2008, 04:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 80
Antigüedad: 16 años
Puntos: 0
Respuesta: Dos formularios para 1 misma tabla

Pues nada, sigue sin salir.
He puesto lo que me dijiste en el formulario Fase1:
Cita:
DoCmd.RunCommand acCmdSaveRecord
Para forzar la grabacion de los datos y nada sigue haciendo exactamente lo mismo.
Me he fijado también en lo que me dices de la propiedad "Entrada de Datos" aunque no me ha quedado muy claro si debe estar en SI o en NO. Ahora mismo tanto en FASE1 como en FASE2 está puesto a NO. He probado a ponerlos a SI pero sigue sin haber cambios con respecto a la apertura de FASE2.

La cosa es que he introducido datos en el formulario Fase1 y he pasado al Fase2. En teoría debería haber guardado los datos que he introducido en la tabla de la que depende pero me he ido a comprobarlo y no es así. Creo que no está funcionando lo de guardar los datos al pulsar el boton. Solo se graban los datos si paso de registro.

¿Alguna idea?
  #10 (permalink)  
Antiguo 23/06/2008, 04:51
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Dos formularios para 1 misma tabla

Cita:
Iniciado por Piloto78 Ver Mensaje
La cosa es que he introducido datos en el formulario Fase1 y he pasado al Fase2. En teoría debería haber guardado los datos que he introducido en la tabla de la que depende pero me he ido a comprobarlo y no es así. Creo que no está funcionando lo de guardar los datos al pulsar el boton. Solo se graban los datos si paso de registro.

¿Alguna idea?
Has comprobado si hay datos con el codigo que te he puesto??

Ese boton del que hablas, para guardar los datos, que codigo tiene??

un saludo
  #11 (permalink)  
Antiguo 23/06/2008, 07:43
 
Fecha de Ingreso: mayo-2008
Mensajes: 80
Antigüedad: 16 años
Puntos: 0
Respuesta: Dos formularios para 1 misma tabla

No no, a ver, creo que nos estamos liando un poco.

Lo que tengo es en el formulario Fase1 un "boton de comando" para pasar al formulario Fase2. El código asociado al evento "al hacer click" de este botón es:
Código:
Accion AbrirFormulario
Argumentos: Fase2; Formulario; ; [Formularios]![Fase2]![id_cursillos]=[Formularios]![Fase1]![id_cursillos]; Modificar; Normal
Después en las propiedades del formulario Fase1, es donde tengo lo que me dijiste:
Cita:
Abre las propiedades del formulario >> Pestaña eventos >> Al hacer click. Situate en esa linea. Si hay algo, borralo. vete a la derecha del todo, hay un boton con tres puntitos (...). Pulsalo y elige "Generar evento">> De codigo. Se te debe abrir la ventana de VBA en el evento click del boton. Pues es ahi donde has de poner esto:

docmd.openform "Fase2",,,"id_cursillos=" & me.id_cursillos
Concretamente ahora mismo lo que hay es esto:
Código:
Option Compare Database

Private Sub Comando15_Click()

End Sub

Private Sub Detalle_Click()

End Sub

Private Sub Form_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "Fase2", , , "id_cursillos=" & Me.id_cursillos
End Sub
También he probado a asignarle esto último al botón el lugar de a las propiedades del formulario, pero entonces ni siquiera me abre el formulario Fase2.

Ahora mismo estoy totalmente perdido. HELP!!!
  #12 (permalink)  
Antiguo 23/06/2008, 07:50
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Dos formularios para 1 misma tabla

Bien, te has liado por que te he dicho mal una cosa. Est:

'*************************************
Abre las propiedades del formulario >> Pestaña eventos >> Al hacer click. Situate en esa linea. Si hay algo, borralo. vete a la derecha del todo, hay un boton con tres puntitos (...). Pulsalo y elige "Generar evento">> De codigo. Se te debe abrir la ventana de VBA en el evento click del boton. Pues es ahi donde has de poner esto:

docmd.openform "Fase2",,,"id_cursillos=" & me.id_cursillos

'************************************************* ********

No es en las propiedades del form, sino en las propiedades del boton. Lo que queremos programar es el evento click del boton, no del form. Es decir, esto:

Private Sub Form_Click()

se refiere al evento click del form, y nosotros queremos hacer eso mismo en el eevnto click dle boton.

Private Sub NombreDelBoton_Click()

End Sub

Asi que sigue los pasos de nuevo, pero en las propiedades del boton, no del form.

Un saludo
  #13 (permalink)  
Antiguo 25/06/2008, 11:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 80
Antigüedad: 16 años
Puntos: 0
De acuerdo Respuesta: Dos formularios para 1 misma tabla

Por fin!!!

Era eso! ya decía yo que era muy raro que se estuviera complicando todo tanto.
Perdona pero ayer estuve liadísimo y no pude contestar. Muchísimas gracias por la ayuda.

Espero poder contar contigo si me salen más cosillas ok? Que eres una mákina en esto.

GRACIAS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:47.