Access - Confirmación de eficiencia

 
Vista:
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Confirmación de eficiencia

Publicado por Pablo (328 intervenciones) el 22/11/2021 19:06:42
Hola a tod@s
Estoy haciendo un formulario para buscaqr/modificar referencias, como son pocas la opción buscar la obvio, la opción modificar la habilito con un botón a la derecha de cada registro con el siguiente codigo
Option Compare Database
Option Explicit

Private Sub Comando7_Click()
MsgBox "cod.familia linea:" & Me.codigo_familia
Me.AllowEdits = True
Me.referencia_familia.SetFocus
End Sub

Private Sub descripcion_familia_Exit(Cancel As Integer)
If Me.Dirty Then
Dim guardar As Boolean
guardar = MsgBox("Guardo los cambios(S/N)", vbYesNo)
If guardar = True Then
DoCmd.RunCommand acCmdSaveRecord
Else
Me.Undo
End If
End If
End Sub

Private Sub Form_Open(Cancel As Integer)
Me.Caption = Space(10) & "B Ú S Q U E D A D E F A M I L I A S"
End Sub
Basicamente lo que hago es cambiar la propiedad AllowEdit del formulario y cuando sale del último campo preguntar si grabo el registro o no
Me gustaría saber si esta 'programación' es correcta o si hay otra forma más eficiente de hacerlo
Gracias
Pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Confirmación de eficiencia

Publicado por Pablo (328 intervenciones) el 23/11/2021 18:51:42
Como no hay respuesta supongo que no me expliqué bien, aclaro
El formulario lo abro con permitir ediciones=No
El código que está en el botón modificar de cada registro es:
Private Sub Comando7_Click()
Me.AllowEdits = True
Me.referencia_familia.SetFocus
End Sub
Cuando salgo del último campo del registro:
Private Sub descripcion_familia_Exit(Cancel As Integer)
If Me.Dirty Then
Dim guardar As Boolean
guardar = MsgBox("Guardo los cambios(S/N)", vbYesNo)
If guardar = True Then
DoCmd.RunCommand acCmdSaveRecord
Else
Me.Undo
End If
End If
Esto me funciona pero, no se si estaré matando moscas a cañonazos, si habrá otra manera más eficiente de hacerlo

Gracias
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Confirmación de eficiencia

Publicado por Anonimo (3316 intervenciones) el 23/11/2021 19:16:39
La eficiencia y la ergonomía no siempre caminan juntas.

Si funciona correctamente pues no se que se pretende obtener y como la eficiencia es dependiente del entorno, es en ese entorno donde se puede valorar.

Un ejemplo:
El mensaje es una toma de datos que no siempre se necesita y obliga a interrumpir el flujo de trabajo.

Si se condiciona a que el botón guardar se active con el valor de la variable Dirty, y en base a esa misma variable se eliminan las modificaciones al salir, se puede ganar velocidad y comodidad.

Si no hay cambios (Dirty = false) el botón guardar no tiene sentido practico
Si Dirty es True y se activa el botón, es el usuario el que a su capricho puede guardar los datos
Si no los guarda, al salir se elimina cualquier cambio (sea porque no le interesa guardarlos o lo hizo sin intención)


Pero puede suceder que el usuario tenga una metodología propia y no tenga la costumbre de validar lo que hace, por lo que este método le obligara a volver a modificar/crear lo que sin desearlo perdió (por no guardarlos) y ello no le agrade.

Conclusión, hay que aplicar el método que permita hacerlo lo mas rápido y fiable que sea posible para ese o esos usuarios, muchos de ellos serán excelentes mecanógrafos y los cambios de foco (para acceder a pulsar cualquier botón) no le ayuda nada (pero un acceso directo por teclado lo agradecerán).

Los creadores de aplicaciones deberían programar con la vista fija en el objetivo final teniendo en cuenta los medios de que dispone para obtenerlo (y los usuarios son uno de los medios mas importantes).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Confirmación de eficiencia

Publicado por Pablo (328 intervenciones) el 23/11/2021 20:22:17
Me gustó la primera frase: la eficiencia y la ergonomía...
El programa funciona, hace lo que quiero y listo

Gracias
Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar