Grabar datos mediante formularios de access 2007

Estoy creando una base de datos compartida en Access 2007. Necesito saber cómo hago para que cuando los usuarios ingresen datos en los formularios queden grabados al pasar a otro registro o al cerrar el formulario, impidiendo modificarlos y en caso de que se necesite editarlos para modificación como se hace esto.

2 respuestas

Respuesta
1

SI no te manejas bien ´con el código puedes usar las propiedades del formulario.

En el primer caso por ejemplo te creas un formulario con estas propiedades:

Vista predeterminada: Formularios continuos

Entrada de datos: No

Permitir agregar: Sí

Permitir eliminación: No

Permitir ediciones: No

Con esto permites la inserción de nuevos registros pero no la edición de los existentes ni su eliminación. El guardado es automático al pasar de registro o al cerrar (depende claro está de si tienes algún campo obligatorio o validación que hayas definido, pero aparte de esto es automático).

Para modificar puedes crearte otro formulario ( o el mismo modificando sus propiedades al abrirlo por medio de código). Lo importante es poner la propiedad Permitir ediciones a Sí, con lo que permites hacer cambios en registros ya guardados.

Cordiales saludos.

Gracias por la respuesta, pero si el formulario contiene subformularios?

Las propiedades que te comento son válidas para los objetos formulario que se insertan en otro formulario. Es decir, los subformularios tienen las mismas propiedades ya que no dejan de ser formularios. Tienen alguna particularidad al ser objetos dentro de otros objetos (vincular campos principales...) pero en lo esencial funcionan igual.

Es normal usar un formulario de tipo continuo para presentar registros dentro de otro formulario en donde se colocan menú o botones o lo que se requiera. Las propiedades indicadas las defines en el subformulario (en vista de diseño del formulario que usas como subformulario) para que se permita editar o insertar o eliminar... El formulario principal puede no tener ningún origen de datos, usándose simplemente como contenedor de los otros objetos que comentaba. Cambiando las propiedades de este subformulario o creando otro formulario con distintas propiedades para ser usado como subformulario puedes controlar que permites hacer con los registros del subformulario.

Cordiales saludos.

¡Gracias! 

Continuando, con la pregunta, como sería con código la activación?

Tienes que poner un código similar al siguiente asociado al evento 'Al activar' del formulario

Private Sub Form_Current()
On Error GoTo Err_Form_Current
   If Me.NewRecord = True Then
        Me.AllowEdits = True
        Me.AllowDeletions = True
        ' ...
    Else
        Me.AllowEdits = False
        Me.AllowDeletions = False
        ' ...
    End If
Exit_Form_Current:
    Exit Sub
Err_Form_Current:
    MsgBox Err.Description
    Resume Exit_Form_Current
End Sub

El código comprueba si estamos en un nuevo registro o no, y dependiendo del resultado permite o no los cambios, el borrado y el resto de propiedades que decidas cambiar.

Cordiales saludos.

Respuesta

En access cada vez que se escribe y se cambia de campo se graba en la base de datos. Los datos estarán ahí despues de cerrar el formulario pues todo se graba automáticamente.

Si los usuarios solo acceden mediante formulario y no mediante una tabla, si usted no pone un botón borrar en el formulario los usuarios no podrán borrar datos, solo escribir en la base de datos. Si protege la base de datos evitará que puedan modificarla sin su permiso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas