Excel VBA Recordset SQL - не указано значение для обязательных параметров - PullRequest
0 голосов
/ 09 июля 2019

Хотя название этого вопроса похоже на другие вопросы, которые задавались в прошлом, я не смог с помощью ограниченного поиска в Google или SE найти ответ, который помог мне с моей проблемой ниже.

Я пытаюсьзабрать данные из листа Excel для обработки.Обнаружив, что более сложный оператор SQL с объединением дал ошибку, я посмотрел глубже и обнаружил следующее:

Следующий оператор SQL работает нормально:

SELECT [DNSHEET$].[DNS] FROM [DNSHEET$]

Однако приведенный ниже оператор SQL этого не делает, и это дает ошибку, указанную в заголовке позже.

SELECT [DNSHEET$].[DNK] FROM [DNSHEET$]

Я использую приведенный ниже код для запуска любого оператора SQL - они сохраняются в sql1 которая определена как строка.

rs.execute(sql1), cn

Где rs - это набор записей, а cn соединение.

cn определяется как:Заголовки

Set cn = CreateObject("ADODB.Connection") With cn .provider="Microsoft.ACE.OLEDB.16.0" .ConnectionString="Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _ "Extended Properties=""Excel 12.0 Xml;HDR=YES"";" .open End with

DNS и DNK имеют правильные имена и соответствуют заголовкам на листе DNSHEET.

DNS заполняется строковыми данными,DNK содержит целые числа от 1 до примерно 25000.

Обновление : Эта проблема решена путем закрытия и повторного открытия книги Excel.Тогда оба SQL-запроса могли бы выполняться.

Следовательно, возникает другой вопрос: почему это происходит и как выяснить причину проблемы?

...