【发布时间】:2015-03-09 15:52:21
【问题描述】:
我的技能水平:VBA 的基本用户,对 SQL 几乎一无所知(尽管我最近学会了如何执行代码等)。
我在 Excel 工作表中创建了一个用户界面,以允许用户输入报告变量(日期等)。这些传递到第二个 Excel 工作表,通过使用各种 Excel 语句,创建必要的 SQL 代码。然后,我的宏复制此工作表并通过 shell 命令打开 Microsoft SQL Server 2008 Rx。目前,我在生成的 Microsoft SQL Server 2008 R2 连接到服务器窗口上手动单击“连接”(不需要密码,只需要我单击“连接”),我创建一个新查询,我粘贴代码,然后在 SQL 中执行。因此,我试图通过 VBA 自动执行这些后面的步骤(打开 SQL,单击“连接”,复制/粘贴代码,执行)。
为了提供更多上下文,一旦 SQL 代码运行,我就有第二个宏,它使用 Excel 数据连接向导将生成的 SQL 数据带回我的工作表中。这很好用。
我已经在各种板上研究了几天。似乎没有人注意到我在 Excel 中创建代码的方法(可能是因为它是一种不雅的方法)。或者帖子的回复超出了我的理解水平。但我确实担心我在问一个之前已经回答过的问题(提前道歉)。
感谢您提供的任何建议/时间。
我正在使用: Excel/Office 2010 Microsoft SQL Server2008 R2(这与 Microsoft SQL Server Management Studios 相同吗?我的 SQL 应用程序显示两个名称) Microsoft ActiveX 数据对象 6.1 库(目前未选中。我看到的一篇文章提到了对此的需求。我也有多个以前的 AciveX 库版本可用。)
【问题讨论】:
-
您可以连接到 SQL 并从 VBA 执行查询。无需打开 Mangement Studio。
-
感谢大家的意见。 Paqogomez:我使用 Excel 的意图是 A) 允许最终用户输入界面(我的最终用户不精通 SQL,并且无法可靠地通过更改参数来更新 SQL 代码)和 B) 以允许结束数据导入 Excel 后用户报表自定义。 SQL Server 是否有解决这些问题的方法?
-
Vojtech Dohnal:谢谢。你能给我一些关于如何做到这一点的见解吗?
-
如果您的 SQL 代码很复杂,那么您应该考虑使用 SQL 存储过程或表值函数等,然后从您的 VBA 中调用它。您也可以将其作为字符串文字粘贴到 VBA 中。我看不出从文本文件中读取它有什么好处,技术上可行但过于复杂。
-
如果您需要您的消息出现在某人的 SO 收件箱中,您应该这样写:@Kal10