Problemas para relacionar dos formularios con el principal

Discute sobre las herramientas de la base de datos

Problemas para relacionar dos formularios con el principal

Notapor jftejeiro » Mar Ago 04, 2020 9:02 am

Abusando nuevamente de vuestra generosidad y sabiduría pongo la base que estoy haciendo porque me está superando. Yo vengo de Access y sabía hacer alguna cosa pero aqui es todo totalmente diferente.
A ver si pueden ayudarme. No consigo relacionar los formularios, me explico.
Quiero que desde el formulario REGISTRO DE ENTRADA abrir los otros dos formularios Documentación Enviada y Documentación Recibida, para lo que puse dos botones.
En el formulario principal tengo un campo llamado CODIGO LABORATORIO (ID_LAB) que es el importante en todo esto, los datos que van a identificar cada ficha o caso como quieras llamarle 001,002,003 etc... los meto a mano porque no se como hacerlo para que se haga automático, el principal problema es que no borre un registro y que después los números no sean correlativos, por eso los introduzco a mano.

Bueno al grano, lo que pasa es que voy grabando y generando casos en el REGISTRO DE ENTRADA, en la ficha principal, pero cuando abro el Formulario e Documentación Enviada y Documentación Recibida para grabar ahí datos, no consigo que se abra el formulario correspondiente con el del formulario principal, 001 - 001, 002 -002 no se si me entendéis.
Estuve mirando otras bases pero no doy con el tema.
Después también en los subformularios debería verse solamente, los datos referentes al caso que esta abierto en ese momento en pantalla. No se si me explico bien.

Bueno, pues ese es mi problema y me gustaría que me pudiesen explicar como se hace o como se soluciona. Busqué por el foro pero no encuentro exactamente lo que busco y cuando lo encuentro es para se consulte un base echa y ya lo hago, pero no descubro como se hace.
Llevo tres días desengranado bases que me descargué de aquí, analizando macros etc... y ya me echa humo la cabeza, ya no doy mas de si, se que es una cosa facil, pero al final las cosas faciles son las que más quebraderos de cabeza dan.
Lo intenté haciendo una consulta y después el formulario con la consulta, pero hay algo que me dejo en el tintero y no se que es.
Cree la consulta y los formularios cientos de veces y no doy con la clave.

Otra duda que tengo, es como se resetea o pone a cero el campo clave principal. ya que estoy haciendo pruebas y metiendo datos y el contador va subiendo. Cuando borro los registros introducidos el contador no vuelve a cero.
Pues eso, cuando puedan ...
Gracias, Francisco
Adjuntos
BASE LABORATORIO LIBREOFFICE 2.rar
(56.24 KiB) 104 veces
Libre Office 6.5.4 en Windows 10
jftejeiro
 
Mensajes: 15
Registrado: Mié Jul 15, 2020 6:39 pm

Re: Problemas para relacionar dos formularios con el princip

Notapor RMG » Mar Ago 04, 2020 9:39 am

Hola,

Lo primero que te sugiero es que leas este tutorial, sobre todos el tema formularios avanzados, te aclarará muchas dudas sobre como vincular campos del formulario principal al subformulario. en el otro hilo donde pongo un control tabla lo puedes ver.

Para resetear un ID automático, en Herramientas->SQL, ejecutas esta instrucción.

ALTER TABLE "nombretabla" ALTER COLUMN "nombrecampo" RESTART WITH 1

Lo de abrir otro formulario con los datos de donde lo lanzas también lo tienes en el foro.

Saludos
OpenOffice 4.1.9 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3817
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Problemas para relacionar dos formularios con el princip

Notapor jftejeiro » Mar Ago 04, 2020 1:05 pm

No me has puesto el enlace del tutorial :))
Libre Office 6.5.4 en Windows 10
jftejeiro
 
Mensajes: 15
Registrado: Mié Jul 15, 2020 6:39 pm

Re: Problemas para relacionar dos formularios con el princip

Notapor RMG » Mar Ago 04, 2020 4:33 pm

OpenOffice 4.1.9 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3817
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Problemas para relacionar dos formularios con el princip

Notapor Longi » Mar Ago 04, 2020 4:53 pm

Buenas!

Te dejo dos macros para abrir los formularios que necesitas.
He cambiado el origen de datos por un SQL que lo modulo en función del índice del formulario principal.
Solamente abre el formulario en el registro, no permite después navegar por otros registros.
Esa opción (abrir en el registro que quieres y poder navegar por otros) también es posible, pero quizá así te sirva.

