Проблема SQL UNION ALL после использования UNION ALL более 10 раз - PullRequest
0 голосов
/ 05 марта 2010

У меня проблема с форматированием, если я использую более 10 операторов UNION ALL в своем коде VBA.

Если я использую 10 или меньше, все отлично работает.

Я пытаюсь объединить 12 листов (Excel 2007).

У меня есть числовой столбец с именем SC, который превращается в строку и дату, если у меня больше 10 UNION ALL. Если я попытаюсь использовать ROUND с более чем 10 UNION ALL, мой последний выбор изменит все записи на одну единицу.

Я использую Microsoft.ACE.OLEDB.12.0 в качестве моего провайдера, и моя строка соединения до сих пор работала для нескольких вещей в моем коде.

Есть ли ограничения для операторов UNION ALL при использовании OLEDB?

Вот мой код.

Dim StrOr As String
Dim i As Variant
Dim Cnt As ADODB.Connection
Dim Rs As ADODB.Recordset

For i = 1 To 12
    StrOr = StrOr & " " & "SELECT SC FROM [" & MonthName(i, True) & "$" & "] UNION ALL"
Next

StrOr = Left(StrOr, Len(StrOr) - 9) & ";"

Call GetADOCnt

Call ADORs

1 Ответ

0 голосов
/ 06 марта 2010

Если вы добавляете UNION из 12 рабочих листов, почему бы просто не использовать цикл для добавления каждого рабочего листа по одному? Очевидно, вам не нужно дедуплицировать (вы используете UNION ALL), поэтому кажется, что это было бы очевидным решением избежать любой проблемы, которая происходит с вашим набором записей UNION.

...