Crear botón Guardar personalizado ya que utilizo el que viene por defecto

Os escribo ya casi al final de mi primer proyecto en Access. Para guardar los datos que aparecen en los diferentes formularios tengo configurado para guardar con el botón por defecto que trae la aplicación; y creo que de ahí radica un problema que estoy teniendo. El problema es que al guardar, lo datos guardados "pisan" los anteriores, de tal manera que en la tabla solamente hay una línea con datos guardados.

¿Puede deberse al botón de guardado por defecto? ¿Cómo podría configurar un botón personalizado (hablo del código) para guardar?

Respuesta
2

En principio parece raro, ya que si en un formulario dependiente de una tabla estás en un registro nuevo, al guardarlo, tambien lo hace en un registro nuevo de la tabla, por lo que voy a suponer que es un formulario independiente.

1º Puedes poner, en lugar del botón, lo que quieras, ya que tanto una etiqueta, como un cuadro de texto como un control imagen tienen el evento Al hacer clic.

Dicho esto, supongamos que pones una imagen, y que el formulario tiene los controles(sea cuadro de texto, combinado o cuadro de lista) TextoA, TextoB y TextoC y quieres que te los guarde en la tabla Clientes en los campos CampoA, CampoB y Campoc. En las propiedades del control imagen-eventos-al hacer clic, crea un procedimiento de evento y entre Private Sub y En sub puedes poner

docmd.setwarnings false
Docmd. Runsql"insert into clientes(campoa, campob, campoc)values(textoa, textob, textoc)"

Los campos origen y destino no tienen porque llamarse igual, pero Sí ser de datos coherentes.

Muchas gracias, Icue:

Ha funcionado correctamente, el tema es que ahora cuando selecciono los datos (que se cargan desde un combo) me guarda automáticamente los datos en la tabla (y cuando le doy al botón de guardar, se crea una nueva línea con los datos duplicados). ¿Sabrías visualizar por qué sucede?

Saludos.

Si el formulario tiene como origen una tabla, para guardar no necesitas ningún botón ya que Access, por defecto, si no le dices nada en contra te lo guarda en esa tablas. Si por otro lado, a través de un botón le estás diciendo que te inserte unos valores en la tabla estarías duplicando los registros, que creo que es lo que te sucede.

Yo te dije, que si el formulario era independiente, es decir, que no tiene origen de registros, no depende de ninguna tabla, si podías usar la instrucción que te puse, pero si era independiente.

Si depende de una tabla y quieres guardar los datos, antes de cambiar de registro(que te los guardaría igual) o de cerrar(que te los guardaría igual) podrías poner en el botón(que no haría falta, pero...=

Docmd. Runcommand accmdsaverecord

Es decir, que te guarde en la tabla el valor actual.

Hola, Icue:

Muchas gracias por la explicación (sigo siendo un novel en esto). Retomando el tema del botón guardar en un formulario dependiente, ¿cuál sería la mejor solución? Es decir, la idea es que al abrir el formulario no guarde nada hasta que se le dé al botón "guardar", y, asimismo, te dé un mensaje de "registro guardado correctamente" y cierre el formulario.

Saludos.

Al ser el formulario independiente, no tiene origen de registros, es decir no tiene donde "guardar", ni los cuadros de texto tienen origen del control, por eso lo de

Docmd.runsql"insert into... que puedes completar con

Msgbox"Se han guardado correctamente", vbokonly+vbinformation,"¿Como tengo que decírtelo?"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas