[Resuelto] Error de excepción en "Evento.Source.getByName()

Discute sobre las herramientas de la base de datos
Responder
Jordizen
Mensajes: 19
Registrado: Mar Ene 25, 2011 9:24 am

[Resuelto] Error de excepción en "Evento.Source.getByName()

Mensaje por Jordizen »

Hola a todos,
estoy intentando asignar la fecha del día al campo fecha de un formulario cuando es un nuevo registro.
La macro la asigno al evento "Tras el cambio de registro" .
La macro es
Sub Fechadia (Evento)
Dim txtFecha As Object
If Evento.Source.IsNew Then
txtFecha = Evento.Source.getByName("Fecha")
txtFecha.Date = Val( Format( Now, "DDMMYY" ) )
End If
End Sub

al pulsar nuevo registro surge el error:
Error de ejecución de BASIC
Se ha producido una excepción
Type: com.sun.star.container.NoSuchElementExceptionMessage.
en la línea :
txtFecha = Evento.Source.getByName("Fecha")

Gracias
Última edición por Jordizen el Jue Ene 27, 2011 11:01 pm, editado 1 vez en total.
OpenOffice 3.2 en Ubuntu 10.04
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Error de excepción en "Evento.Source.getByName()

Mensaje por RMG »

Hola,

Prueba con esta macro, a mi no me da problemas. Le debes asignar la primera macro, desde donde llama a la segunda.

Sub FechaActual(Event As Object)
Dim oForm As Object
Dim oFecha As Object
oForm=Event.Source
If oForm.IsNew Then
oFecha=oForm.GetByName("Fecha")
oFecha.BoundField.UpdateDate(fFechaBD(Now))
End If
End Sub


Function fFechaBD(Fecha As Date) As com.sun.star.util rem.Date
Dim FechaBD As New com.sun.star.util.Date
FechaBD.Year=Year(Fecha)
FechaBD.Month=Month(Fecha)
FechaBD.Day=Day(Fecha)
fFechaBD=FechaBD
End Function

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Error de excepción en "Evento.Source.getByName()

Mensaje por mauricio »

Hola...

La macro que te paso mi amigo Ramon, funciona perfecto, solo toma en cuenta que de esa forma, actualizaras siempre el campo nuevo a la fecha actual, en cuanto se ejecuta la línea oFecha.BoundField.UpdateDate(fFechaBD(Now)) el valor se guarda en la base de datos...

Para el error especifico que mencionas, asegurate de que el nombre que estas usando, sea efectivamente el del control donde quieres mostrar la fecha, cuidado, se distingue mayúsculas de minúsculas...
captura_003.png
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder