Excelben VB lekérdezés

Excelben VB lekérdezés
2011-07-04T14:06:52+02:00
2011-07-05T12:31:02+02:00
2022-11-22T09:50:41+01:00
demand
Sziasztok!

Az Excelben lévő Visual Basic-kel szeretnénk egy programot készíteni, amivel adatokat lehet felvinni és lekérdezni. A felvitel része sikerült, van egy felviteli Form amibe beírjuk az adatokat és az bekerül az excel táblába. A probléma az adatok lekérdezésével, szűrésével van. Erre készítettünk egy másik Form-ot amibe megadhatja a felhasználó milyen adatokra kíváncsi (pl:adott város, személy, eszköz stb). Hogyan lehetne egyszerűen és gyorsan az adatokat VB segítségével lekérdezni az excel táblából. Az egész program az excelen belül fut, tehát nem egy külön alkalmazás. Segítségeteket előre is köszönöm!
Mutasd a teljes hozzászólást!

  • És hol akadtál el?
    Nem inkább Access-be kellet volna csinálni?
    Esetleg létrehozhatsz kimutatást (pivot)...
    Mutasd a teljes hozzászólást!
  • Őszinte leszek: nem értem a kérdésed lényegét!

    Ha bevitted az adatokat az excel táblába, akkor miért nem használhatja a felhasználó a beépített szűrő és kereső funkcióit az excel-nek, miért kell a már meglévő funkcionalitást duplikálni?

    Továbbá a leírás alapján szerintem rossz ezközt választottatok a feladatra, mert az excel táblázat és nem adatbáziskezelő program, viszont amit ti szeretnétek csinálni, az már inkább adatbáziskezelés és higyjétek el, hosszabb távon sokkal jobban jártok, ha ezt a feladatot access-ben oldjátok meg!

    Access-ben a keresés/szűrés beépített funkcionalitás, le se kell programoznotok, hacsak nem akartok valamilyen bonyolultabb szűrést, amikoris célszerű külön lekérdezést készíteni.


    Excelben ugyanis nem tudsz hatékonyan keresni a beépített eszközökkel. Max az az egyszerű, amit az excel autószűrőjével ki tudsz kerestetni, de azzal pl. nem tudsz mezők közötti vagy kapcsolatot kiépíteni, csak mezőn belüli. Ráadásul pár ezer sornál már be fog lassulni.

    De ha akarjátok, akkor nézzétek meg makrórögzítő bekapcsolása mellett az autoszűrő használatát, illetve nézzétek meg a find-findnext metódus pár használatára adott példát az excel vba súgójában.

    De hangsúlyzom: szerintem rossz eszközt használtok a feladat megoldására és még szvsz nem késő váltani!
    Mutasd a teljes hozzászólást!
  • Access-ben ez szerintem is sokkal gyorsabb lenne. Pont.

    --------

    Ha mégis maradnál az Excel-nél, akkor alternatívaként még szóba jöhet az irányított szűrő használata (makrórögzítő bekapcsolása mellett).

    Ekkor kapsz valami ilyesmit:

    Range("$A$1:$H$2000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( "N1:N2"), CopyToRange:=Range("N5"), Unique:=False

    Itt az "$A$1:$H$2000" tartományban vannak az adatok, a "N1:N2"-ben a feltételek, a céltartomány pedig az "N5" cellában lesz.
    Ezzel kapcsolatban még célszerű benézni ide
    Mutasd a teljes hozzászólást!

  • Látom a 2. url elszállt. Egyszerűen a google-ba beütöd: "irányított szűrő excel"
    Mutasd a teljes hozzászólást!
  • Azért csináltuk excelben, mert eddig is ebben a programban tartották nyilván az adatokat, csak szebb lenne formok-segítségével elvégezni a műveleteket. És az is szebb lenne ha egy form segítségével adhatnám meg a keresési kritériumokat. A felhasználónak nem kellene az irányított szűrőt állítgatni, hanem csak begépelné a keresési feltételeket és az excel megszűrné. Csak az összetett keresés nem igazán jön össze: pl.:hibás eszköz, ami budapesti és Gipsz Jakab adta el.
    Mutasd a teljes hozzászólást!
  • Azért csináltuk excelben, mert eddig is ebben a programban tartották nyilván az adatokat
    - Ti tudjátok.

    És az is szebb lenne ha egy form segítségével adhatnám meg a keresési kritériumokat. A felhasználónak nem kellene.......


    És ennek mi az akadálya?
    Mutasd a teljes hozzászólást!
  • Akkor mégegyszer: az excel táblázatkezelő program és nem adatbáziskezelő. Ha adatbázis kezelésre akarod használni, akkor szívni fogsz vele, de nagyon. Én a saját bőrömön tapasztaltam meg, hogy ez mekkora hiba! Több ezer soros excel vba kódot alig pár tucat sorra redukált egy szimpla migráció access-be.

    Access-be egy excel táblából áttenni az adatokat pár kattintás, a form varázslóval beviteli formot készíteni ugyancsak pár kattintás és utána használhatod az access beépített szűrés form-mal funkcionalitását, készíthetsz sztenderd lekérdezéseket, szépen formázott riportokat, pivot táblákat, grafikonokat, vagy akár bizonyos szűrt adatokat további elemzésre vissza is tudsz exportálni excel-be.

    Csak az összetett keresés nem igazán jön össze: pl.:hibás eszköz, ami budapesti és Gipsz Jakab adta el.


    Ez simán az automatikus szűrővel megoldható, bár nem igazán tudom, hogy miért szebb, ha egy textboxba kell ezt begépelni, ahelyett, hogy az autoszűrőnél kiválaszd a megfelelő szűrési feltételeket.

    De ha nagyon akarod, akkor megoldható az autoszűrő vagy az irányított szűrő használata vba-ból is, csak vedd a fáradságot, rögzítsed makrórögzítővel amelyik neked tetszik és abból a kódból már ki tudsz indulni.
    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