基于数据库的表,手动添加列 - 维护值位置

时间:2015-07-22 13:21:08

标签: sql-server excel

让我们考虑与SQL Server表关联的简单Excel表:

ID    some_data
0     a
1     b
2     c

我想用手动添加的列(SQL Server表中没有)扩展它:

ID    some_data   my_column
0     a           some_data_for_0
1     b           some_data_for_1
2     c           some_data_for_2

但是,当更改源数据(插入/删除/更新行)时,不会保留my_column和ID列之间的关系。例如,当添加新行(3,d)时:

ID    some_data   my_column
0     a           some_data_for_0
1     b           some_data_for_1
2     c           
3     d           some_data_for_2

是否有任何Excel内置解决方案可以指定my_column行应如何与ID列相关联,或者我是否需要自己使用VBA实现它?

1 个答案:

答案 0 :(得分:1)

您可以在SQL语句中使用ORDER BY子句,但即使这样也不太可靠。唯一可行的方法是将附加数据存储在自己的表中,并使用公式将其与SQL数据相关联。

在单独的工作表上,输入

'X'

现在在与SQL数据相邻的列中,输入

'X'

但是,SQL数据已排序,其他信息将位于右侧。这假设您将附加信息列表放入表中并将其命名为tblAddtlInfo。

如果您想获得幻想,可以在Change事件中编写一些代码,以在额外列中查找非公式。如果公式被覆盖,则获取新数据,将其添加到(或更新)其他信息表,然后恢复公式。然后,您可以在行中键入数据,但通过将其移动到其他表来保持完整性。