Изменение «.CommandText» не добавляет новые столбцы

Я довольно неопытен слиянием SQL в VBA, но для моего следующего трюка я хотел расположить столбцы в таблице по своему вкусу.

Sub ExecuteQuery1() Dim SQLstr As String SQLstr = "select [Id], [Serviceman], [Status], [StatusTXT], [Inner_status], [Departure] , [EntryDate] " & Chr(10) & _ "from [AW_HD_S] order by [Id]" ActiveWorkbook.Connections("HelpDesk Online").OLEDBConnection.CommandText = SQLstr ActiveWorkbook.Connections("HelpDesk Online").Refresh End Sub 

Примечание: инструкция «где» не требуется, поскольку таблица предназначена специально для нашей группы

Таблица состоит из ~ 50 столбцов, и я, очевидно, не нуждаюсь во всех них.

Цель: иметь одно SQL-соединение в рабочей таблице с именем «НЕ СДЕЛАЙТЕ СКАЗАТЬ ЭТО», а по командам / пользовательским формам в других листах можно собирать различные сводки данных.

Теперь, манипулируя переменной SQLstr, я могу загрузить нужные мне данные, мне не нужны все эти данные. Скажем, 7 или 8 столбцов.

Первая (второстепенная) проблема:
Excel, похоже, игнорирует порядок столбцов в моей инструкции SELECT. Вместо приведенного выше порядка он показывает нужные столбцы, но не в том порядке, который я хочу, но вместо этого в порядке, который они появляются в таблице, когда я использую SELECT *, я мог бы справиться с этим, но если есть способ исправить это было бы гораздо более интуитивно, чтобы заставить порядок столбцов я хочу.

Вторая (основная) проблема:
Похоже, я не могу добавить больше строк с изменением .CommandText и обновлением. Например:
1. SELECT * возвращает 50-то столбцы
2. Я меняю * на, например, шесть столбцов
3. Таблица в Excel показывает шесть столбцов в своем собственном порядке
4. Я меняю CommandText на 15 столбцов или на *
5. В таблице показаны только шесть столбцов.

Теперь это действительно хлопотно, потому что я хотел бы использовать одно и то же соединение для выполнения различных команд SQL и получения различных количеств столбцов.

Что я должен использовать вместо того, чтобы изменять CommandText и обновлять соединение для достижения этого, или как убедить Excel показать количество столбцов, которые я хочу?

Попробуйте щелкнуть правой кнопкой мыши по таблице, выбрав «Таблица», а затем «Свойства внешних данных». Затем снимите флажок «Сохранять сортировку столбца / фильтр / макет»:

введите описание изображения здесь

  • Сообщение об ошибке VBA sheet1 $
  • Автоматизация 31 шаблонов или 1 шаблон
  • Импорт данных из Excel Мастер автоматически определяет типы данных
  • Как написать вложенную формулу Excel для SQL
  • Powershell - выводит три оператора выбора на три листа EXCEL
  • Максимальное значение SUM «N» в запросе excel sql
  • ADODB Excel / Access SQL Вставить округление десятичных знаков: любая идея, почему и как исправить?
  • Вставить значение ячейки Excel в качестве параметра запроса SQL в макрос
  • захватывать и фильтровать из более чем 255 столбцов из огромной закрытой книги
  • Обнаружение дублирования времени в листе Excel
  • Функция Excel или скрипт VBA для объединения диапазонов
  • Давайте будем гением компьютера.