我在服务器上有一个SQL表,我已将其导入Excel电子表格,当我将此文件发送给也能访问该服务器的其他人时,他们能够看到数据但无法刷新数据。它给文件不可用错误。请告诉我如何让这些用户在方便的时候刷新数据。
第二部分是如果上述任何用户在Excel电子表格中进行了更改,我们可以动态更新SQL表吗? P.S有19个表,每个表有20列,所以OPENROW
对我来说不是一个可行的选择。任何帮助或指示都非常感谢。
答案 0 :(得分:2)
为excel使用savetodb插件
在excel中创建按钮以加载数据库并将更改保存到数据库
Dim addIn As COMAddIn
Dim addInObj As Object
Set addIn = Application.COMAddIns("SaveToDB")
Set addInObj = addIn.Object
addInObj.Save
我已多次使用它,适用于多人。需要注意的是,无论何时将这样的访问权限提供给数据库中的表,您都可以让人们能够将表和dbs放在一起。有一个很好的备用计划方便。
您(或数据库管理员)需要为将这些表更新到数据库的用户提供写访问权。
答案 1 :(得分:0)
如果您尝试基于Excel更新SQL Server中的记录,您将会感到失望。您想要的是使用MS Access创建ADP项目或MDB应用程序。见这里:Pros and Cons of Access Data Project (MS Access front end with SQL Server Backend)
答案 2 :(得分:0)
您可以为Excel编写一个插件/插件,用于侦听为单元格编辑开始/结束触发的事件。您需要跟踪用户所在的选项卡,他们编辑的单元格,然后通过插件应用程序将更新发送到SQL。
我无法再访问我执行此操作的源代码,但如果这是您想要追求并需要帮助入门的内容,请告诉我,我会找到一些关于单元格事件的详细信息。
目前,我所拥有的只是MSDN link for Office addins
<强>更新强>
我进行了快速搜索并找到了这些链接,以帮助您入门:
一旦你有了一个可以跟踪单元格编辑事件的插件,那么你只需要编写逻辑来找出电子表格中要更新的内容。
需要注意的一点是:每个将编辑此电子表格并更新数据库的用户都需要为此解决方案或任何解决方案安装插件才能正常工作。在我知道的情况下,Excel中没有直接执行此操作的方法。
答案 3 :(得分:0)
对于问题1:您的Excel电子表格是否有宏? (我会在评论中提问,但我的代表太低了)
如果是这样,您需要保存为类型&#34; Excel启用宏的工作簿&#34;包括你写的宏。