使用UNION ALL 10次以上后出现SQL UNION ALL问题

时间:2010-03-05 17:22:52

标签: sql vba oledb ms-access-2007 excel-2007

如果我在VBA代码中使用10个以上的UNION ALL语句,我会遇到格式化问题。

如果我使用10或更少,一切都很好。

我要做的是组合12个工作表(Excel 2007)。

我有一个名为SC的数字列,如果我有超过10个UNION ALL,则会变成字符串和日期。如果我尝试使用超过10个UNION ALL的ROUND,我的最后一个选择将把所有记录改为一个单位。

我正在使用Microsoft.ACE.OLEDB.12.0作为我的提供程序,到目前为止,我的连接字符串已在我的代码中处理了几件事。

使用OLEDB时UNION ALL语句是否有限制?

这是我的代码。

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 :(得分:0)

如果您要附加12个工作表中的UNION,为什么不使用循环一次附加一个工作表?你显然不需要重复数据删除(你正在使用UNION ALL),所以这似乎是一个明显的解决方案,可以避免你的UNION记录集发生任何问题。