2015-07-22 1 views
0

Рассмотрим простую таблицу Excel, связанной с таблицей SQL Server,:базы данных на основе таблицы с добавленных вручную столбцов - сохранение значений позиций

 
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

Вы можете использовать предложение ORDER BY в своем операторе SQL, но даже это не очень надежно. Единственный надежный способ сделать это - сохранить ваши дополнительные данные в своей собственной таблице и использовать формулу, чтобы связать ее с данными SQL.

На отдельном листе, положить

ID my_column 
0  some_data_for_0 
1  some_data_for_1 
2  some_data_for_2 

Теперь в колонке, примыкающей к данным SQL, положить

=IFERROR(VLOOKUP([@ID],tblAddtlInfo,2,FALSE),"") 

Однако данные SQL сортируется, дополнительная информация будет в праве ряд. Предполагается, что вы сделали свой дополнительный информационный список в таблицу и назвали его tblAddtlInfo.

Если вы хотите получить фантазию, вы можете написать код в событии «Изменить», которое ищет ненулевые выражения в дополнительном столбце. Если формула перечеркнута, запишите новые данные, добавьте ее (или обновите) свою дополнительную информационную таблицу и восстановите формулу. Затем вы можете ввести данные в строку, но сохранить целостность, переместив ее в другую таблицу.

Смежные вопросы