请问着么用VBA引用SQL某一列数据到EXCEL表单A列中
如题,请问着么用VBA引用SQL某一列数据到EXCEL表单A列中,代码着么编写?比方说A1单元格为型号,B1设置一个按键控件,点下控件能把数据库中某表单对应所有型号数据从...
如题,请问着么用VBA引用SQL某一列数据到EXCEL表单A列中,代码着么编写?比方说A1单元格为型号,B1设置一个按键控件,点下控件能把数据库中某表单对应所有型号数据从A2,A3,A4,A5.......全部导入进去?求高手给个代码
展开
1个回答
展开全部
Sub SQL_Excel()
On Error Resume Next '如果出现错误,忽略,然后执行下一行代码。
Application.ScreenUpdating = False '关闭屏幕刷新,成对出现,提高速度
Application.DisplayAlerts = False '关闭提示,,成对出现,避免出现提示框
'--------------------------------------- 参数声明部分 ------------------- ------------------- -------------------
Dim cnn, StrSQL$ '定义数据库连接和SQL语句
Set cnn = CreateObject("adodb.connection") '创建数据库连接
Set rs = CreateObject("adodb.recordset") '创建一个数据集保存数据
'--------------------------------------- 设置数据库连接 ------------------- ------------------- -------------------
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR = yes';Data Source=" & ThisWorkbook.Path & "\数据表.xlsx"
'--------------------------------------- 设置SQL语句 ------------------- ------------------- -------------------
SQL = "select 型号from [数据表_1$A1:G100]
'--------------------------------------- SQL结果处理 ------------------- ------------------- -------------------
Set rs = cnn.Execute(StrSQL) '将SQL语句获得的数据传递给数据集
Sheets("结果").Cells.ClearContents '清理保存数据的区域
Sheets("结果").Range("a2").CopyFromRecordset rs '将数据集粘贴到Excel中,左上角为A2,无列名。
cnn.Close '关闭数据库连接
Set cnn = Nothing '将CNN从内存中删除。
'--------------------------------------- ------------------------ ------------------- -------------------
Application.ScreenUpdating = True
Application.DisplayAlerts = True
On Error Resume Next '如果出现错误,忽略,然后执行下一行代码。
Application.ScreenUpdating = False '关闭屏幕刷新,成对出现,提高速度
Application.DisplayAlerts = False '关闭提示,,成对出现,避免出现提示框
'--------------------------------------- 参数声明部分 ------------------- ------------------- -------------------
Dim cnn, StrSQL$ '定义数据库连接和SQL语句
Set cnn = CreateObject("adodb.connection") '创建数据库连接
Set rs = CreateObject("adodb.recordset") '创建一个数据集保存数据
'--------------------------------------- 设置数据库连接 ------------------- ------------------- -------------------
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR = yes';Data Source=" & ThisWorkbook.Path & "\数据表.xlsx"
'--------------------------------------- 设置SQL语句 ------------------- ------------------- -------------------
SQL = "select 型号from [数据表_1$A1:G100]
'--------------------------------------- SQL结果处理 ------------------- ------------------- -------------------
Set rs = cnn.Execute(StrSQL) '将SQL语句获得的数据传递给数据集
Sheets("结果").Cells.ClearContents '清理保存数据的区域
Sheets("结果").Range("a2").CopyFromRecordset rs '将数据集粘贴到Excel中,左上角为A2,无列名。
cnn.Close '关闭数据库连接
Set cnn = Nothing '将CNN从内存中删除。
'--------------------------------------- ------------------------ ------------------- -------------------
Application.ScreenUpdating = True
Application.DisplayAlerts = True
追问
请问这是SQL数据库连接么?着么看像access的啊?还有如果我要多列同时引用呢?该如何设置呢?谢谢高手
追答
这个是 SQL的链接 把 Excel 作为数据库 如果要引用多列 在 select 后面 添加 字段
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询