copiar registros tablas access

14/03/2010 - 14:00 por Agustin Cot | Informe spam
Hola, como puedo copiar registro a registro de una tabla a otra en
distintos mdb

Gracias
Agustin

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
14/03/2010 - 15:06 | Informe spam
"Agustin Cot" wrote in message
news:%
Hola, como puedo copiar registro a registro de una tabla a otra en
distintos mdb



Podrías copiarlos por el simple método de abrir un OleDbDataReader sobre
la tabla original e ir iterando sobre los registros. Por cada uno que
encuentres, utilizas un OleDbCommand para grabar sobre la de destino.
Esquemáticamente, sería algo así:

OleDbCommand cmd1 = new OleDbCommand("Select * from tablaorigen",
conexion1);
OleDbCommand cmd2 = new OleDbCommand("Insert into TablaDestino values
(?,?,?)", conexion2);
OleDbDataReader rdr = cmd1.ExecuteReader();
while (rdr.Read())
{
cmd2.Parameters.Clear();
cmd2.Parameters.AddWithValue("p1", rdr[0]);
cmd2.Parameters.AddWithValue("p2", rdr[1]);
cmd2.Parameters.AddWithValue("p3", rdr[2]);
cmd2.ExecutenonQuery();
}
rdr.Close();

En este ejemplo hemos supuesto que la tabla tiene tres columnas, pero
obviamente es muy simple cambiar el número, o incluso usar un bucle para que
admita una cantidad variable.
Respuesta Responder a este mensaje
#2 Agustin Cot
14/03/2010 - 16:15 | Informe spam
Gracias
Agustin

"Alberto Poblacion"
escribió en el mensaje news:uJ8dD%
"Agustin Cot" wrote in message
news:%
Hola, como puedo copiar registro a registro de una tabla a otra en
distintos mdb



Podrías copiarlos por el simple método de abrir un OleDbDataReader sobre
la tabla original e ir iterando sobre los registros. Por cada uno que
encuentres, utilizas un OleDbCommand para grabar sobre la de destino.
Esquemáticamente, sería algo así:

OleDbCommand cmd1 = new OleDbCommand("Select * from tablaorigen",
conexion1);
OleDbCommand cmd2 = new OleDbCommand("Insert into TablaDestino values
(?,?,?)", conexion2);
OleDbDataReader rdr = cmd1.ExecuteReader();
while (rdr.Read())
{
cmd2.Parameters.Clear();
cmd2.Parameters.AddWithValue("p1", rdr[0]);
cmd2.Parameters.AddWithValue("p2", rdr[1]);
cmd2.Parameters.AddWithValue("p3", rdr[2]);
cmd2.ExecutenonQuery();
}
rdr.Close();

En este ejemplo hemos supuesto que la tabla tiene tres columnas, pero
obviamente es muy simple cambiar el número, o incluso usar un bucle para
que admita una cantidad variable.


Respuesta Responder a este mensaje
#3 SoftJaén
15/03/2010 - 09:48 | Informe spam
"Agustin Cot" preguntó:

como puedo copiar registro a registro de una tabla a otra en distintos
mdb



Hola, Agustín:

Si vas a copiar TODOS LOS REGISTROS existentes en una tabla, en lugar de
hacerlo "registro a registro", puedes hacer la operación de una sola vez,
ejecutando una consulta SQL de inserción masiva para EXPORTAR los datos a
las distintas bases Microsoft Access.

Una vez abierta la conexión con la base de datos cuyos datos deseas
exportar, ejecutarías la siguiente consulta SQL:

INSERT INTO NombreTablaDestino
IN 'C:\Carpeta\Base_destino.mdb'
SELECT * FROM NombreTablaOrigen

Obviamente, tendrías que ejecutar la consulta anterior tantas veces como
bases de datos de destino tengas.

Un saludo

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#4 Agustin Cot
15/03/2010 - 20:58 | Informe spam
Gracias, pero necesito copiar algunos registros

Agustin

"SoftJaén" escribió en el mensaje
news:
"Agustin Cot" preguntó:

como puedo copiar registro a registro de una tabla a otra en distintos
mdb



Hola, Agustín:

Si vas a copiar TODOS LOS REGISTROS existentes en una tabla, en lugar de
hacerlo "registro a registro", puedes hacer la operación de una sola vez,
ejecutando una consulta SQL de inserción masiva para EXPORTAR los datos a
las distintas bases Microsoft Access.

Una vez abierta la conexión con la base de datos cuyos datos deseas
exportar, ejecutarías la siguiente consulta SQL:

INSERT INTO NombreTablaDestino
IN 'C:\Carpeta\Base_destino.mdb'
SELECT * FROM NombreTablaOrigen

Obviamente, tendrías que ejecutar la consulta anterior tantas veces como
bases de datos de destino tengas.

Un saludo

Enrique Martínez
[MS MVP - VB]



Respuesta Responder a este mensaje
#5 Gustavo Cantero
15/03/2010 - 21:22 | Informe spam
Agustín:
Tal vez podrías usar este método que te comenta Enrique, pero
poniendo un WHERE en el SELECT para elegir qué campos copiar.
Saludos.

Gustavo A. Cantero
Scientia® Soluciones Informáticas
MCP - MCSD - MCTS - MCPD
http://www.scientia.com.ar
http://www.programandoamedianoche.com
http://foro.scientia.com.ar

From: Agustin Cot [mailto:]
Posted At: lunes, 15 de marzo de 2010 04:58 p.m.
Posted To: microsoft.public.es.csharp
Conversation: copiar registros tablas access
Subject: Re: copiar registros tablas access

Gracias, pero necesito copiar algunos registros

Agustin

"SoftJaén" escribió en el mensaje
news:
"Agustin Cot" preguntó:

como puedo copiar registro a registro de una tabla a otra en




distintos
mdb



Hola, Agustín:

Si vas a copiar TODOS LOS REGISTROS existentes en una tabla, en lugar


de
hacerlo "registro a registro", puedes hacer la operación de una sola


vez,
ejecutando una consulta SQL de inserción masiva para EXPORTAR los


datos a
las distintas bases Microsoft Access.

Una vez abierta la conexión con la base de datos cuyos datos deseas
exportar, ejecutarías la siguiente consulta SQL:

INSERT INTO NombreTablaDestino
IN 'C:\Carpeta\Base_destino.mdb'
SELECT * FROM NombreTablaOrigen

Obviamente, tendrías que ejecutar la consulta anterior tantas veces


como
bases de datos de destino tengas.

Un saludo

Enrique Martínez
[MS MVP - VB]



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida