如何从使用 DAO 的 Excel 工作表中提取信息

文章翻译 文章翻译
文章编号: 190195 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

Excel ISAM 驱动程序不会动态地转换数据类型。

更多信息

如果 Excel 电子表格包含文本和数字的中有一个列在 ISAM 将无法正确解释它应该是哪些数据类型。请确保在列中的所有单元格的格式是相同的数据类型。例如对于可能有以下四个列在一个 Excel 工作表中的数据:
   male   female children teens
   11     cc     78       ee
   22     xx     33       ff
   45     uu     56       oo
				

如果试图读取通过 ISAM 驱动程序对整个工作表数据您将获得空值的第一行。如果要避免出现这种,创建命名的区域: 一个包含标头信息和另一个包含数据信息。例如:
   named range 'myRange1' :
   male     female    children     teens

   named range 'myRange2' :
   11   cc   78   ee
   22   xx   33   ff
   45   uu   56   oo
				

现在可以连接到 Excel 和请求信息只能从特定的命名区域。但是,一个的范围内某个特定的列可以包含一种类型的数据。

如何创建一个范围

若要创建一个范围,请按照下列步骤操作:
  1. 突出显示该数据。
  2. 从菜单栏中单击 插入,然后单击 名称
  3. 单击 定义,然后单击 范围名称
注意:引用位置 框中将突出显示区域引用。 这应增长和收缩插入和删除数据时。

要检索您的数据,使用您选择的语句中表名您刚刚创建的区域名称。

Excel 步骤

  1. 创建具有在 sheet1 中的下列数据的 Excel 文件的 test.XLS,:
       excel File : test.xls with the following entries:
    
            male  female    children   teens
             11    cc       78           ee
             22    xx       33           ff
             45    uu       56           oo
    					
  2. 创建包含相应的数据在表中的命名的范围、 myRange1 和 myRange2,
          named range : myRange1
    
          male female children teens
    
          named range  : myRange2
    
          11     cc   78   ee
          22     xx   33   ff
          45     uu   56   oo
    
    					

Visual Basic 步骤

  1. 创建一个新的标准 EXE 项目称为"DAO_EXCEL。
  2. 项目 菜单中单击 引用,然后选择 Microsoft DAO 3.5 库 复选框。
  3. 将命令按钮放到窗体上。
  4. 将以下代码粘贴到窗体代码窗口中:
          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).
    
    					
下面的结果是按预期的方式:
  11
  cc
  78
  ee
  22
  xx
  33
  ff
  45
  uu
  56
  oo
				

参考

请参阅如何连接到 Excel 通过 DAO 的文档。 另一个很好的引用将 Excel 引用-> 即将到来的 ADO。

属性

文章编号: 190195 - 最后修改: 2005年3月2日 - 修订: 2.3
这篇文章中的信息适用于:
  • Microsoft Visual Basic 6.0 学习版
  • Microsoft Visual Basic 6.0 专业版
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 专业版
  • Microsoft Visual Basic 5.0 企业版
  • The DAO SDK
关键字:?
kbmt kbdatabase kbhowto kbiisam KB190195 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 190195
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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