Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2010, 09:00
Cotenomore
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 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.