Access - agregar registro

 
Vista:

agregar registro

Publicado por fer (2 intervenciones) el 29/07/2009 12:09:23
Buenas, estoy haciendo una base de datos con access (acabo de empezar) y de codigo de VBA no tengo ni idea. ¿Como hago para agregar un registro a una tabla? Lo he intentado con el asistente al poner un boton, pero como el formulario se refiere a otra tabla distinta a la que quiero agregar el registro no me lo hace bien.
Muchas gracias
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

RE:agregar registro

Publicado por Antonio (83 intervenciones) el 01/08/2009 14:52:53
Hola

Si yo lo he interpretado bien, tienes un FORM1 que está usando la TABLA1 y cuando añades un nuevo registro a TABLA1 necesitas agregar un nuevo registro también a TABLA2.

Si es así vas a necesitar agregar código VBA (yo lo prefiero a usar una macro) para que antes de guardar el registro en TABLA1 te inserte los datos en TABLA2 mediante una consulta SQL de inserción. Complicadillo si estás empezando ;-)

Si controlas las propiedades del form en el evento FORM_BEFOREUPDATE puedes incluir algo como el código que incluyo entre las lineas de asteriscos:
************************************************************************************
Dim txtSQL as string
Dim Db as database
set db = currentdb
txtSql = "insert into TABLA2 (Tabla2.Campo1, Tabla2.Campo2) values (" & _
"'" & me.campo1 & "'" & _
"'" & me.campo2 & "'" & _
");"
Db.Execute txtSql, dbFailOnError
set db = nothing
***********************************************************************************
Y algunas aclaraciones:

Para agregar el código de arriba abres la ventana de propiedades del form, cuando estás en modo de diseño, buscas el evento before update, pinchas una vez en el y se muestra a la derecha un combo donde tienes que seleccionar "Procedimiento de evento" y a continuación pinchar en el boton con puntos suspensivos. Se abre la ventana de código donde ya se ha puesto automáticamente

Private Sub Form_BeforeUpdate(cancel as integer)

End sub

Introduces el código que te he puesto más arriba entre las líneas Private... y End sub y ya puedes cerrar la ventana de código (se salvará al salvar el form)

txtSql es la variable de tipo cadena de caracteres donde escribimos la sentencia SQL de inserción en TABLA2 de un nuevo registro compuesto por dos campos, CAMPO1 y CAMPO2 ambos de tipo cadena de caracteres, por eso los valores que se van a insertar deben estar escritos entre comillas (sencillas o dobles) .

(NOTA: Como lo que estamos poniendo en la variable txtSQL también es una cadena de caracteres que también necesita las comillas es por lo que he utilizado la comilla doble para todo el texto de sql y la comilla sencilla antes del valor de cada campo. (Sé que suena confuso tendrás que releerlo y entender lo que quiero decir)."

Los valores que se insertarán en Tabla2 los toma del propio form (Me.Campo1 y Me.Campo2) pero en este caso son los de TABLA1 que es la que está definida en el form. No funcionará esto si me.campo1 o me.campo2 son fechas o cifras (cambia el formato de la sentencia sql)

Después de haber preparado la sentencia de inserción del registro la instruccion Db.Execute es la que los agrega a la tabla. Si hay algún error en la sentencia o no se puede agregar el registro saltará un error (esperemos que no ocurra).

Espero que te sirva de guía para empezar a probar.
Saludos
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