Poradna - Prenos dát z formuláru Excel do databázy Excel
hlavní kategorie | zpět | + odpovědět na toto témaPrenos dát z formuláru Excel do databázy Excel - diskuze na toto téma |
Ahoj, potreboval by som pomôcť s prenosom dát z formuláru vytvoreného v excely do iného súboru excel ktorý by slúžil ako databáza.
Názov vstupného súboru s formulárom sa mení, databázový súbor je jeden. Do databázy sa teda budú kopírovať len vybrané bunky zo zdrojových formulárov, ktoré majú majú rôzny názov súboru, ale rovnakú štruktúru.
Napr. stále budem kopírovať bunku G12 z formuláru do stĺpca B v databáze, H18 do stĺpca C,... Každý nový formulár sa nahrá na prvý voľný riadok v databáze. Rozmýšľaľ som nad Makrom, ale vraj by to šlo aj cez Nepriamy odkaz. Neviem si však s tým rady. Príklad formulára. Používajú so v ňom zlúčené bunky, ktoré sa majú prenášať. Odpověď ďakujem je to super.
Je niečo také možné urobiť aj obrátene. Aby to makro nebolo vo formulári, ale v databáze. Formulár obieha po rôznych PC. Niektorí používajú OpenOfice prípadne iné programy. Databáza je stále na jednom mieste a s tou sa nehýbe, otvára sa vždy len v MS Office. Obávam sa, že by to makro takto mohli poškodiť/vymazať a potom by mi to nefungovalo. Odpověď Tak to nepôjde. Neviem si predstaviť, ako by mohol zatvorený zošit (databáza) vedieť o presúvaných, premenovávaných, a na rôznych kancelárskych bálíkoch otváraných súboroch, ktoré o svojom otvorení ani nemôžu dať nikomu vedieť (lebo musia byť bez makra). To je čisto nereálne. Odpověď V databaze by mohol byt novy stlpec kde by bola pre dany zaznam napr.definovana cesta k ulozenemu formularu. Radili mi ze to mamm takto urobit cez nepriamy odkaz. Len mi nepovedali ako a sam si s tym neviem rady. Databazova tabulka moze mat akukolvek formu alebo obsah. Nie je to definovane striktne ze len takto. A vsetko sa to nakoniec nachadza ulozene na jednom mieste. Databaza je v hlavnom adresary a formulare sa ukladaju do podadra. Odpověď V databaze by mohol byt novy stlpec kde by bola pre dany zaznam napr.definovana cesta k ulozenemu formularu. Radili mi ze to mamm takto urobit cez nepriamy odkaz. Len mi nepovedali ako a sam si s tym neviem rady. Databazova tabulka moze mat akukolvek formu alebo obsah. Nie je to definovane striktne ze len takto. A vsetko sa to nakoniec nachadza ulozene na jednom mieste. Databaza je v hlavnom adresary a formulare sa ukladaju do podadra. Odpověď A ešte jedna otázka - neviem či to je možné, ale dali by sa vložiť tie číselné položky- cena, zľava a cena po zľave ako odkazy resp. dynamické. Myslím to tak, že keď zmením napr. cenu v už uloženom formulári, aby sa mi zmenila aj v databáze? Odpověď Takmer z rovnakého dôvodu ako predošlá vec. Nie nepôjde to. Do databázy uložíme (záhadným spôsobom - viď vyššie) odkaz na súbor niekde na sieti, alebo ešte "lepšie" u niekoho v práci či doma. Tento súbor potom pošleme niekomu ďalšiemu mailom na úpravu. A budeme chcieť aby databáza, ktorá sa naštartuje len občas, o tom vedela. Takisto nereálne. Ak by boli súbory stále rovnako pomenované a na stále rovnakom umiestnení napr. v sieti, tak by odkazy na súbory fungovali. A Vy požadujete presný opak. Navyše takéto veci sprostredkováva klasická DB, nie Excel, ale aj to v inom garde. Do DB musí niečo (napr. makro) tie odkazy zapísať...
Obe tieto veci považujem za nereálne. Možno niekto na niečo iné príde ... Odpověď Tu sme sa si nie celkom pochopili. Formular vytvorim ja a je stale rovnaky. Vyplni ho zakaznik na inom PC a niekedy aj na inom softe. Potom ho posle ku mne mailom a ja si ho ulozim do databazy. Je nedno ci v PC alebo externe ulozisko (ten co formular vyplnil uz nan nema dosah). Niekedy sa vsak stane ze sa cena zmeni. Ja tuto hodnotu upravim v uz ulozenom formulari a mala by sa preklopit aj do databazy. Teraz mi to fungovalo tak ze tam mam obycajny odkaz na prislusnu bunku v kazdom formulari. Ked zmenim hodnotu zmeni sa aj v databaze. Niekedy to vsak nefunguje spravne a musim zasa rucne upravit odkaz. Odpověď Je už pokročilá hodina, tak snáď to teraz chápem. To je zásadná vec, že súbory budú na jednom mieste. Potom stačí urobiť makro v DB pri otváraní DB, ktoré prehľadá adresár s formulármi a vytvorí podľa nájdených názvov súborov patričné živé odkazy. A ak by toho bolo veľa a spomaľovalo by to prácu, tak by sa aktualizácia mohla robiť tlačítkom jednorázovo. Ak zajtra vyjde čas, spr s vym Vám nástrel. Odpověď Stále tam vidím potenciálny problém. Ak nebude formulár existovať, dostanete chybu, alebo ak nebude existovať a vy aktualizujte, tak jeho dáta v DB nebudú. Teda ak chcete aby aj staré dáta ostávali v DB a zároveň v nich boli aj odkazy na existujúce formuláre, tak to bude podstatne zložitejšie. A do toho sa mi nechce. Odpověď Dakujem pekne. Je to tatko super. Musím to skúsiť previezť na moje formuláre a databázu. Určite odskúšam obe varianty a uvidím čo bude pre mňa praktickejšie.
Ak by som zvolil tú prvú variantu logicky by to malo byť ako aj vypíšete vhodnejšie riešenie (odskúšam, či my nebude makro odstraňovať v iných programoch ako je Excel), bolo by to možné aby to makro vložilo do políčka Názov (v databáze) link, ktorý by mi po kliknutí otvoril konkrétny formulár? Teda makro by zobralo názov svojho súboru a vytvorilo by http odkaz v danom zázname. Postačovalo by aby ten odkaz bol na jednej položke. Dúfam, že som sa dobre vyjadril, lebo tieto požiadavky sa ťažko opisujú :) Odpověď Dobrý deň, ešte jeden dotaz. Keď teraz do adresára ukladám nové formuláre a dám aktualizovať, tak mi stále poprehadzuje poradie. Zatriedi to podľa názvu formulára. Dá sa to obísť tak, že budem mať vo formulári aj poradové číslo a to budem prenášať ako hodnotu do databázy a nie ako vytváranie rady automaticky (teda to prve i nahradím odkazom na konkrétnu bunku s poradovým číslom), len je dáky príkaz, aby v databáze zoraďovalo stĺpec A od najväčšieho po najmenšie a rešpektovalo hlavičku? A druhý detail - ak ostane nevyplnené pole vo formulári tak vráti do databázy hodnotu 0. Teoreticky sa toho viem zbaviť cez podmienené formátovanie, ale myslím si, že na to je aj elegantnejšie riešenie aby ak je pole nevyplnené vrátilo "". Odpověď V H1 je číslo formulára. Číslo formulára môže byť zakomponované aj v názve súboru, napr. "001 názov_zákazky.xlsx". PowerQuery ma tiež napadlo. Mrknite aj na riešenie MePExG. Odpověď Teraz to je super. Veľmi pekne ďakujem za váš čas a ochotu pomôcť. Toto by som určite sám nedal.. :) a to som sa považoval za celkom zdatného v excely. Pozriem aj PQ a porovnám si to, čo je pre mňa praktickejšie. Odpověď Našiel som na tomto fóre súbor "Zápis do DB.zip" a chcel by som ho využiť. Toto riešenie ale aktualizuje databázu vždy od druhého riadku. Ja mám na prvých štrnástich riadkoch údaje o databáze (Záhlavie v aktuálnej databáze je v pätnástom riadku). Dá sa to upraviť tak, aby sa údaje aktualizovali od riadku 16, Ďakujem Odpověď Zdravím,
prosím o pomoc. Potrebujem aby mi excel z viacerých súborov v jednom adresári zkopíroval riadky, kde v stlpci B je hodnota a v stĺpci H nie je, alebo rozsah riadku napr. B5:H5 (kde je splnená predošlá podmienka) a zapísal do cieľového súboru na riadok 4. Potom sa vátil takto do zdrojového súboru na ten istý list a pokračoval v prehľadávaní. Pri ďalšom splnení podmienky zase skopíroval a zapísal do cieľového súboru na riadok 5 a tak ďalej až v stĺpci B príde ku hodnote "koniec". Potom rovnako prehľadal a pri splnení podmienky zkopíroval aj ďalšie listy súboru a zapisoval vždy do ďalšieho riadku cieľového súboru a takto prešiel všetky súbory *.xlsx v adresári. Niečo mámm vytvorené a keď klikám krokovo a mám otvorený zdrojový súbor, tak mi to vypíše ako má. Ale keď spustím makro, tak mi vypíše iba jednu hodnotu z 3. súboru a hneď 3x pod sebou. Ďakujem za každú radu. Odpověď Dobrý deň.
Ak môžem chcem sa pokúsiť ponúknuť Vám riešenie cez PowerQuery (PQ). Ďalší popis v prílohe.
V prípade záujmu mu môžete kontaktovať na uvdený mail. Odpověď Prikladám riešenie pomocou PQ aj s postupom inštalácie PQ pre Excel 2010, alebo 2013. Pre verziu 2016 nie je potrebné PQ inštalovať. Odpověď Ďakuje za vašu ochotu a čas. O takejto funkcii v Excely som ani len netušil :) Musím si to pozrieť a porovnať aj s tým prvým riešením. Zatiaľ som to pozrel len zbežne, tak neviem či tam nebudú pre mňa dáke obmedzenia, ale vyzerá to tak, že by to malo fungovať spoľahlivo. Trocha možno bude problém to radenie formulárov podľa času uloženia - ak ho zaktualizujem o novú skutočnosť, tak asi zoberie za dátum pre zoradenie ten aktualizovaný a je možné, že všetky nasledujúce formuláre prečísluje, čo by nebolo žiadúce. Ale musím si to pozrieť poriadne a odskúšať. PQ vyzerá zaujímavo. Odpověď Dobrý deň.
Zoraďovanie sa dá urobiť aj podľa názvov súborov, alebo podľa ľubovoľnej dostupnej hodnoty. Ešte som zabudol povedať, že do spracovania zahrnie všetky listy súboru (ak rozpozná štruktúru formulára). Ak by to bolo prekážkou, dá sa spracovávať iba prvý list.
V prípade potreby, rád pomôžem s úpravami. Odpověď |