Código: Seleccionar todo   Expandir vistaContraer vista
Sub FormularioDocEnviada (Evento)

    ocontroller = Thisdatabasedocument.currentController                                        ' Controlador de la base de datos
    if not ocontroller.isconnected then ocontroller.connect                                     ' Mantenemos la conexión
    oForm = Evento.Source.Model.Parent                                                           ' El formulario activo
    ID= oForm.getByName ("fmtID_REG").Text                                                ' ID del registro del formulario
   msgbox ID
    '-------------------------------------------------------
    ' Abrimos el formulario
   
    oDoc = Thisdatabasedocument.formdocuments.getbyname("frm_DocEnviada").open                  ' Abrimos el formulario
    oForm1= oDoc.Drawpage.Forms.getByName("MainForm")
    Wait 500
    oForm1.CommandType=2                                                                          ' Tipo de origen de datos, pasa a ser una orden SQL                                                                 
    oForm1.Command="SELECT ""tbl_DOC_ENVIADA"".*, ""tbl_DOC_ENVIADA"".""ID_DOCU_ENVIADA"" FROM ""tbl_DOC_ENVIADA"" WHERE ""ID_DOCU_ENVIADA"" = "& ID &""
    oForm1.Reload
   
End  sub

Sub FormularioDocRecibida (Evento)

    ocontroller = Thisdatabasedocument.currentController                                        ' Controlador de la base de datos
    if not ocontroller.isconnected then ocontroller.connect                                     ' Mantenemos la conexión
    oForm = Evento.Source.Model.Parent                                                           ' El formulario activo
    ID= oForm.getByName ("fmtID_REG").Text                                                ' ID del registro del formulario
    '-------------------------------------------------------
    ' Abrimos el formulario
   
    oDoc = Thisdatabasedocument.formdocuments.getbyname("frm_DocRecibida").open                  ' Abrimos el formulario
    oForm1= oDoc.Drawpage.Forms.getByName("MainForm")
    Wait 500
    oForm1.CommandType=2                                                                          ' Tipo de origen de datos, pasa a ser una orden SQL                                                                 
    oForm1.Command="SELECT ""tbl_DOC_RECIBIDA"".*, ""tbl_DOC_RECIBIDA"".""ID_RECIBIDA"" FROM ""tbl_DOC_RECIBIDA"" WHERE ""ID_RECIBIDA""= "& ID &""
    oForm1.Reload
   
End  sub


Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Longi
 
Mensajes: 740
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Problemas para relacionar dos formularios con el princip

Notapor jftejeiro » Mar Ago 04, 2020 10:59 pm

Gracias, lo probé pero da un error de variable no definidas.
Sin tener mucha idea las fui definiendo yo, pero da igual error.
Obviamente no lo hago bien, o no las defino del tipo correcto.
Da error con "ocontroller, "oForm, "ID"

Las definí asi:
Dim ocontroller As Object
Dim oForm As Object
Dim ID As String

pero al final tampoco abre el formulario
Imagen
Libre Office 6.5.4 en Windows 10
jftejeiro
 
Mensajes: 15
Registrado: Mié Jul 15, 2020 6:39 pm

Re: Problemas para relacionar dos formularios con el princip

Notapor Longi » Mié Ago 05, 2020 5:36 pm

Veamos.....Varias modificaciones:
He puesto la macro para abrir el formulario de inicio al arrancar.
He puesto la macro del botón 'Subir documento' (macro copiar documento) que te pregunta si es un documento emitido o recibido, y genera carpeta con el número de registro de laboratorio extendido (seriado con ceros a la izquierda), pero también genera las subcarpetas de emitidos y de recibidos, guardando el documento en aquella que se haya elegido y con el nombre que se quiera asignar.
Esta misma macro introduce la ruta en la tabla correspondiente dentro del registro que le toca, aunque hay más datos para los que tendrás que afinar el SQL insert Into.
La macro de importación no la he modificado, pero serían los mismos pasos que en la de copiar los documentos.
Los botones de abrir el formulario de documentacion recibida o emitida funcionan correctamente.
En el formulario de documentación recibida (creo que es en ese) he puesto una macro en el control de tablas que hace que abra el documento que tiene la ruta en la fila que has seleccionado o clicado.
Puedes hacer lo mismo para el otro formulario (el de documentación emitida).
Espero que esté bien para ir empezando con la gestión de los documentos.
Si vas a seguir usando SQL te recomiendo que hagas un SPLIT, separando los datos de la estructura. La estabilidad alcanzada es muy superior.

Un saludo! ;)
Adjuntos
BASE LABORATORIO LIBREOFFICE2.0.7z
(58.65 KiB) 100 veces
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Longi
 
Mensajes: 740
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Problemas para relacionar dos formularios con el princip

Notapor jftejeiro » Mié Ago 05, 2020 5:45 pm

Ok, lo voy a mirar, os agradezco vuestro tiempo.
Estoy aquí peleando todas las tardes. Hasta que no finalice no paro. :))
Libre Office 6.5.4 en Windows 10
jftejeiro
 
Mensajes: 15
Registrado: Mié Jul 15, 2020 6:39 pm

Re: Problemas para relacionar dos formularios con el princip

Notapor Longi » Jue Ago 06, 2020 6:50 pm

Buenas!

Nueva versión(07/08/20), con mejoras en formulario principal

Un saludo! ;)
Adjuntos
BASE LABORATORIO LIBREOFFICE2.0.7z
(63.1 KiB) 106 veces
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Longi
 
Mensajes: 740
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España


Volver a Base

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados