VBA基础:Excel连接数据库查询实例

需积分: 48 11 下载量 71 浏览量 更新于2024-09-07 1 收藏 646B TXT 举报
在Excel VBA中,这个示例代码展示了如何通过Visual Basic for Applications (VBA) 连接到数据库并执行SQL查询,以创建一个基本的数据报告。这对于初学者来说是一份实用的入门教程。 首先,我们来看看这段代码的主要部分: 1. **事件触发器**: `Private Sub CommandButton1_Click()`:这是VBA中的一个事件处理程序,当用户点击名为"CommandButton1"的按钮时,这个过程会被触发。 2. **对象声明**: - `Dim cnn, res As Object`:这里声明了两个对象变量,`cnn` 用于数据库连接,`res` 用于存储查询结果。 3. **连接数据库**: - `Set cnn = CreateObject("adodb.connection")`:创建了一个ADO(ActiveX Data Objects)数据库连接对象,用于与数据库交互。 - `cnn.Open "dsn=û;uid=û;pwd='û';dsn=数据库名称;uid=用户名;pwd=密码"`:设置连接字符串,这里的"û"需要替换为实际的DSN(数据源名称)、用户名和密码。 4. **SQL查询**: - `sql = "SELECT * FROM 'SQL'"`:定义SQL查询语句,这是一条简单的全表选择(SELECT *),从指定的表中获取所有列。这里的"SQL"应该被替换为实际的表名。 - `res.Open sql, cnn`:执行SQL查询,并将结果集赋值给`res`对象。 5. **清空和填充数据**: - `Sheet1.Range("A3:Z56000").ClearContents`:清除Sheet1中的A3到Z56000区域内的内容,以便接收新的数据。 - `Range("A3").CopyFromRecordset data:=res`:将查询结果集的内容复制到A3单元格,填充整个区域。 6. **关闭连接和记录集**: - `res.Close`:释放查询结果集的资源。 - `cnn.Close`:关闭数据库连接。 这段代码演示了如何使用Excel VBA中的ADO对象模型连接到数据库,执行SQL查询并将结果动态填充到工作表中。这对于那些想要自动化数据分析或者需要在Excel中集成外部数据的新手来说,是一个很好的起点。在实际应用中,记得替换代码中的占位符,并确保数据库权限和连接安全。