将SQL Server结果插入Excel

时间:2014-10-15 20:38:53

标签: excel

我有一个像这样的Excel电子表格: Sample

在学生姓名,学生证和分类的位置,我想用SQL Server视图的结果填写。右侧的列(顶石,里程碑2,里程碑1,基准,学期等级,注释)将保持空白,直到教师稍后填写它们。这些列不会被写回数据库,而是将使用从数据库加载的数据保存到其Excel电子表格格式的前三列中。

问题1:有没有办法简单地"嵌入"来自视图的数据?

问题2:如果没有,您是否可以提供一个示例的链接,使用宏来读取记录并插入它们(每个新记录向下移动下行)?

TIA

3 个答案:

答案 0 :(得分:1)

在Excel的“数据”标签上,您可以选择"来自其他来源"来自"获取外部数据的图标"用于从SQL Server视图中提取学生数据的组。

这将为您提供"嵌入式"数据,直到您决定刷新连接并从视图中检索更新的数据。

编辑:

对Range对象使用CopyFromRecordset方法。这是一个链接,提供了您正在尝试的内容的工作示例,而不会将范围推到一边。条目#3和#11提供了VBA示例。

http://www.xtremevbtalk.com/showthread.php?t=217783

答案 1 :(得分:0)

您需要使用VBA创建ADO连接,记录集,命令和参数。

Dim adostudent as ADODB. (...) ^ use the above

然后,将命名范围分配给您要删除信息的区域

StudentRow

然后,使用Do Until和迭代器并执行until.eof和.movenext将记录集中的值放入范围。

irow = 10 'insert the header row # + 1here
Do Until adostudent.EOF = True
with adostudent
StudentRow(irow,1).value =.Fields("Student Name").value
...
...

.movenext
irow = irow + 1
loop

答案 2 :(得分:-1)

您可以使用数据 - >获取外部数据 - >来自其他来源 - >来自Excel中的SQL功能。

或者使用我的加载项: http://blog.tkacprow.pl/excel-sql-add-in-free/