|
Responder ![]() |
Autor | |
javifergavilan ![]() Nuevo ![]() Unido: 25/Marzo/2020 Localización: España- Madrid Estado: Sin conexión Puntos: 49 |
![]() Enviado: 27/Marzo/2020 a las 21:24 |
Buenas Tardes:
Tengo dos Tablas dentro de Base de datos de Access 2013, y quiero pasar los datos de una a otra. Quiero que al ejecutar un botón se pasen los datos de la Tabla1 a las Tabla2. Los campos se llaman igual en las dos tablas. Tabla1 CampoA CampoB Tabla2 CampoA CampoB He estado busco por internet tutoriales y demás y no he encontrado nada con VBA . Muchas Gracias de Antemano. Un saludo.
|
|
![]() |
|
AnSanVal ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5939 |
![]() |
Hola javifergavilan, bienvenido al foro. Has colgado tu pregunta en el subforo equivocado. Visual Basic Clásico (VB3...VB6) y VBA son lenguajes diferentes. Paso tu consulta al foro de Access y VBA, en unos días quitaremos la consulta del subforo de origen. |
|
Saludos desde Tenerife.
|
|
![]() |
|
xavi ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14630 |
![]() |
En principio no necesitas para nada la utilización de VBA para hacer eso: una consulta de datos anexados lo hace de un plumazo.
En VBA lo puedes hacer de 2 modos (por lo menos) 1. Ejecutar la consulta de datos anexados CurrentDb.Execute "INSERT INTO Tabla2 (CampoA, CampoB) SELECT CampoA, CampoB FROM Tabla1",dbFailOnError 2. Abrir un par de recordsets para volcar los datos Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM TablaA",,dbReadOnly) Set rst2 = CurrentDb.OpenRecordset("SELECT * FROM TablaB",, dbAppendOnly) Do Until rst1.EOF rst2.AddNew rst2!CampoA = rst1!CampoA rst2!CampoB = rst1!CampoB rst2.Update rst1.MoveNext Loop rst1.Close Set rst1 = Nothing rst2.Close Set rst2 = nothing Si tuvieras más de 2 campos, puedes cambiar a un bucle For Each Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM TablaA",,dbReadOnly) Set rst2 = CurrentDb.OpenRecordset("SELECT * FROM TablaB",, dbAppendOnly) Do Until rst1.EOF rst2.AddNew For Each fld In rst1.Fields rst2.Fields(fld.name).Value = rst1.Fields(fld.Name).Value Next rst2.Update rst1.MoveNext Loop rst1.Close Set rst1 = Nothing rst2.Close Set rst2 = nothing Un saludo
|
|
![]() |
|
javifergavilan ![]() Nuevo ![]() Unido: 25/Marzo/2020 Localización: España- Madrid Estado: Sin conexión Puntos: 49 |
![]() |
Buenas Noches:
Me da Error de sintaxis INSERT INTO.... CurrentDb.Execute "INSERT INTO [TWP PRINCIPAL] (Identificador,Uso,Última Configuración,Número de serie,Estado) SELECT (Identificador,Uso,Última Configuración,Número de serie,Estado) FROM TWP", dbFailOnError Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM TWP", , dbReadOnly) Set rst2 = CurrentDb.OpenRecordset("SELECT * FROM [TWP TELEFONICA]", , dbAppendOnly) Do Until rst1.EOF rst2.AddNew rst2!Identificador = rst1!Identificador rst2![Última configuración] = rst1![Última configuración] rst2![Número de serie] = rst1![Número de serie] rst2!Uso = rst1!Uso rst2!Estado = rst1!Estado rst2.Update rst1.MoveNext Loop rst1.Close Set rst1 = Nothing rst2.Close Set rst2 = Nothing Yo creo que esta escrita igual pero no se código.... No me vale con hacer una consulta porque ya tengo el código programado con esas tablas y desconozco si me funcionará igual. Me he encontrado con el problema de tener que copiar y pegar a mano cada vez que necesitaba hacer y a ver si así lo hace automático.... Un saludo y Gracias.
|
|
![]() |
|
pitxiku ![]() Colaborador ![]() ![]() Unido: 27/Septiembre/2017 Localización: En mi casa Estado: Sin conexión Puntos: 1481 |
![]() |
Los nombres que contienen espacios hay que delimitarlos con corchetes:
CurrentDb.Execute "INSERT INTO [TWP PRINCIPAL] (Identificador,Uso,[Última Configuración],[Número de serie],Estado) SELECT (Identificador,Uso,[Última Configuración],[Número de serie],Estado) FROM TWP", dbFailOnError |
|
![]() |
|
rokoko ![]() Colaborador ![]() ![]() Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3062 |
![]() |
Con un consulta de datos anexados lo harias facil, la cuestion seria si siempre tienes que copiar todos o solo parte de los registros.
Si son todos siempre, deberias vaciar la tabla destino previamente. Si no la consulta de datos anexados deberia llevar algun filtro.. En este ejemplillo veras las dos opciones, lo de filtrar datos de una buena forma lo acabo de aprender aqui. https://www.dropbox.com/s/4zb0682zjmt0mlg/De%20tabla%20a%20Tabla%20FILTRADOS%20OK.rar?dl=0 Saludos
|
|
![]() |
|
javifergavilan ![]() Nuevo ![]() Unido: 25/Marzo/2020 Localización: España- Madrid Estado: Sin conexión Puntos: 49 |
![]() |
buenos días:
Con las Consulta se resuelve el problema y me resulta mucho más facil la copia de datos. un saludo.
|
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |