Excel SQL查询中的字符太多

Excel SQL查询中的字符太多,sql,excel,vba,Sql,Excel,Vba,我正试图通过excelsql查询找到票证编号的所有名称。问题是我有超过10000个数字,而SQL不允许您键入那么多字符。我怎样才能做到这一点 SELECT OZATI_Ticket.Name, OZATI_Ticlet.Number FROM OZATI_Ticket WHERE (OZATI_Ticket.Number='1234' Or OZATI_Ticket.Number='4321' Or OZATI_

我正试图通过excelsql查询找到
票证
编号的所有
名称
。问题是我有超过10000个数字,而SQL不允许您键入那么多字符。我怎样才能做到这一点

    SELECT 
    OZATI_Ticket.Name, 
    OZATI_Ticlet.Number
    FROM 
    OZATI_Ticket
    WHERE 
    (OZATI_Ticket.Number='1234' Or 
    OZATI_Ticket.Number='4321' Or 
    OZATI_Ticket.Number='6662' Or
/*next 9997 ticket numbers*/)
    ORDER BY 
    OZATI_Ticket.Name

如果您需要输入那么多信息,最好是创建一个表,列出您想要的所有票证。如果不可能,你可以这样做:

WHERE OZATI_Ticket.Number IN = ('1234','4321','6662')
我希望你能用这种方式给你足够的角色。有一种方法可以获取ID列表

Dim currentRow As Integer
Dim str As String
currentRow = 1
Do While (sheets("data").Range("A" & currentRow).Value <> "")
    str = str & ",'" & sheets("data").Range("A" & currentRow).Value & "'"
    currentRow = currentRow + 1
Loop
str = Mid(str, 2)
Dim currentRow作为整数
作为字符串的Dim str
currentRow=1
Do While(工作表(“数据”).Range(“A”)和currentRow.Value“”)
str=str&“,”&工作表(“数据”)。范围(“A”&当前行)。值&“
currentRow=currentRow+1
环
str=Mid(str,2)

将1000个数字放在一个单独的表中,然后左键联接。@ScottHoltzman,即一个临时表,很可能如最后一段中所建议的那样:我尝试将它放在OZATI_Ticket.Number的位置(从[data!A1:A1000]中选择*),但我看到一个错误,您将无法直接在Excel中加入列表,如果您想这样做,您需要先将结果输出到Sting中。我会在答案中加上一个例子。