Actualizar campo a partir de un formulario en Access

Tengo una tabla Access llamada Usuario con los campos ID, Nombre y Apellidos, los tres de tipo texto; un formulario llamado Fusuario con los cuadros de texto de nombres respectivos, txtNombre y txtApellidos. Desde el formulario se introducen los datos de nombres y apellidos en sus cuadros de texto correspondientes. Una vez introducidos los datos, ¿cómo podría actualizarse automáticamente el valor del campo ID de la tabla Usuario de modo que contenga Nombre y Apellidos conjuntamente, por ejemplo, separados por un espacio?

1 Respuesta

Respuesta
2

El formulario Fusuario lo haremos independiente, no lo bases en ninguna tabla ni consulta. En este formulario 2 cuadros de texto, txtNombre y txtApellidos. Insertas un botón, que llamaré por ejemplo Enviar, en las propiedades del botón ---> al hacer clic ---> picas en la flecha de la derecha y eliges Procedimiento de evento, luego picas en el cuadrado de los ... para abrir el generador de código y escribes el código siguiente:

Private Sub Enviar_Click()
DoCmd.RunSQL "Insert Into Usuario (Id, Nombre, Apellido) Values ('" & Form!txtNombre.Value & "'&' '&'" & Form!txtApellidos.Value & "','" & Form!txtNombre.Value & "','" & Form!txtApellidos.Value & "')"
End Sub

Es decir, al hacer clic en el botón que te ejecute (para ejecutar una consulta de acción ---> método DoCmd. RunSql) una consulta de anexar datos:

Insertame en la tabla Usuario en los campos (el nombre de los campos separados por,) los Valores (los valores de los cuadros de texto, en el Id concatenamos el valor del cuadro que te da el nombre con un espacio y con el cuadro que te da el apellido)

Ok, funciona perfecto, sin embargo, te agradecería me indicaras:

1.- si es posible omitir el cuadro de diálogo de Access al pulsar el botón Enviar, que nos advierte que vamos a anexar 1 fila y nos pregunta si hacerlo o no, es decir, si tras pulsar Enviar, directamente aceptamos la anexión solicitada.

2.-He intentado hacerlo usando el formulario Fusuario pero cuyos cuadros de texto  txtNombre y txtApellidos proceden de la lista de campos de la tabla Usuario, sin embargo, me genera un error:

"Access no puede anexar todos los registros en la consulta de datos anexados. Access estableció 0 campos a Nulos debido a un fallo en la conversión de tipos, y no agregó 0 registros a la tabla debido a infracciones de clave, 0 registros debido a infracciones de bloqueo, y 1 registros debido a infracciones de reglas de validación". 

Y no se registran los valores en la tabla Usuario si no uso Fusuario independiente. ¿Cuál es la causa? realmente me interesaría hacerlo desde Fusuario con los cuadros de texto obtenidos de la propia tabla Usuario.

Muchas gracias por tu tiempo y rápida respuesta. 

Para omitir los mensajes de error se utiliza el método: DoCmd.SetWarnings False

Private Sub Enviar_Click()
DoCmd.SetWarnings False 'Para desactivarlos

DoCmd.RunSQL "Insert Into Usuario (Id, Nombre, Apellido) Values ('" & Form!txtNombre.Value & "'&' '&'" & Form!txtApellidos.Value & "','" & Form!txtNombre.Value & "','" & Form!txtApellidos.Value & "')"

DoCmd.SetWarnings True 'Para volver a activalos

End Sub

Hola, 

el método DoCmd.SetWarnings False omite la presentación del error, sin embargo, la ejecución del código en el botón Enviar sobre el formulario Fusuario basado en tabla, no actualiza el campo ID de Usuario (éste sólo lo hace si Fusuario es independiente). 

No sé si deseas comentarme algo sobre el particular,

gracias de igual forma.

Particularmente, no me gusta usar los formularios basados en tabla para insertar registros, dan algunos problemas (lo cierras y te inserta un registro en blanco...) por eso utilizo el formulario independiente con un botón para ejecutar en el código la sql para insertar datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas