Agregar varios registros a la vez en una tabla de access

Solicito de su amable colaboración, para identificar como puedo hacer para ingresar varios registros al tiempo a una tabla, no se si por medio de una macro puedo hacer vincular un archivo de excel y que este insertara los registros.

O hay otra forma de lograrlo, no quiero que me toque diligenciar registro por registro todos los datos me llegan en un archivo de excel y ingresar registro por registro es arduo, ademas que no logro identificar los id de cada campo ejemplo: el campo ciudad identificar el id de la ciudad del registro es muy complejo debo abrir la tabla de ciudades y buscar la ciudad para luego agregar el id. Por ende quiero automatizar este proceso.

1 respuesta

Respuesta
2

Reconozco que se poco de excel. Pero creo que lo mejores que estando en access vincules una tabla de excel. Luego siempre puedes hacer una consulta de datos anexados a la tabla que quieras, o bien hacerlo por código. Por ejemplo supongamos que la tabla vinculada de excel se llama Clientes y tiene las celdas idcliente, nombre, direccion y quieres insertar los registros en la tabla Amigos en los campos RespondeA, Vivienda. En algún evento, que puede ser en el evento al hacer clic de un botón puedes poner

docmd.setwarnings false

Docmd. Runsql"insert into amigos(respondea, vivienda)select nombre, direccion from Clientes"

En caso de que sólo quisieras insertar algunos sería lo mismo

... Clientes where... y aquí iría el criterio que distinguiría unos registros de otros. Por ejemplo

docmd.runsql"insert into amigos(respondeA,vivienda)select nombre, direccion from clientes where pais=""España"""

Solo te insertará aquellos registros de la tabla de excel en que pais=España

Buena tarde

De antemano mil gracias por la ayuda, he realizado  lo que me indicas, lo realice por medio de una consulta y me funciona muy bien sin embargo quisiera hacerla un poco mas robusta.

Como puedo hacer que al momento de ejecutar la consulta esta verifique la llave primaria y si ya se encuentra que actualice ese registro si no esta entonces lo inserte?

Honestamente no entendí nada. En los formularios, si vas a escribir algo en un control, en sus propiedades-eventos-antes de actualizar puedes poner algo así como(suponiendo que el cuadro de texto donde vayas a escribir un valor se llame Texto5)

if dcount("*","nombretablaoconsulta","campoquesea='" & me.texto5 & "'")>=1 then

msgbox"Ese valor ya está en la tabla",vbokonly,!Que lo sepas"

docmd.runsql"update tabla set....

else

docmd.runsql"insert into tabla....

end if

por ejemplo

If dcount("*","clientes","pais='" & me.texto5 & "'")>=1 then

docmd.runsql"update clientes set ciudad=""Madrid"" where pais='" & me.texto5 & "'"

else

docmd.runsql"insert into clientes(Nombre,direccion,etc)values(

Si pudieras concretar más

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas