Usuario
Auxilio... Como paso registros de una tabla mdb a otra de otra mdb?

Pregunta
-
Hola buen dia!!!
Necesito pasar mi tabla de clientes de una MDB a otra MDB, no se utilizar el INSERT INTO y tambien me falta la instruccion para ejecutarlo,
Alguien podria ayudarme?
DIM dt as Datatable
Dim Conexion1 As String = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\SUC1\Base1.mdb;Jet OLEDB:Database Password=12345"
Dim Conexion2 As String = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=c:\SUC2\Base2.mdb;Jet OLEDB:Database Password=12345"
Dim SQL As String = "SELECT * FROM Clientes"
Dim dataAdapter As New OleDb.OleDbDataAdapter(SQL, Conexion1)
dataAdapter.Fill(dt)
Dim SQL2 as String = "INSERT INTO Clientes IN " & Conexion2 & "SELECT * FROM Clientes"?? con que instruccion lo ejecuto...
Saludos,
Jose Luis R
Todas las respuestas
-
-
-
hola,
una idea repidamente es haciendo un for por cada fila de la tabla y ir insertadosela por ejemplo algo haci
Dim dt As New Data.DataTable
Dim da As New Data.SqlClient.SqlDataAdapter
Dim rw As Data.DataRow = dt.NewRow()
For i = 1 To dt.Rows.Count - 1
Dim sql As String = "insert into clientes select " & rw(i).ToString()
Next
Enmanuel Grullard@Developer ASP.NET -
El siguiente procedimiento me permite pasar la información de 5 tablas, de un archivo mdb a otro.
Solo hay que pasarle la ruta del archivo desde y hasta. ____ízala bién. Fíjate que es muy recursiva y el empleo de JOIN para buscar las tablas en el arreglo vector, evita el tener que escribir varias líneas.
Sub adoProc(desde As String, hasta As String)
Dim rstDesde As New ADODB.Recordset, mdbDesde As New ADODB.Connection
Dim rstHasta As New ADODB.Recordset, mdbHasta As New ADODB.Connection
Dim vector, cat As New ADOX.Catalog
strVector = "Clientes,Clientes_producto,Ventas_Diarias,Factura,Factura_Detalle"
vector = Split(strVector, ",")
Set mdbDesde = New ADODB.Connection
strconexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & desde & ";USer id=admin; password="
With mdbDesde
.ConnectionString = strconexion
.ConnectionTimeout = 10
.Open
End With
Set mdbHasta = New ADODB.Connection
strconexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & hasta & ";USer id=admin; password="
With mdbHasta
.ConnectionString = strconexion
.ConnectionTimeout = 10
.Open
End With
cat.ActiveConnection = strconexion
For Each tbl In cat.Tables
pos = InStr(1, vbNullChar & Join(vector, vbNullChar) & _
vbNullChar, vbNullChar & tbl.Name & vbNullChar)
If pos = 0 Then
If cat.Tables(tbl.Name).Type = "TABLE" Then 'en caso de que hay tablas en mdb.desde no listadas en vector, eliminalas
'Debug.Print cat.Tables(tbl.Name).Type, tbl.Name
cat.Tables.Delete tbl.Name
End If
End If
Next
Set cat.ActiveConnection = Nothing
Set cat = Nothing
For i = 0 To UBound(vector)
mdbHasta.Execute "DELETE * FROM " & vector(i), cuantos
Select Case vector(i)
Case "Clientes"
camposstr = "Codigo,Descripcion,Email,Saldo,Debitos,Creditos,anticipos"
campos = Split(camposstr, ",")
Case "Clientes_producto"
camposstr = "CodProd,CodCli,NumeroD,PrecioP,Cantidad,FechaE"
campos = Split(camposstr, ",")
Case "Ventas_Diarias"
camposstr = "Numero,IdCliente,Descripcion,TotalGeneral,TotalCancelado,Emision,Hora,TotalLetra," _
& "Efectivo,Anticipo,TipoDoc"
campos = Split(camposstr, ",")
Case "Factura"
camposstr = "Numero,IdCliente,Descripcion,TotalCancelado,Emision,Hora,TotalLetra,Anticipo"
campos = Split(camposstr, ",")
Case "Factura_Detalle"
camposstr = "Numero,Descripcion1,Precio,Cantidad,IdProducto"
campos = Split(camposstr, ",")
End Select
rstHasta.Open "SELECT " & camposstr & " FROM " & vector(i), mdbHasta, 2, 2
rstDesde.Open "SELECT " & camposstr & " FROM " & vector(i), mdbDesde, 1, 4
If Not rstDesde.EOF Then
Do Until rstDesde.EOF
With rstHasta
.AddNew
For j = 0 To UBound(campos)
rstHasta(campos(j)) = rstDesde(campos(j))
Next j
.Update
End With
rstDesde.MoveNext
Loop
End If
rstDesde.Close
rstHasta.Close
Next i
Set rstDesde = Nothing
Set rstHasta = Nothing
mdbDesde.Close
mdbHasta.Close
Set mdbDesde = Nothing
Set mdbHasta = Nothing
End Subrequiere de la libreria ado ext 2.8 for dll and security