【问题标题】:Initiate SQL insert by user from Excel用户从 Excel 启动 SQL 插入
【发布时间】:2014-04-24 06:54:40
【问题描述】:

不确定这个问题是否适用于 stackoverflow 或是否应该适用于超级用户,但我正在尝试创建一个允许用户对其销售数据进行评论/注释的 Excel 工作表。然后,我需要将所有笔记和 cmets 收集到一个 SQL 表中,然后输出到一个报告中,该报告将整合来自用户的所有笔记并为经理输出。

我正在努力的部分是如何将用户评论/注释从 excel 插入到 SQL 表中。本来想用SSIS做调度,但是因为用户可能经常在excel上工作,而且很多管理者都想有实时数据,所以不能用schedule方法。

唯一可行的方法是用户直接从 excel 启动 INSERT。

理想情况下,用户将在表中输入注释,然后单击宏按钮以启动 SQL INSERT/Update 查询。

这一切都可能吗?

我有 Office 2013 SP,SQL 是 SQL 2012 11.0.3381

【问题讨论】:

  • 创建一个在宏中运行插入的按钮。你有使用 VBA 的经验吗?您可以使用什么“键”来记录您的评论 - 即在给定的销售报告中,销售人员和一个月的总和可能是您用来发表独特评论的东西。现有的表是什么样的?您所要求的绝对是可能的,但在提出解决方案之前,我们需要更多信息。你用什么来编写你的最终报告?
  • 我几乎没有使用 VBA 的经验。至少没有一个是我从 0 开始不依赖记录而创建的。当前表包括月份、帐户名称、当前销售额和配额。我想我可以创建一个连接月份和帐户名称的列,我可以将其用作键。
  • 你不需要做任何连接,你只需要确定什么将唯一地标识一条评论。那么月份和帐户名称也会存在于 Excel 工作表中吗?接下来的问题是: 1. 您是否考虑过安全性——即阻止某人修改其他人的评论是否重要? 2、有没有连接数据库的方法?您是否有现有的 SQL Server 登录名/密码来连接?谁拥有这个数据库,他们可以协助解决这些技术问题吗?基本上,VBA 代码需要连接到数据库并根据工作表中的某些单元格运行语句。
  • 我在 Excel 表中有月份和帐户,销售应该逐月添加/更新销售数字的评论。我在服务器上有现有的 SQL,并且我已经设置了一个表,但我不确定如何直接从 Excel 启动 SQL INSERT 查询。
  • 要进行插入,您首先编写 VBA 代码以连接到数据库,然后编写 VBA 代码以执行 INSERT/UPDATE。您还需要考虑用户将需要查看工作表上的任何现有评论。第一步是获取一个有效的连接字符串。按照以下说明获取连接字符串:blogs.msdn.com/b/dhejo_vanissery/archive/2007/09/07/…

标签: sql-server excel sql-server-2012 excel-2013 vba


【解决方案1】:

这可能会有所帮助: Need a macro to detect if cell value changes from current value

不过,我有一个想法给你。怎么样...而不是将这些 cmets 放在 Excel 电子表格上,而是编写同一工作表的在线版本?然后,您将拥有 AJAX 来无缝触发所有这些报告的创建。 例如,https://plugins.jquery.com/tag/spreadsheet/

如果公司内部的文化冲击太大,你可以设置一个 windows 计划任务来运行一个解析电子表格并填充在线版本的小程序,然后它们将共存,你可以开始营销新方法的好处。

【讨论】:

  • 感谢您的想法。您所说的同一工作表的在线版本是什么意思? excel 发布在 SharePoint 上,供用户进入并进行更新。
  • 类似这样的:handsontable.com -- “这是一个新版本 0.10.3。它引入了更多插件挂钩(用于事件和回调)......”。然后,您将可以控制特定单元格的更改。
  • 嗯,我希望我可以利用这样的东西,但是当前的 excel 从 SQL 中提取销售数据,我没有网络编码知识来在网络界面中模仿它..
  • 老兄,合作!聘请开发人员与您合作(您甚至可以利用当前填充电子表格的机制,看看您是否可以在相同功能之上开发一些附加组件来检测更改并运行您想要的存储过程来生成报告。
【解决方案2】:

这可能不是一个可爱的解决方案,但您可以单击一个按钮来调用 exp/imp 向导并修改查询以更新 SQL Server 表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-17
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多