Excel nagyméretű adatbázis kezelése
2010-11-13T21:18:39+01:00
2010-11-13T21:57:42+01:00
2022-07-26T06:10:27+02:00
nygniko
Sziasztok!

Egy ötletet szeretnék kérni Tőletek!

Van egy exceltábla, amiben (több munkalapon) 2,5 millió sor van (naponta bővül átlag 2-4000 sorral.
Szóval ezt kellene kezelni...

Van rá VB program. Az egyik munkalapon van egy textbox + egy keresés gomb. A textboxba beírom a keresett adatot, keresés gomb és kidobálja alá a találati sorokat.

A problémás funkció a keresés, mert egyrészt sok ideig tart (a leggyorsabb FIND metódus van benne), másrészt sok idő, mire betölti az excel a 170 MB-os táblát, hálózaton keresztül. Tehát a dupla időveszteség már itt adott.
A tábla tartalma: iktatószám (sok azonos van benne-ez így a jó), egyedi azonosítószám, stb adatok.

Az fontos, hogy ennek a táblának valahogy mégis egyben kellene lennie, de a keresés gyors legyen.

Arra gondoltam, hogy a naponta bevitt adatokat egy külön programmal .CSV (pontosvesszős tagolású) textfile-ba mentem le, de úgy, hogy az egyedi azonosítószámok első három karaktere lesz a filenév, így a nagy tábla .CSV-ben is meglesz, az azonosítószámok első három jegye szerinti bontásban.
Így a keresésnél nem kell az összes 2,5 millió sort végignézni, hanem csak azt a viszonylag kisebb file-t megnyitni és beolvasni (az eredeti nagy tábla egyben megmarad ezzel párhuzamosan).
Maga a tábla egy felület lesz csak, a több millió sorosat külön kiteszem egy másik táblába és azt csak a kereséskor olvassa be, ha chechbox-al az user így kéri, különben csak a kisebb .CSV-ket olvassa be...jobbat nem tudtam kitalálni, de ez meg így eléggé gagyinak hangzik ... Hm?

Nektek valami ötlet?
Mutasd a teljes hozzászólást!
Látom sokat dolgozol a programodon (prog.hu)

Nem lenne jobb az egészet áttenni mondjuk Access-be?

Ott a keresés szerintem alapból jobban, gyorsabban és könnyebben paraméterezhetően működik.
meg amúgy is.
A Visual Basic program megoldásaidat (leglábbis egy részét)oda is át lehetne implementálni.

Ha meg kell Excel is, akkor ADOdb -n keresztül tudod vele tartani a kapcsolatot.
Mutasd a teljes hozzászólást!

  • Közben arra is gondoltam, hogy a nagy tábla islehetne .CSV és nem töltődne be, csak a kereséskor, viszont így több, mint amit az excel szerkeszteni tud... és ez a baj.
    Mutasd a teljes hozzászólást!
  • A hálózati részére tudok csak válaszolni:

    Lehetőleg gigabites kártyákat kellene alkalmazni az exceles gépen és a hálózati tároló gépen is, így csökkenthető az áttöltés ideje.

    A többi problémádra majd egy jártasabb felhasználó ad választ (pl Delila, STL_).
    Mutasd a teljes hozzászólást!
  • Látom sokat dolgozol a programodon (prog.hu)

    Nem lenne jobb az egészet áttenni mondjuk Access-be?

    Ott a keresés szerintem alapból jobban, gyorsabban és könnyebben paraméterezhetően működik.
    meg amúgy is.
    A Visual Basic program megoldásaidat (leglábbis egy részét)oda is át lehetne implementálni.

    Ha meg kell Excel is, akkor ADOdb -n keresztül tudod vele tartani a kapcsolatot.
    Mutasd a teljes hozzászólást!
  • Annyit dolgozom, hogy az már kezd az ivás rovására menni ...

    AZ Access jó ötlet, nem ismerem (most elkezdem kialakítani vele a mélyreható kapcsolatot), de kérdés, hogy az excel VB parancsokat ugyanúgy ismeri? Úgy érted, hogy a kódokat csak át kellene másolnom?
    Mutasd a teljes hozzászólást!
  • Ugyanúgy van alatta VBA.

    Csak annyi, hogy ami Excel specifikus, azt úgyse fogod használni, mondjuk egy Find-ot egy munkalapon, ha helyette Acces adatbázis táblában keresel... de tudsz hivatkozni.
    De akár Access-ből is el tudod indítani az Excel-t és ugyanúgy használni, mint eddig.

    Az outlook használat szerintem dettó ugyanaz lesz, csak annyi, hogy az adatforrás nem excelből veszi majd, hanem access-ből.

    Mutasd a teljes hozzászólást!
abcd