Excel 2010 VBA-megoldás adatlekérésre
2017-11-30T11:55:22+01:00
2017-11-30T15:07:25+01:00
2022-08-18T19:25:33+02:00
FodrosGabi
Sziasztok.

Paraméteres lekérdezést kellene összeállítanom Excelben.

A feladat:
egy Excel munkalapon 1db Command, 1db listbox(ide jönnének az sql where-feltétel tagjai, illetve valahová, akár a másik munkalapra a végeredmény.

Egy sima, mezei select * from table where valami in (’’) jellegű lekérdezést futtatnék, miután a where feltétel inputjait a kolléga be copyzná a listboxba, vagy bármilyen vezérlőbe.

Azt le tudom makrózni, hogy a where feltételben szereplő tételek, mielőtt átmennek a select-nek, formázódjanak, pl ilyenre:

(

’valami1’;

’valami2’,

’valami3’

)
Olyan linket keresnék, vagy példamegoldást, ahol szépen le van írva ennek az egésznek, gondolok itt a lekérdezés szerkesztése, stb…

 Sima mezei Microsoft Queryvel próbálkoztam, de ott nem tudom a selectnek megadni a where feltételnél azt, hogy nem 1 db feltétel van, hanem adott esetben több 1000.

Előre is köszi…
Mutasd a teljes hozzászólást!
Microsoft Query-vel ez nem fog menni, mert nem támogatja ezt a fajta hívási módot.
Az egészet le kell kódolnod VBA-ban az összeállított lekérdezést pedig átadni a ListObject-nek.

De van itt egy-két probléma. Hogy képzeled, hogy a kolléga valami becopyzik a listboxba? A listbox ilyesmit nem támogat. Nem TextBox-ra gondoltál véletlen?

Arról nem beszéltél, hogy az ededmény, hogyan kerül be excel-be, pedig az is fontos. Ha Microsoft Query-vel próbálkoztál, akkor gondlom ListObject lesz belőle.

Ha van egy Munka1 nevű munkalapod, amin már van egy Tabla_1 nevű lekérdezés:

Dim Ws As Worksheet Dim LO As ListObject Set Ws = ThisWorkbook.Worksheets("Munka1") Set LO = Ws.ListObjects("Tabla_1") LO.QueryTable.CommandText = "SELECT * FROM Adatok WHERE Adat IN (" & List & ")" LO.QueryTable.Refresh
itt már csak a List változót kell feltölteni megfelelő listával, amiben akár 1000 elem is lehet.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd