Excel VBA连接SQL示例:空值处理与数据提取

版权申诉
5星 · 超过95%的资源 1 下载量 41 浏览量 更新于2024-07-05 1 收藏 282KB DOC 举报
本资源详细介绍了如何在Excel中使用VBA链接到SQL数据库进行数据操作,主要涉及两个示例:一个用于从Excel工作簿中的数据筛选并提取信息,另一个则是通过ADOConnection对象执行SQL查询来获取特定表格的数据。 首先,我们来看第一个示例,名为"Worksheet_Activate"的宏。这个宏在用户激活工作表时运行,其核心部分是利用VBA创建了一个名为"x"的ADOConnection对象。通过指定Microsoft Jet OLEDB 4.0驱动,连接到了包含Excel工作簿数据的源。宏中的SQL查询语句是: ```sql select f6, f2, f3, f4, f5, f7, f13, f24-f25 from [sheet1$] where f24-f25 < f17 and (f13 <> 'C3' or f13 is null) ``` 这段SQL语句的作用是筛选sheet1工作表中,f24减去f25的差小于f17的行,并且排除f13列中值为"C3"或为空的记录。查询结果被清空现有范围"A:H",并将查询结果复制到新表头中,方便数据呈现。 第二个示例是名为"Myquery"的公共子过程,它定义了一个名为$conn$的ADOConnection对象,用于连接到存储物料信息的数据库。该过程首先清除"sheet1"工作表的内容,然后设置连接字符串(连接到特定的Excel工作簿,并指明数据源),以及SQL查询语句: ```sql select 物料代码, 物料描述, 属性, 单位 from [物料代码表$] where 属性 = '采购' ``` 此SQL查询选取了"物料代码表$"中属性为"采购"的物料代码、描述、属性和单位信息。这些数据将被应用到"sheet1"的工作表上。 这个资源提供了在Excel中通过VBA连接SQL数据库并执行查询的实用技巧,适用于处理Excel工作簿内的数据筛选和外部数据的引用,便于数据分析和报表生成。无论是筛选条件的设置还是数据的呈现,都体现了VBA的强大功能和灵活性。