我的技能水平:VBA的基本用户,对SQL几乎一无所知(尽管我最近学会了如何执行代码等)。
我在Excel工作表中创建了一个用户界面,允许用户输入报表变量(日期等)。这些传递到第二个Excel工作表,通过使用各种Excel语句,创建必要的SQL代码。我的宏然后复制此工作表并通过shell命令打开Microsoft SQL Server 2008 Rx。目前,我然后在生成的Microsoft SQL Server 2008 R2连接到服务器窗口上手动单击“连接”(这不需要密码,只需要我点击“连接”),我创建一个新查询,我粘贴代码然后在SQL中执行。所以这些后面的步骤(打开SQL,单击“连接”,复制/粘贴代码,执行)我试图通过VBA自动化。
为了提供更多上下文,一旦SQL代码运行,我就有了第二个宏,它使用Excel数据连接向导将生成的SQL数据带回我的工作表。这很有效。
我在各种电路板上研究了好几天。似乎没有人观察我在Excel中创建代码的方法(可能因为它是一种不优雅的方法)。或者帖子回复超出我的技能水平来理解。但我确实害怕我问的是之前已经回答过的问题(提前道歉)。
感谢您提供的任何建议/时间。
我正在使用: Excel / Office 2010 Microsoft SQL Server2008 R2(这与Microsoft SQL Server Management Studios相同吗?我的SQL应用程序显示两个名称) Microsoft ActiveX数据对象6.1库(目前尚未检查。我看到的一篇文章引用了对此的需求。我也有多个以前的AciveX库版本。)
答案 0 :(得分:2)
你所做的非常巧妙,但可能没有必要。 Excel具有许多用于导入外部数据的功能。
我会查看Excel中的Data
标签和功能区的From Other Sources
部分。您至少有三个选项:From SQL Server
,From Data Connection Wizard
和From Microsoft Query
选项。
所有这些都将建立与数据库服务器的连接并对其执行SQL。他们以不同的方式将数据返回到您的电子表格。
VBA将再次发挥作用的是自动化将执行的查询的生成和参数化。
但是我会设置一些有效的东西,首先是参数值的常量,这样你就可以了解可能性,然后阅读和研究用VBA动态设置你的SQL。
顺便说一下,您也可以调查PowerPivot
。