使用EXCEL VBA 写一段代码:建立与ACCESS数据库的连接,SELECT 子查询一个表中不重复的值,insert into到另一个表
时间: 2024-09-28 09:12:46 浏览: 4
在Excel VBA中,你可以使用ADODB(ActiveX Data Objects)来建立与Access数据库的连接,并通过ADORecordset对象执行SQL命令。这里是一个简单的示例代码片段,展示了如何读取Access子查询并插入到另一张表:
```vba
Sub ConnectAndInsert()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String
' 创建连接
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\YourDatabase.accdb;Persist Security Info=False;"
' 打开连接
conn.Open
' 构建子查询SQL(假设Table1中有需要唯一值的字段Column1)
SQL = "SELECT DISTINCT Column1 FROM Table1"
' 创建Recordset
Set rs = New ADODB.Recordset
rs.Open SQL, conn
' 如果子查询有结果,开始插入到Table2
If Not rs.EOF Then
Do Until rs.EOF
' 获取当前记录的值
Dim value As String
value = rs.Fields("Column1").Value
' 插入到Table2
SQL = "INSERT INTO Table2 (Column1) VALUES ('" & value & "')"
' 执行插入
conn.Execute SQL
' 移动到下一行
rs.MoveNext
Loop
End If
' 关闭Recordset和连接
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub