Macro para formulario

Buenas!

Estoy haciendo una macro para que introduzca un texto predefinido en uno de los campos de la hoja actual del formulario.

Ahora mismo tengo creado esto:

Sub InsertarTextoEnObservaciones
    Dim Formulario As Object
    Dim ControlObservaciones As Object
    Dim TextoAAgregar As String
    
    ' Texto que deseas agregar
    TextoAAgregar = "-texto prueba."    
    ' Obtenemos el formulario actual
    Formulario = ThisComponent.Drawpage.Forms.GetByIndex(0)

    ' Verificamos si el formulario existe
    If Not IsNull(Formulario) Then
        ' Obtenemos el control de observaciones
        ControlObservaciones = Formulario.getByName("txtObservaciones")

        ' Verificamos si el control de observaciones existe
        If Not IsNull(ControlObservaciones) Then
            ' Insertamos el texto en el campo actual del control de observaciones
            ControlObservaciones.Text = ControlObservaciones.Text & Chr(13) & Chr(10) & TextoAAgregar
        Else
            MsgBox "No se encontró el control 'txtObservaciones' en el formulario.", 16, "Error"
        End If
    Else
        MsgBox "No se encontró el formulario.", 16, "Error"
    End If
End Sub

——-

Al ejecutarlo, lo hace correctamente, pero el problema es que ese texto no queda guardado en el campo de la tabla correspondiente.
Incluso he creado un botón “save”, pero no funciona.
Para que guarde algo tengo que volver a escribir en ese campo a continuación de haber ejecutado la macro.

¿Cómo podría solucionar esto?

Te respondieron en el grupo hispano de Telegram, donde hiciste la pregunta primero, te copio la respuesta del compañero:

Prueba con esto, adaptalo a tus variables:

Sub insertar_texto()

	TEXTO = Chr(13) & Chr(13) & "Más texto"
	formulario = ThisComponent.Drawpage.Forms.getByName("MainForm")
	txt_notas = formulario.getByName("txt_notas")
	 
	txt_notas.Text = txt_notas.Text & TEXTO
	txt_notas.commit()
	
	If formulario.IsNew Then
		formulario.insertRow()
	Else
		formulario.updateRow()
	End If
	
End Sub

Es importante ejecutar la macro desde el formulario abierto, NO desde el IDE.

Qué va. Por eso lo he puesto aquí.

De hecho llegué también a crear un botón para guardar todo y nada. Ahí viene lo llamativo, que ese botón de guardar no se activa hasta que no escribo en otros campos, o escribo algo manualmente en ese.

Es bueno siempre mencionar lo que has probado…

Quiero entender lo que quieres, por que mencionas que quieres un texto “predeterminado”, pero en el código, lo que intentas es concatenar el texto existente con uno constante. ¿Que quieres hacer realmente?

Por otra parte, creo recordar que debes actualizar el campo vinculado de la tabla en el control, no directamente el control, entonces, funcionará la respuesta que te han dado.

Vale. Disculpa por no haberlo dicho antes.

A ver lo que quiero hacer es lo siguiente:

Tengo un formulario que rellenarán con diferentes datos de trabajo diario. Entre ellos hay un campo observaciones que es de texto libre. Si bien, hay ciertas rutinas que se suelen hacer todos los días, por lo que por facilitar el trabajo y no tenerlo que escribir todos los días, quería crear unos botones para añadir un texto a ese campo “observaciones”.

Lo de actualizar el campo vinculado de la tabla en el control… cómo debo hacerlo?

Gracias de antemano por todo. Tengo ya casi todo lo demás listo, pero me falta este fleco y me tiene frito

He editado la respuesta, prueba con ese código… si te funciona, por favor, marcala como solución.

Perfecto. Muchísimas gracias. Ahora va perfecto.

Gracias de nuevo