Как мне получить этот оператор SQL для записи в пустой лист Excel для строк после первого? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь отправить некоторые данные, хранящиеся в виде локальных переменных в инструменте автоматизации, на лист Excel с помощью OleDB 12. До сих пор мой код (ниже) - это то, что я придумал, и которое работает для успешной записи данных до первой строки шаблонного листа Excel (заголовки уже заполнены). Моя проблема в том, что каждая последующая итерация не записывает данные ни в одну строку после первой успешной операции (индекс 2).

Я пытался изменить предложение where для работы с индексом строки, а не для поиска пустых строк, но это было неудачно и вернуло ошибки. Я также пытался использовать оператор INSERT INTO, который также возвращал сбивающие с толку ошибки во время выполнения при каждом написании оператора. Разве вы не можете использовать INSERT с Oledb?

Оператор обновления (полууспешный):

UPDATE [Sheet1$] 
SET [SAP_ID] = %SapEmployeeNumber%
WHERE [SAP_ID] IS NULL;

Вставить заявление (не приступил к работе):

INSERT INTO Sheet1$ (SAP_ID)
VALUES %SapEmployeeNumber%
WHERE [SAP_ID] IS NULL

Ожидается, что данные будут записаны в первую пустую строку (другими словами, номер сотрудника пуст).

1 Ответ

1 голос
/ 02 мая 2019

Прежде всего: оператор INSERT НИКОГДА не имеет предложения WHERE - проверьте официальные документы MS по INSERT.

Во-вторых: вам нужно поместить значения в секции VALUES в скобки, например:

INSERT INTO Sheet1$ (SAP_ID)
VALUES (%SapEmployeeNumber%)
...