Я пытаюсь получить данные с сервера SQL для использования в некоторых макросах Excel 2003. Я хотел бы избежать использования QueryTables, так как я не хочу этот промежуточный этап написания и чтения с реальных листов. Это кажется трудоемким и бессмысленным.
Мне удалось получить набор записей, но он содержит пустые данные с типом данных "memo" на сервере.
Далее происходит сбой программы, когда она пытается сохранить данные в Range. Похоже, он попадает в первое «пустое» поле, а затем выдает код ошибки 1004.
Очевидно, что мемо-поле вызывает у меня горе. Кто-нибудь может подсказать, как обойти это, или что я должен делать по-другому?
objMyConn.connectionString = "ODBC;" _
& "Provider=SQLOLEDB;DRIVER={SQL Server};SERVER=VANDB;" _
& "APP=Microsoft Office 2003;DATABASE=WPDB_BE;Trusted_Connection=Yes;"
objMyConn.Open
Я искал в Интернете целую вечность, но эти вещи Access / ADO / Excel чрезвычайно болезненны. Пожалуйста, помогите.
Редактировать 1: позже я изменил запрос SQL на «TOP 1» (версия SQL «LIMIT 1») и обнаружил, что с этим набором записей мемо-поля были возвращены правильно. Точно так же я мог бы выбрать одно проблемное поле и получить больше строк, например, "ВЫБЕРИТЕ ТОП 52 bad_field ОТ ..."
Так что я подозреваю, что проблема в каком-то пределе размера данных соединения ADO? Кажется, что тип Access "memo" просто похож на тип MySQL "MEDIUMTEXT", так как бы мне обойти такой предел? Тогда это отдельный вопрос, но какие есть альтернативы соединениям ADO?