You are on page 1of 2

Cdigo para transferir informacin entre dos bases de datos de access

Estamos considerando los siguientes supuestos


Tabla de origen: Origen.accdb
Tabla de destino: Destino.accdb
Campos de la tabla de origen: Clave_sector, Nombre_sector
Campos de la tabla de destino: Clave_sector, Nombre_Sector
Contrasea de ambas tablas perrogato

Public Sub transfiere_tabla(ByVal borigen As String, ByVal bdestino As String,


ByVal carpeta As String)
'Declaracion de variables
Dim conexionorigen As New OleDb.OleDbConnection
Dim conexiondestino As New OleDb.OleDbConnection
Dim cmddestino As New OleDb.OleDbCommand
Dim cadenaorigen As String 'Variable que almacena la Cadena de conexion
para la tabla de origen
Dim cadenadestino As String
'Variable que almacena la Cadena de conexion
para la tabla de destino
Dim contrasea As String
Dim consulta As String ' Almacena la consulta para los datos de origen
Dim dtorigen As New DataTable() ' Declara el Datatable
Dim i As Integer
Dim numregistros As Integer
Dim sql As String 'Variable que almacena la consulta para la agregacion de
datos a la tabla destino
contrasea = "perrogato"
cadenaorigen = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & carpeta &
"\" & borigen & ";Persist Security Info=False;Jet OLEDB:Database Password=" &
contrasea & ";"
cadenadestino = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & carpeta &
"\" & bdestino & ";Persist Security Info=False;Jet OLEDB:Database Password=" &
contrasea & ";"
'Asigna las cadenas de conexion
conexionorigen.ConnectionString = cadenaorigen
conexiondestino.ConnectionString = cadenadestino
Try
'Abre la conexion con la base de datos de origen
conexionorigen.Open()
'Asigna la consulta de seleccion de la tabla de origen
consulta = "SELECT Clave_sector, Nombre_Sector FROM Sectores;"
'Crea el dataadapter con la base de datos de origen
Dim dataadapterorigen As New OleDb.OleDbDataAdapter(consulta,
conexionorigen)
'Llena la tabla en memoria
dataadapterorigen.Fill(dtorigen)
'Quita la conexion fisica
dataadapterorigen.Dispose()

If dtorigen.Rows.Count = 0 Then
MsgBox("No hay registros en la tabla de origen")
Else
'Dimensiona un array para guardar todos los registros de la tabla de
origen
Dim registros(dtorigen.Rows.Count, 2) As String
'Asigna el total de registros
numregistros = dtorigen.Rows.Count
For i = 0 To numregistros - 1
'Asigna el registro actual al array
registros(i, 1) = dtorigen.Rows(i)("Clave_sector").ToString
registros(i, 2) = dtorigen.Rows(i)("Nombre_sector").ToString
Next i
'Quita la conexion de origen
dtorigen.Dispose()
conexionorigen.Close()
conexionorigen.Dispose()
'Abre la conexion a la base destino
conexiondestino.Open()
cmddestino.CommandType = CommandType.Text
cmddestino.Connection = conexiondestino
For i = 0 To numregistros - 1
'Crea la consulta para agregar el registro actual
sql = "INSERT INTO sectores (Clave_sector,Nombre_sector)"
sql += " VALUES (" & registros(i, 1) & ",'" & registros(i, 2) & "')"
'Asigna la consulta al comando
cmddestino.CommandText = sql
'Ejecuta la consulta de agregacion
cmddestino.ExecuteNonQuery()
Next i
End If
MsgBox("Traspaso exitoso")
Conexiondestino.close
Conexiondestino.dispose
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub

Origen del Articulo:


http://sintad.com.mx

You might also like