
26/01/2010, 09:00
|
| | Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 15 años, 2 meses Puntos: 0 | |
Definir rutas de archivos para exportar excel a access con DAO Tengo una duda con este codigo, existe la posibilidad de que el usuario atravez de un textbox ingrese los parametros para la exportacion de la tabla de excel a una tabla en access estos parametros son la ruta de el archivo de excel la del access , ademas de la tabla donde se alojaran los datos exportados y la cantidad de filas y columnas que deve recorrer en la tabla de excel.
este es el codigo:
Option Explicit
Private Function Excel_a_Access( _
Path_BD As String, _
Path_XLS As String, _
La_Tabla As String, _
Filas As Integer, _
Columnas As Integer) As Boolean
Dim Obj_Excel As Object
Dim Obj_Hoja As Object
Dim bd As Database
Dim rst As Recordset
'
Dim Fila_Actual As Integer
Dim Columna_Actual As Integer
Dim Dato As Variant
Set Obj_Excel = CreateObject("Excel.Application")
Obj_Excel.Workbooks.Open Filename:=Path_XLS
Set bd = OpenDatabase(Path_BD)
Set rst = bd.OpenRecordset(La_Tabla, dbOpenTable)
For Fila_Actual = 1 To Filas
' -- Agregar un nuevo registro
rst.AddNew
For Columna_Actual = 0 To Columnas - 1
Dato = Trim$(Obj_Hoja.Cells(Fila_Actual, Columna_Actual + 1))
rst(Columna_Actual).Value = Dato
Next
rst.Update
Next
Excel_a_Access = True
Call Descargar_Objetos(rst, bd, Obj_Excel, Obj_Hoja)
Exit Function
' -- Error
' --------------------------------------------------------------
ErrSub:
Call Descargar_Objetos(rst, bd, Obj_Excel, Obj_Hoja)
MsgBox Err.Description, vbCritical
End Function
Sub Descargar_Objetos( _
rst As Recordset, _
bd As Database, _
Obj_Excel As Object, _
Obj_Hoja As Object)
Set rst = Nothing
bd.Close
Set bd = Nothing
Obj_Excel.ActiveWorkbook.Close False
Obj_Excel.Quit
Set Obj_Hoja = Nothing
Set Obj_Excel = Nothing
End Sub
Private Sub CommandButton1_Click()
Dim ret As Boolean ' -- Parámetros:
' -- El nombre y path de la base de datos y del libro excel
' -- El nombre de la tabla
' -- La cantidad de filas y columnas de la hoja a leer
ret = Excel_a_Access("Ruta mdb", "Ruta xls", "La Tabla", Filas, Columnas)
If ret Then 'Ok
MsgBox " Datos copiados a Access ", vbInformation
End If
End Sub
Private Sub Form_Load()
Command1.Caption = " Excel a Access "
End Sub
De antemano gracias. |