Grabar registros en un subformulario con botón de comando

Tengo un formulario y dentro de él otro subformulario. En el subformulario hay un botón de comando con un código que al hacer click me vuelca los datos de los campos de texto a un documento Word.-

En el botón de comando he introducido este código para que me grave el registro al hacer click.

Private Sub Comando133_Click()
DoCmd. DoMenuItem acFormBar, acRecordsMenu, acSaveRecord,, acMenuVer70

El caso es que no me graba el registro y al hacer click me vuelca los datos del registro anterior en Word.

¿Cómo podría solucionar ésto?

1 Respuesta

Respuesta
1

Si el Proceso de enviar los datos a Word te funciona, pero lo hace con un registro anterior, me parece que la operativa sería :

https://docs.microsoft.com/es-es/office/vba/api/access.docmd.runcommand 

1 .- Guardar el Registro >> La instrucción sería (la que tienes es antigua)

DoCmd. RunComand acCmdSaveveRecord

Y después ejecutar el envío a Word. Saludos >> JTJ

Hay un error en mi línea:

DoCmd. RunComand acCmdSaveveRecord que debe ser>>

DoCmd. RunComand acCmdSaveRecord había un "ve" repetido. Saludos >> JTJ

Gracias por tu respuesta. 

Sigue sin funcionar. Para que me grabe el registro tengo que "navegar" para un registro anterior o posterior, de este modo cuando vuelvo al registro al que quiero volcar los datos en Word se vuelca sin problema. Al parecer se graban los datos en los campos cuando cambio de registro y no al hacer click en el botón de comando. Lo que me gustaría es ahorrarme el paso de tener que cambiar de registro y después volver para que se grabe. 

Con el código anterior también me pasaba. 

Saludos

Seguro que lo que dices ocurre, pero lo importante es averiguar la causa.

Para mi es ir un poco a ciegas, porque ignoro la estructura y el proceso. Entonces

Tienes >> Formulario >> SubFormulario>> Botón de comando>>¿A nivel registro? O a nivel SubFormulario.

Como prueba rápida y a ciegas, después de DoCmd.RunComand...

DoCmd. GoToRecord,, acLast

Si puedes poner unas imágenes tanto a mi como a otro usuario ayudarían a resolver el problema.

Hola nuevamente.-

He puesto la última línea de código que me propones( DoCmd. GoToRecord,, acLast) y tampoco funciona.

El código está en el botón de comando donde pone Acta/denuncia

Sinceramente no sé dónde puede producirse la anomalía.

Por hacer alguna prueba más mientras lo miro en detalle.

Sustituye esas dos líneas de >> DoCmd... por un>>

Me. Requery

Ya me contarás >> Saludos . JTJ

ok. Pongo me.requery y ya está?

Si, Sustituye los dos DoCmd.. por el Me. Requery y me comentas. JTJ

Ok. Gracias. Ahora te comento el resultado.

Pues en éste caso empeora el resultado. Tengo ocho registros en el subformulario y cuando hago click en el botón de comando siempre se me va al primer registro del subformulario. Además de volcar los datos en Word del primer registro también se me cambia el registro del subformulario y se va al primero.  

A mi modo de ver no empeora el resultado, sino que con ese Requery, hace lo que debe y es irse al primer registro.

Dicho ésto, y sin ver una solución que resuelva el problema, y una vez hechas algunas pruebas, lo que intuyo es que detrás de ese código, haya un Recordset o algún origen de datos que falla por elección de alguna condición.

Si quieres probar poniendo el botón a nivel de Registro en lugar de hacerlo a nivel general, puede solucionar el problema, pero no estoy seguro.

Si es que no tienes datos personales o confidenciales, (que por lo que veo puedes tenerlos), inventa algunos y pones la Aplicación con el Word incluido aquí (con un enlace de descarga), y miro de dedicar un rato.

Salvo que otro experto vea una solución que yo soy incapaz de ver. Saludos >> JTJ

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas