Sql server 使用Excel vba从SQL Server获取数据,并修改其中一些数据,然后更新表

Sql server 使用Excel vba从SQL Server获取数据,并修改其中一些数据,然后更新表,sql-server,excel,vba,Sql Server,Excel,Vba,我有一个SQL Server表,其中有一些行(最大6000行)。使用Excel vba,我可以创建查询,结果可以显示在工作表中 接下来,我可以更改工作表中的一些记录 毕竟,我可以从原始工作表中复制一个单元格,在某些单元格更改后,我比较所有单元格,并且我可以在SQL Server数据库中仅更新不同的单元格 我的问题是有没有更简单的方法 也许在我离开一个单元格后,vba会比较前后内容,并在需要时进行更新 谢谢你的意见 如果单元格发生更改,则应使用此VBA事件捕获: 如果您不想在上面花费太多时间,我

我有一个SQL Server表,其中有一些行(最大6000行)。使用Excel vba,我可以创建查询,结果可以显示在工作表中

接下来,我可以更改工作表中的一些记录

毕竟,我可以从原始工作表中复制一个单元格,在某些单元格更改后,我比较所有单元格,并且我可以在SQL Server数据库中仅更新不同的单元格

我的问题是有没有更简单的方法

也许在我离开一个单元格后,vba会比较前后内容,并在需要时进行更新


谢谢你的意见

如果单元格发生更改,则应使用此VBA事件捕获:

如果您不想在上面花费太多时间,我已经创建了一个Excel加载项,用于将数据从Excel更新到SQL Server。这是一个商业产品,但如果是一次性工作,则有一个功能齐全的14天试用版,您可以从

当然-听起来很合理。你试过这两种方法吗?就在我的脑子里:)(像往常一样)对于6000行,只要每行都有一个唯一的键,就可以更容易地重新查询每行并检查更新,然后根据需要更新数据库。我如何检查更新?逐行比较,如果它们不同,则进行更新?这是比较两个sql行的命令吗?这取决于具体情况:是否有主键?有多少列?有审计专栏吗?更新是否需要“实时”(一旦进行更改),或者是否可以成批进行(更新完成后按按钮),是否有超过1人同时编辑记录?这个方法不是太慢吗?在每个单元格中检查更改事件,如果更改,是否运行SQL更新?(当然,仅针对该值或行的最大值)。这样,即使我只是在单元格中,SQL更新也会运行,而不仅仅是在单元格值发生变化时。如果您只从一行获取数据,并使用索引对表进行更新,那么更新速度很快,这可能是动态的,但它会增加一个用户可以注意到的小延迟。另一种选择是在每次单元格更改时将更改存储在数组中,然后添加一个按钮,用户可以在该按钮中批量将所有更新推送到数据库。