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

Seleccione idioma Seleccione idioma
Id. de artículo: 190195 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

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: jueves, 27 de diciembre de 2007 - Versión: 2.2
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbhowto kbiisam kbdatabase KB190195

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com