Stránka 1 z 1

Excel - propojení s SQL a zamčení listu ??

Napsal: 12 srp 2016 10:48
od xcom2
Ahoj

Prosím o radu. Připravuji sešit v Excelu, který má několik listů. Vytvořil jsem v něm nový list "DATA SQL" do kterého načítám data pomocí Připojení na SQL server. Tímto způsobem dostanu data z SQL do listu "DATA SQL" ve formě tabulky. Tyto data se následně používají v dalších listech.

Potřeboval bych ovšem udělat to, aby uživatel List "DATA SQL" s připojenými daty mohl číst, ale nemohl ho měnit.
Pokud takový list "DATA SQL" zamknu, tak po znovuotevření Excel nechce aktualizovat toto Připojení (což je důležité), protože ten list je zamčený.

Poradíte prosím jednoduché/funkční řešení ??
Ideálně třeba i omezení na změnu toho Propojení - ne, že by toho někdo zneužil, ale spíše jde o to, aby omylem to někdo nezměnil

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 12 srp 2016 11:53
od guest
Od boku - nepomůže jen v rámci zámku listu povolit vkládání a odebírání řádků a filtr?

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 12 srp 2016 12:24
od xcom2
Díky, ale bohužel i když povolím cokoliv, on to prostě po otevření bere jako - List je zamčenej nebudu aktualizovat

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 12 srp 2016 13:29
od guest
1) Musí být ten list vidět? Třeba za předpokladu, že beztak surová data slouží jen třeba pro kontingenční tabulku?
2) Tak si holt aktualizaci dat postavit na proceduře spouštěné a) pod tlačítkem a b) po otevření sešitu (událostní procedura Workbook_Open), na jejím začátku odemknout list (Unprotect) a po ukončení aktualizace ho zase zamknout (Protect).

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 12 srp 2016 14:40
od xcom2
1) no to mě taky napadlo, že bych ho skryl, ale přecijen pro kontrolu, zda se to aktualizovalo a načetlo správně by bylo lepší, kdyby byl viditelný
2) ta možnost za B by se mě líbila, ale potřeboval bych to nějak polopaticky, pač tady už tápu co a jak a držím se čistě googlu, protože jsem to nikdy nedělal, nepočítal jsem, že tak vcelku banální věc budu takto komplikovaná. Lze to nějak jednoduše mi napsat, abych takříkajíc dal CTRL+C CTRL+V ?

Děkuji

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 14 srp 2016 21:02
od MePExG
V prílohe je malý program, ktorý vyberie list 1, zruší heslo "helo", aktualizuje údaje z SQL a zamkne heslom. Pozor príkazy musia byť uložené v sekcii workbook-open a takto nie je potrebná aktualizácia údajov pri otvorení, lebo ju vykoná tento program. Excelovský súbor musí mať príponu xlsm, aby podporoval makrá.
Toto riešenie je obmedzené počtom riadkov a nemožnosťou spracovať vstupné údaje. Od 2010 (a aj pre 2013) je k dispozícii doplnok PowerQuery a vo verzii 2016 je už obsiahnutý. Ďalej je možnosť (ak máte verziu pre analýzy) v Excely používať PowerPivot, v ktorom sa dá nadefinovať z rôznych zdrojov OLAP kocku (čo súbor to iná) a pomocou DAX analyzovať údaje (rôznymi spôsobmi [rôzne kontingenčné tabuľky, alebo grafy] s možnosťou využívať vlastnosti Excela).

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 15 srp 2016 08:59
od xcom2
2 MePExG: JE to vynikající, jediné o co bych ještě poprosil, jak mám upravit to připojení na SQL server (příkazy), to se mi nedaří, aby se to Aktualizovalo.

V mém případě je to takto:
Název serveru: SQL2014
DB: DATABAZE
Tabulka: TAB
Uživatel pro přihlášení k serveru: SA
Heslo: TEST

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 15 srp 2016 11:20
od MePExG
ActiveWorkbook.Connections(„server databáza tabuľka“).Refresh

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 16 srp 2016 09:33
od xcom2
Tak já jen doplním, protože se mi to ne úplně dařilo.
ActiveWorkbook.Connections(„server databáza tabuľka“).Refresh - toto je pravda, sice mi to nešlo do hlavy, ale pak jsem vlastně zjistil, že on používá již zadané připojení na to SQL, tedy to v závorce není nic jiného než název toho připojení a ten se schoduje s tím co píše MePExG

Já jsem ještě bojoval s tím, že jsem měl v tom původním SQL připojení stále nastaveno aktualizování při spuštění (což mi hlásilo zamknutý list) a musel jsem to zrušit, protože to už udělá ten program, jak psal MePExG.

Každopádně moc díky všem zúčastněným!!!

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 19 zář 2016 14:04
od xcom2
Ahoj

Může mi prosím ještě někdo pomoci??

Vše mi funguje,ale dělá to jednu neplechu.

Mám řeknu LIst SQL s názvem "Data" - zde načítám data z MSSQL DB - řekněme v jednom sloupci je měsíc a ve druhém hodnota(číslo). LOgicky teď mám hodnoty 1-9 (tedy leden až září)
Pak mám list 1 s názvem "list"- kam mám nasměrováno a uvádím tuto funkci "=Data!C1" v další buňce "=Data!C2" podle měsíců se mě tam přenášejí ty vyčtené hodnoty a dále se s nimi pracuje.

Připravil jsem to tak, že v "listu" mám již nastavený celý rok - tedy všechny měsíce, hodnoty, které nejsou v listu "data" jsou prostě 0.

*******
Problém je ten, že pokud Zaktualizuji po čase to SQL spojení, dočtou se mi další měsíce (tedy např. 2 řádky správně), ale ten propoj na "listu" on změní. Takže pokud jsem tam měl "=Data!C8" v další buňce "=Data!C9" (zatím byli 0) tak on je nechá a změní je na "=Data!C10" v další buňce "=Data!C11" a oni zůstanou NULOVÉ!!

JE to srozumitelné ? Můžete poradit? Nepomůže ani dát tam natvrdo dolar "=Data!$C$8" stejně tam dá do vzorce "=Data!$C$10"

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 24 zář 2016 20:03
od MePExG
Dobrý deň. Tento problém nastane vždy pokiaľ nadviažete spracovanie údajov na aktualizovanú oblasť. Lepšie je urobiť prenos týchto údajov na iný list (ručne-vložiť hodnoty, alebo makrom) a až z neho napájať ďalšie spracovanie. Alebo je tu možnosť, ktorú Vám rád pomôžem urobiť a to je použitie Power analýz v Exceli, ktorý nemá problém ani so stovkami miliónov riadkov a môže spájať viac zdrojov údajov do hromady napr. SQL, web, xls, txt, sdf.

Re: Excel - propojení s SQL a zamčení listu ??

Napsal: 12 říj 2016 08:30
od xcom2
2 MePExG: Děkuji za reakaci.

Zatím jsem to vyřešil tak, že jsem šel do vlastností toho připojení a zjistil jsem, že je tam něco jako Po připojení Odstranit buňky a aktualizovat - toto si myslím prostě odstranilo natvrdo ty buňky a řádky a tím to i v dalších listech se posunulo.

Nastavil jsem tedy Po připojení Vymazat buňky a aktualizovat - zatím to vypadá OK.