• Jueves 2 de Mayo de 2024, 14:19

Autor Tema:  Exportar Los Datos De Access A Excell  (Leído 1194 veces)

Besstiia

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Exportar Los Datos De Access A Excell
« en: Viernes 5 de Marzo de 2004, 17:39 »
0
Hola a Todos!!.

  Tengo un código para poder exportar los datos de una base de datos access a excel, pero necesito poder fijar el formato de las celdas, ya que tengo datos de horas y fechas y al hacer el volcado no se muestran como tal, sino en forma de números que no tienen sentido. Al seleccionar la columna y modificar el formato de las celdas los datos se pueden leer correctamente, pero yo lo necesito hacer mediante código.

  Os muestro el código que tengo a ver si me podeis ayudar. :comp:

  Muchas Gracias a Todos


Código: Text
  1.  ''El modulo es:
  2.  
  3. Public objExcel As Excel.Application
  4.  
  5. Public Function Inicio_Excel() As Boolean
  6. '''Volcado Excel
  7. Dim I As Integer
  8. Dim J As Integer
  9.  
  10. Set objExcel = New Excel.Application
  11.  
  12. objExcel.Visible = True 'lo hacemos visible
  13. objExcel.SheetsInNewWorkbook = 1 'decimos cuantas hojas queremos en el nuevo documento
  14. objExcel.Workbooks.Add ' añadimos el objeto al workbook
  15.  
  16. End Function
  17.  
  18. Public Function Formato_Excel(Num_Campos As Integer, Nombre_Campos() As String) As Boolean
  19. ''Volcado Excel
  20. With objExcel.ActiveSheet
  21.        
  22.         'Formato de las celdas de los titulos
  23.         .Range(.Cells(3, 1), .Cells(3, Num_Campos)).Borders.LineStyle = xlContinuous
  24.         .Range(.Cells(3, 1), .Cells(3, 23)).Font.Bold = True
  25.        
  26.     For I = 1 To Num_Campos - 1 Step 1
  27.         .Cells(3, I) = Nombre_Campos(I)
  28.     Next I
  29.         'hasta aki pa colocar los titulos
  30.        
  31.         'a partir de aki ta claro que es pa darle el ancho a las celdas&#59;-)
  32.         .Columns("A").ColumnWidth = 20
  33.         .Columns("B").ColumnWidth = 20
  34.         .Columns("C").ColumnWidth = 8
  35.         .Columns("D").ColumnWidth = 15
  36.         .Columns("E").ColumnWidth = 15
  37.         .Columns("F").ColumnWidth = 15
  38.         .Columns("G").ColumnWidth = 18
  39.         .Columns("H").ColumnWidth = 10
  40.         .Columns("I").ColumnWidth = 30
  41.         .Columns("J").ColumnWidth = 10
  42.         .Columns("K").ColumnWidth = 18
  43.         .Columns("L").ColumnWidth = 18
  44.         .Columns("M").ColumnWidth = 15
  45.         .Columns("N").ColumnWidth = 15
  46.         .Columns("O").ColumnWidth = 15
  47.         .Columns("P").ColumnWidth = 15
  48.         .Columns("Q").ColumnWidth = 20
  49.         .Columns("R").ColumnWidth = 15
  50.         .Columns("S").ColumnWidth = 15
  51.         .Columns("T").ColumnWidth = 15
  52.         .Columns("U").ColumnWidth = 15
  53.         .Columns("V").ColumnWidth = 15
  54.         .Columns("W").ColumnWidth = 15
  55.  
  56. End With
  57. End Function
  58.  
  59. '''en el formulario:
  60.  
  61. Private Sub VolcadoExcel_Click()
  62. Data2.DatabaseName = App.Path & "\Tarjetas.mdb"
  63.     Data2.RecordSource = "Temporal"
  64.     Data2.Refresh
  65.  
  66.            
  67.     Dim Heading(23) As String 'aki vamos a guardar los nombres de los campos que despues pasamos a la funcion
  68.     Heading(1) = "Tarjeta1"
  69.     Heading(2) = "Tarjeta2"
  70.     Heading(3) = "Empresa"
  71.     Heading(4) = "Nombre"
  72.     Heading(5) = "Apellido1"
  73.     Heading(6) = "Apellido2"
  74.     Heading(7) = "Fecha Nacimiento"
  75.     Heading(8) = "DNI"
  76.     Heading(9) = "Dirección"
  77.     Heading(10) = "Foto"
  78.     Heading(11) = "Teléfono Personal"
  79.     Heading(12) = "Teléfono Empresa"
  80.     Heading(13) = "Hora Entrada"
  81.     Heading(14) = "Hora Salida"
  82.     Heading(15) = "Fecha Entrada"
  83.     Heading(16) = "Fecha Salida"
  84.     Heading(17) = "Comentario"
  85.     Heading(18) = "PendienteSalida"
  86.     Heading(19) = "Ficha Cubierta"
  87.     Heading(20) = "Peso Entrada"
  88.     Heading(21) = "Peso Salida"
  89.     Heading(22) = "Diferencia de Pesadas"
  90.            
  91.    
  92.     Call Inicio_Excel 'Llamamos a la funcion que abre el workbook en excel
  93.     Call Formato_Excel(23, Heading()) 'llamamos a la funcion que da el formato al nuevo workbook
  94.    
  95. V = 5
  96. H = 1
  97.  
  98.      Do While Not Data2.Recordset.EOF 'esto nos sirve pa leer los datos desde
  99.  'la tabla de access para déspues colocarlos en las celdas correspondientes
  100.        With Data2.Recordset
  101.             objExcel.ActiveSheet.Cells(V, H) = .Fields!Tarjeta1
  102.             objExcel.ActiveSheet.Cells(V, H + 1) = .Fields!Tarjeta2
  103.             objExcel.ActiveSheet.Cells(V, H + 2) = .Fields!Empresa
  104.             objExcel.ActiveSheet.Cells(V, H + 3) = .Fields!Nombre
  105.             objExcel.ActiveSheet.Cells(V, H + 4) = .Fields!Apellido1
  106.             objExcel.ActiveSheet.Cells(V, H + 5) = .Fields!Apellido2
  107.             objExcel.ActiveSheet.Cells(V, H + 6) = .Fields![Fecha de Nacimiento]
  108.             objExcel.ActiveSheet.Cells(V, H + 7) = .Fields!DNI
  109.             objExcel.ActiveSheet.Cells(V, H + 8) = .Fields!Dirección
  110.             objExcel.ActiveSheet.Cells(V, H + 9) = .Fields!Foto
  111.             objExcel.ActiveSheet.Cells(V, H + 10) = .Fields![Teléfono Personal]
  112.             objExcel.ActiveSheet.Cells(V, H + 11) = .Fields![Teléfono Empresa]
  113.             objExcel.ActiveSheet.Cells(V, H + 12) = .Fields![Hora Entrada]
  114.             objExcel.ActiveSheet.Cells(V, H + 13) = .Fields![Hora Salida]
  115.             objExcel.ActiveSheet.Cells(V, H + 14) = .Fields![Fecha Entrada]
  116.             objExcel.ActiveSheet.Cells(V, H + 15) = .Fields![Fecha Salida]
  117.             objExcel.ActiveSheet.Cells(V, H + 16) = .Fields!Comentarios
  118.             objExcel.ActiveSheet.Cells(V, H + 17) = .Fields![PendienteSalida]
  119.             objExcel.ActiveSheet.Cells(V, H + 18) = .Fields![FichaCubierta]
  120.             objExcel.ActiveSheet.Cells(V, H + 19) = .Fields![Peso Entrada]
  121.             objExcel.ActiveSheet.Cells(V, H + 20) = .Fields![Peso Salida]
  122.             objExcel.ActiveSheet.Cells(V, H + 21) = .Fields![Diferencia de Pesadas]
  123.                  
  124.            
  125.             V = V + 1
  126.             .MoveNext
  127.         End With
  128.  Loop
  129.  Set objExcel = Nothing 'una vez hemos terminado descargamos el objeto
  130. End Sub
  131.  
  132.  

roxiii

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Exportar Los Datos De Access A Excell
« Respuesta #1 en: Lunes 8 de Marzo de 2004, 23:13 »
0
Hola, porque no utilizas una plantilla de Excel, ya formateada a tu necesidad y la abres en vez de crear un nuevo libro...