Excel 不会像关系数据库那样为 ADO 记录集提供有关其数据的详细架构信息。因此,驱动程序必须至少扫描几行现有数据,才能有根据地猜测各列的数据类型,因此可以在使用的过程当中感受到趣味性和吸引力。
ADO 记录集工作表中的行和列与数据库中的行和列非常相似。只要用户记住 Microsoft Excel 不是关系型数据库管理系统,并认识到这一事实所带来的限制,在许多情况下都可以利用 Excel 及其工具来存储和分析数据,Microsoft ActiveX Data Objects 让我们可以将 Excel 工作簿看做和数据库一样。ADO 记录集本文通过以下几节来讨论如何实现这一点:
本文中的测试是使用 Microsoft Data Access Components (MDAC) 2.5 在装有 Visual Basic 6.0 Service Pack 3 和 Excel 2000 的 Microsoft Windows 2000 上执行的。对用户在使用不同版本的 MDAC、Microsoft Windows、Visual Basic 或 Excel 时可能会观察到的不同现象,ADO 记录集本文可能未确认或讨论。#t#
ODBC 驱动程序的提供程序(本文为简便起见将其称为“ODBC 提供程序”)也只需要两条信息就可以连接到 Excel 数据源:驱动程序名,以及工作簿的路径和文件名。
重要说明:Excel 的 ODBC 连接默认为只读。ADO 记录集 LockType 属性设置不会覆盖此连接级别的设置。如果想编辑数据,则必须将连接字符串或 DSN 配置中的 ReadOnly 设置为 False。否则,将出现以下错误信息:
- Dim cn as ADODB.Connection
- Set cn = New ADODB.Connection
- With cn
- Provider = "MSDASQL"
- ConnectionString = "DSN=MyExcelDSN;"
- Open
- End With