Página 1 de 1
Cargar un campo fecha con otra fecha calculada
Publicado: Lun Dic 02, 2019 11:10 am
por davidffmm
Buenos días,
Estoy empezando con Open office y ando bastante pez en tema de programación macros con base.
Estoy creando un formulario con un subformulario. Quiero modificar automáticamente un campo de texto del subformulario al modificar otro campo de texto del subformulario.
He mirado ejemplos en internet, pero no soy capaz de conectar con el formulario en el que estoy trabajando. Entiendo que no conozco bien la manera de conectar ni la sintáxis…
No consigo encontrar documentación en castellano para hacer esto que creo es sencillo conociendo el lenguaje.
Gracias de antemano,
DAvid
NOTA: Título editado por RMG, según las normas del foro, se debe hacer una descripción del problema, no poner simplemente ayuda.
Re: Vincular campo de formulario con otro de subformulario
Publicado: Lun Dic 02, 2019 11:25 am
por RMG
Hola,
Para poder ayudarte, lo mejor es que adjuntes un pequeño ejemplo con lo quieres hacer, si solo se trata de vincular un campo del formulario con el subformulario, en este enlace puedes ver como hacerlo. Mira el apartado formularios avanzados.
https://wiki.open-office.es/Base
Saludos
Re: Vincular campo de formulario con otro de subformulario
Publicado: Lun Dic 02, 2019 2:00 pm
por davidffmm
Hola,
La idea es que una tabla principal de unos equipos y en el subformulario registrar las revisiones anuales que se hacen a dichos equipos.
En dicho subformulario registro la fecha de la revisión, si es apto y fecha siguiente revisión...
En el caso de que sea apto (campo tipo booleano), debería completar la fecha de siguiente revisión sumándole 365 días a la fecha de revisión...
Gracias
Re: Vincular campo de formulario con otro de subformulario
Publicado: Lun Dic 02, 2019 3:59 pm
por mauricio
En este foro hay varios ejemplos completos que hacen lo que quieres o muy cercano a ello. Se te solicita un archivo para ver lo que tienes y como ayudarte, de esta manera no obligas a partir de cero a quien quiera ayudarte.
Re: Vincular campo de formulario con otro de subformulario
Publicado: Lun Dic 02, 2019 4:55 pm
por davidffmm
Tienes razón Mauricio, lo intento adjuntar.
En el formulario principal, el subformulario subform_rev… al modificar el campo apto, si es sí, el campo fecha_sig_rev debe ser 1 año más que el campo fecha_revision.
Gracias de nuevo
Re: Vincular campo de formulario con otro de subformulario
Publicado: Lun Dic 02, 2019 7:23 pm
por RMG
Hola,
Revisa si es lo que necesitas. Vuelvo a cambiar el título del mensaje.
Saludos
Re: Cargar un campo fecha con otra fecha calculada
Publicado: Mar Dic 03, 2019 9:30 am
por davidffmm
Esto es perfecto...
Ahora estoy intentando que al seleccionar el id del producto me actualize el subformulario subform, he probado desde botón y es ok, pero si lo hago en un evento después de actualizar listbox, no me funciona... todavía no controlo la sintaxis...
Sub Actualizarsubform(Evento)
Evento.Source.Model.Parent.getByName("SubForm").Reload
End Sub
Existe algún documento con información de los comandos, sintaxis, etc..?
Gracias por la paciencia ...
Re: Cargar un campo fecha con otra fecha calculada
Publicado: Mar Dic 03, 2019 4:35 pm
por RMG
Hola,
Mi impresión es que te lo estas complicando innecesariamente un poco. Si haces los campos clave autonúmericos, te evitas poner estos, si después los vinculas entre formularios, ya tienes la información relacionada entre form/subform y si en el form principal pones un control tabla para seleccionar el que quieras, solo con esto ya lo tienes casi todo y sin nada de código, que es tu principal problema.
Respecto a aprender, en este enlace tienes todo o casi todo lo necesario.
https://forum.openoffice.org/es/forum/v ... =50&t=1545
Y en este otro, tienes proyectos de BD y otros, para ver cosas.
https://forum.openoffice.org/es/forum/v ... m.php?f=70
Saludos
Re: Cargar un campo fecha con otra fecha calculada
Publicado: Mar Dic 03, 2019 5:56 pm
por davidffmm
Hola de nuevo,
El problema es que los los campos claves números de serie y no puede ser autonumerico.
Lo que desconozco es como actualizar un subformulario al modificar el campo del formulario principal con el que está relacionado.
Gracias por la Info.
Re: Cargar un campo fecha con otra fecha calculada
Publicado: Mar Dic 03, 2019 6:43 pm
por RMG
Hola,
Puedes disponer de esos campos con indice único para que no se pueden duplicar y trabajar con ID autonumericos internamente para las relaciones y vinculos.
Si modificas un campo clave en el formulario principal, es más complicado de lo que parece actualizar esa modificación en el secundario, ya que pierde su vinculación, no ocurre así si la has hecho a través del ID auto, ya que este no lo puedes modificar.
Saludos
Re: Cargar un campo fecha con otra fecha calculada
Publicado: Jue Dic 05, 2019 8:24 pm
por davidffmm
Hola de nuevo, no soy capaz de encontrar la sintaxis correcta para comparar un campo de fecha en un formulario con la fecha actual. Podríais echarme una mano, por favor...
Re: Cargar un campo fecha con otra fecha calculada
Publicado: Jue Dic 05, 2019 8:51 pm
por RMG
Hola,
La fecha actual puede ser Date(), Now() en una macro, y dependiendo de su uso quizás te haga falta trabajar con Format(). Así que, debes ser más concreto que decir comparar en un formulario. En el enlace de los proyectos, si entras en sus macros en algunos tienes ejemplos. de como obtener la fecha actual.
Saludos
Re: Cargar un campo fecha con otra fecha calculada
Publicado: Vie Dic 06, 2019 4:06 pm
por RMG
Hola,
Por si te ayuda. Ejecuta esta macro y veras diferentes formas de obtener la fecha actual.
Código: Seleccionar todo
Sub Ejemplo_fecha_actual
print Date()
print Format(Date(),"yyyy-mm-dd")
print Now()
print Format(Now(),"hh")
print DateValue(Now())
fecha = CDateToIso(Now)'devuelve un numero
print fecha
fecha = CDateFromIso(fecha)'pasa el numero a fecha
print fecha
print DateSerial(1954,1,21)' fecha texto
print Day(DateSerial(1954,1,21)) & " del mes "& Month(DateSerial(1954,1,21))& " del año "& Year(DateSerial(1954,1,21))
print "Dia " & Day(DateValue(Now())) &" del mes "& Month(DateValue(Now()))& " del año "& Year(DateValue(Now()))
print "Dia " & DatePart("d",Now()) & " del mes " & DatePart("m",Now()) &" del año " & DatePart("yyyy",Now())
End sub
Saludos