Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo extraer información de una hoja de Excel con DAO

Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Resumen
El controlador ISAM de Excel no convierte dinámicamente los tipos de datos.
Más información
Si hay una columna en una hoja de cálculo de Excel que contiene texto y números, ISAM no podrá interpretar correctamente de qué tipo de datos debería ser. Asegúrese de que el formato de todas las celdas de una columna es del mismo tipo de datos. Por ejemplo, podría tener los datos siguientes en cuatro columnas de una hoja de cálculo de Excel:
   hombres mujeres niños adolescentes   11     cc     78       ee   22     xx     33       ff   45     uu     56       oo				

Si intenta leer los datos con el controlador ISAM en la hoja entera, obtendrá valores Null para primera fila. Si desea evitar esto, cree rangos con nombre: uno que sólo contenga la información de encabezado y otro que contenga la información de los datos. Por ejemplo:
   rango con nombre 'miRango1':   hombres mujeres niños adolescentes   rango con nombre 'miRango2':   11   cc   78   ee   22   xx   33   ff   45   uu   56   oo				

Ahora puede conectarse a Excel y solicitar información sólo del rango con nombre determinado. Sin embargo, en un rango, una columna en particular puede contener sólo un tipo de datos.

Cómo crear un rango

Seguir estos pasos en orden para crear un rango:
  1. Resalte los datos.
  2. En la barra de menús, haga clic en Insertar y, a continuación, haga clic en Nombre.
  3. Haga clic en Definir y, a continuación, haga clic en Nombre de rango.
Nota: el cuadro Se refiere a hará referencia al intervalo resaltado. Debería aumentar y reducirse a medida que los datos se insertan y eliminan.

Para recuperar los datos, utilice el nombre de rango recién creado para el nombre de tabla en la instrucción select.

Pasos en Excel

  1. Cree el archivo de Excel test.XLS con los datos siguientes en sheet1:
       Archivo de Excel: test.xls con las entradas siguientes:        hombres mujeres niños adolescentes         11    cc       78           ee         22    xx       33           ff         45    uu       56           oo					
  2. Cree los rangos con nombre, miRango1 y miRango2, en la hoja que contiene los datos adecuados.
          rango con nombre: miRango1      hombres mujeres niños adolescentes      rango con nombre: miRango2      11     cc   78   ee      22     xx   33   ff      45     uu   56   oo					

Pasos en Visual Basic

  1. Cree un nuevo proyecto EXE estándar denominado "DAO_EXCEL".
  2. En el menú Proyecto, haga clic en Referencias y, a continuación, active la casilla Microsoft DAO 3.5 Library.
  3. Coloque un control CommandButton en el formulario.
  4. Pegue el código siguiente en la ventana de código del formulario:
          private Sub Command_click1      im dbtmp As DAO.Database      im tblObj As DAO.TableDef      im rs As DAO.Recordset      et dbtmp = OpenDatabase_           ("<complete path>\test.xls", False, True, "Excel 8.0;")      DoEvents      Set rs = dbtmp.OpenRecordset("select * from `myRange2`")      While Not rs.EOF          For x = 0 To rs.Fields.Count - 1              Debug.Print rs.Fields(x).Value          Next          rs.MoveNext      Wend      End Sub      Note the reverse apostrophe "`" while specifying the range      name(myrange2).					
Los resultados siguientes son los que se esperaban:
  11  cc  78  ee  22  xx  33  ff  45  uu  56  oo				
Referencias
Consulte la documentación para saber cómo conectarse a Excel a través de DAO. Otra buena referencia será la próxima de Excel sobre ADO.
Propiedades

Id. de artículo: 190195 - Última revisión: 12/05/2015 09:01:34 - Revisión: 2.2

  • Microsoft Visual Basic 6.0 Edición de aprendizaje
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 6.0 Edición empresarial
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • The DAO SDK
  • kbnosurvey kbarchive kbhowto kbiisam kbdatabase KB190195
Comentarios