tabulku z accessu prevest do xls a rozdelit   otázka

VB6/VBA

Dobry den, resim tu jeden ukol, jak v Accessu naprogramovat, aby se jedna accessova tabulka s velkym mnozstvim radku (cca 300tis.) ulozila do xls, ale predtim aby se rozdelila do vice listu, protoze do xls listu se vejde jen cca 65 tis. radku. Poradi mi nekdo prosim?

Dekuji!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No budu jen hádat, jak bych na to šel, nemohu to ověřit tak jen nástin - od tabulky udělat kopii poté dotaz top cca 65tis. a ten exportovat do excelu, pote odmazat těch 65 tis. řádků a postup opakovat, asi tak nějak bych to řešil, ale konkrétní postup bych musel ověřit, ale domnívám se že tak nějak bych na to zpočátku šel

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

prečo obmazať? Ak v tabuľke je primárny kľúč a je indexovaný zaradom(0,1,2,3,4,5...), tak vyberiem indexy 0-64999 ,potom indexy 65000-129999 atď.Ak nie, tak aj na to musí byť lepšia možnosť.

Mazaním riadkov pre účely prevodu môžete napríklad poslať do "teplých krajín"(zmazať) aj všetkých 300tisíc záznamov.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Diky za obe rady, v tabulce je indexove pole a zkousel jsem i query s TOP, oba zpusoby se v podstate daji pouzit, ale jeste mam jeden problem, potrebuju aby se do xls ulozila takova cast, ktera bude spolu souvoset. Reknu to jinak - v tabulce jsou udaje o fakturach a castky. Faktury maji ruzny pocet radku s castkami podle poctu sluzeb. Kdyz dam ulozit do xls presne 65tis radku, tak se muze stat ze nejaka faktura bude rozdelena ve 2 souborech a je potreba mit udeja o jedne konkretni fakture v jednom souboru a druhy soubor aby zacinal novou fakturou. To je ale orisek co :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Lze přece zjistit počet řádků pro určitý počet faktur:

SELECT COUNT(ZAZNAM_SLUZBY) WHERE FAKTURA_ID BETWEEN 1 AND 65000

Nešlo by to nějak využít?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V Office 2007 je již mnohem více řádků,

a vše by se vyřešilo samo. :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jj, presne, ale kdyz firma setri, tak se hledaji jine moznosti...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Věřím, že to půjde rozdělit dle požadavku.

č.řádku id_faktury zazmam_služby cena_služby

65533 3005 sluzba xxx 5,50

65534 3005 sluzba xxy 15,50

65535 3006 sluzba xxz 25,50

65536 3007 sluzba yyy 25,80

65537 3007 sluzba yyz 25,80

Po seřazení dle faktury a služby si doplňte

do tabulky index řádku, jak doporučují výše.

List má 65536 řádků, z tohoto řádku vyčíst

číslo faktury, další řádek nesmí obsahovat

shodné číslo faktury, jinak musíte najít

poslední záznam předchozího čísla faktury

resp. prvního rozdílného čísla faktury,

nemusí být zrovna o jednu menší...

Řádek zapamatovat jako poslední pro první list,

přičíst 65537 a získat potenciální index rozdělení

druhého listu (hlídat překročení celkového počtu

řádků v tabulce), stejný postup pro zjištění bodu

rozdělení, dokola ve smyčce do udolání zapamatovat

pro každý list od a do ... třeba do pole.

Pokud tabulku načtete do recordsetu, tak ji

taky můžete celou projít ve smyčce a jen si

počítat záznamy v proměnné, porovnávat atd.

a určit řádky pro rozdělení do listů...

Výše je to komplikovanější, ale mohlo by to

být rychlejší...

Pak vybírat dotazem čísla řádku od do (nebo

čísla faktur od do), měnit parametry dle

zjištěných míst rozdělení, naplnit recorset

dle dotazu a pomocí QueryTable poslat do listu

excelu získaného např. pomocí CreateObject,

přidávat listy za každý záznam s "od" a "do".

Postačí pořešit ve VBA, využít ADO, než bude

na ten novější office... Nejlépe přímo z Excelu.

Nebo to bude to VBA pod Accessem? Aplikace ve vb6?

Možná nedokáži postup založený na selském rozumu

dost dobře popsat, omlouvám se, líp to nedovedu...

Každopádně přeji příjemnou zábavu a doufám,

že Vám někdo zkušenější poradí něco jednoduššího,

rychlejšího a celkově lepšího... :)

... aby ty řádky rozdělení vysypal přímo dotaz...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback