Sánta Kutya (SK) Creative Commons License 2013.02.08 0 0 20310

A script a következő:

 

Function SQL() As String
    Dim s As String
    s = Worksheets("f").Cells(1, 1).Value
    For i = 2 To Worksheets("f").Cells(Rows.Count, "A").End(xlUp).Row
        s = s & ", " & Worksheets("f").Cells(i, 1).Value
    Next
    s = "in (" & s & ")"
    SQL = s
End Function

 

Na ez a következőt csinálja: egymás alá írt számokat vesszővel elválasztva egymás mellé tesz, előállítva egy SQL kódrészletet a lekérdezéshez. 5-6 egymás alatti számnál működik is. Tehát a kód jó. De ha ráeresztem miond a 123 ezret, akkor tíz percre lefagy az Excel, és utána #ÉRTÉK hibát ad. A szokott módszeremet, hogy egyszerű konkatenációval rakom össze sorról sorra, meg se mertem próbálni ekkora mennyiségnél.

 

Mit rontottam el? Most én tehetek róla, hogy ennyi szám van? Elvileg ez nem olyan sok Excel 2007 alatt.

 

(Sajnos két adatbázisunk van, és az egyikben futtatott lekérdezés eredményét kéne a másikban felhasználni, ezért nem tudok közvetlen allekérdezést használni.)