我有一个像这样的Excel电子表格:
在学生姓名,学生证和分类的位置,我想用SQL Server视图的结果填写。右侧的列(顶石,里程碑2,里程碑1,基准,学期等级,注释)将保持空白,直到教师稍后填写它们。这些列不会被写回数据库,而是将使用从数据库加载的数据保存到其Excel电子表格格式的前三列中。
问题1:有没有办法简单地"嵌入"来自视图的数据?
问题2:如果没有,您是否可以提供一个示例的链接,使用宏来读取记录并插入它们(每个新记录向下移动下行)?
TIA
答案 0 :(得分:1)
在Excel的“数据”标签上,您可以选择"来自其他来源"来自"获取外部数据的图标"用于从SQL Server视图中提取学生数据的组。
这将为您提供"嵌入式"数据,直到您决定刷新连接并从视图中检索更新的数据。
编辑:
对Range对象使用CopyFromRecordset方法。这是一个链接,提供了您正在尝试的内容的工作示例,而不会将范围推到一边。条目#3和#11提供了VBA示例。
答案 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功能。