Página 1 de 1

Posicionarse en fila de inserción de una tabla

Publicado: Mié Abr 01, 2020 7:26 pm
por JoseraGR
Buenas

Otra vez necesitando vuestra ayuda.

El problema que tengo es que cuando desde el menú principal pulso la opción de "NUEVO MATERIAL", este mediante una macro llama al formulario y se abre colocándose en el ultimo registro introducido. Esto provoca que no pueda introducir uno nuevo sin que machaque el que me muestra. La solución pasaría por incluir en la macro del botón "NUEVO MATERIAL" una línea que posicionase el cursor en el registro de inserción de la tabla que utiliza el formulario, mostrando al abrirse de esta forma los datos por defecto del registro. He buscado y creo que seria el método moveToInsertRow, pero he intentado de varias formas configurarlo en la macro y no doy con la tecla, (creo que aun no domino muy bien esto de los métodos funciones ….). La macro que tengo es

Código: Seleccionar todo

Sub BotonNuevoMaterial
	Call sAbreF ("F_MODELO")
End Sub

'Apertura de formularios por nombre
Sub sAbreF (NombreF As String)
    Dim oControl As Object
   'Conecta con la base de datos
   oControl=ThisDatabaseDocument.CurrentController()
   If Not oControl.IsConnected() Then oControl.Connect()
   'Abre el formulario
   oControl.LoadComponent(com.sun.star.sdb.application.DatabaseObject.FORM,NombreF,False)
End Sub
La tabla que utiliza el formulario se llama "MODELO", pero no atino a ver como implementarlo eso en la macro "sAbreF"

Espero vuestra ayuda un saludo y gracias

Re: Posicionarse en fila de inserción de una tabla

Publicado: Mié Abr 01, 2020 7:33 pm
por RMG
Hola,

Te leo, pero no acabo de entender lo que quieres. De todas formas la propiedad del formulario solo insertar registros no te vale?. Equivale a moveToInsertRow.

Saludos

Re: Posicionarse en fila de inserción de una tabla

Publicado: Mié Abr 01, 2020 8:37 pm
por JoseraGR
Buenas

Voy a intentar explicarme mejor.

Tengo un menú de inicio de la BD, en ella hay un botón llamado "NUEVO MODELO" el cual tiene asociada la macro del anterior post.
Cuando pulso el botón se abre el formulario y muestra el último registro introducido en la tabla "MODELO", que es la asociada a dicho formulario. Lo que busco es que al pulsar el botón se abra el formulario, pero el registro que muestre no sea el último introducido, sino que esté posicionado en la línea de inserción de la tabla, para de esta forma poder introducir un registro nuevo.

No se si con esto he aclarado algo mas la cuestión

SAludo y gracias

Re: Posicionarse en fila de inserción de una tabla

Publicado: Jue Abr 02, 2020 9:52 am
por RMG
Hola,

Sí, ahora esta claro, por eso mi sugerencia que pongas en propiedades del formulario la opción "Solo insertar registros" con esto lo que haces, es que al abrir el formulario directamente se sitúe en ese estado. Eso es lo más sencillo, aunque te obliga a tener dos formularios, uno para editar y otro para insertar.

Otra posibilidad, es poner un valor el que tu quieras en la propiedad "Información adicional" (tag) del botón, y en función de ese valor al pulsar que abra el formulario con el método moveToInsertRow o sin este.

Saludos

Re: Posicionarse en fila de inserción de una tabla

Publicado: Jue Abr 02, 2020 9:57 am
por Longi
Buenas!

Creo que en este hilo tienes la respuesta.

https://forum.openoffice.org/es/forum/v ... 31&t=13816

Un saludo! ;)