Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 53

Zdravím,
snad mi někdo poradí, kde bych mohl dělat chybu ...
Mám tabulku s polem (FY_PERIODA) obsahujícím například text 201805 (Fiskální rok a perioda)
Pomocí funkcí v datovém modelu z toho chci udělat kalendářní datum, ale ve stejném formátu, tzn. mínus 3 měsíce, výsledkem by mělo být 201802.
Když použiji DAX funkci ...
=DATEADD(DATE(left(DATA[FY_PERIODA];4)*1;right(DATA[FY_PERIODA];2)*1;1);-3;MONTH)
Tak mi to vrací chybu s hláškou že pro funkci DATEADD nedodávám datum, což je nějaké divné když mu dodávám výsledek funkce DATE.
Když to rozdělím do dvou sloupců ...
=DATE(left(DATA[FY_PERIODA];4)*1;right(DATA[FY_PERIODA];2)*1;1)
a následně nad ním udělám DATEADD...
=DATEADD(DATA[POMOCNY];-3;MONTH)
Tak to funguje.
Nicméně chtěl jsem si ušetřit pomocný sloupec :-).

Díky
za Tipy.

M@

Nějak nevím jestli jsem dobře pochopil :-)

No jo, už mi to došlo, chvilku to trvá než se mozek zahřeje :-). A opravdu to tak funguje (bez relací za použití funkcí).

Díky
M@

Asi se budu muset smířit s tím, že to dle mých představ čistě pomocí daných funkcí udělat nelze.
Data jsou pouze na týdenní bázi a den mě v podstatě nezajímá, nicméně kalendář jsem použil aby bylo možno použít timeline, s tím že představa byla taková, že z timeline získám Týden a ten se mi filtruje, problém je že ten týden v případě více dnů získám vícekrát a při propojení s daty by z toho vznikla relace M:N, což Power Pivot neumí a stejně by z toho vznikl paskvil, proto jsem udělal i tabulku jedinečných týdnů, bohužel ani to nepomáhá.
Ano bez použití timeline a tudíž i bez kalendáře to funguje jak má, pomocí čistě sliceru nad ROK_KW, ale chtěl jsem zkusit jen kvůli efektu použít timeline.
V SQL bych mu řekl něco jako select Distinct ROK_KW where Datum in (VybraneHodnotyTimeline) a tuto dočasnou tabulku pak spojil s daty. Ano šlo by napsat makro, které z timeline vezme Range od-do a ten použije v SQL dotazu, ale zajímalo mě jestli to lze čistě bez maker za použití PowerPivot.

Díky
M@

Ahoj, zkouším se více seznámit s Power Pivotem, ale nějak mi nefunguje, jak bych čekal.
V příloze posílám příklad.
Mám data na týdenní bázi kdy týden je označen ROK_KW (YYYY_WW), jelikož nad tímto údajem by mohl stát jen textový filtr a já bych rád použil časovou osu, tak jsem si k tomu udělal kalendář s převodem data na údaj ROK_KW.
Představa je taková, že když pak na časové ose vyberu jakékoliv datum, tak se mi zobrazí data za odpovídající týden, čehož nějak ne a ne docílit.
Asi to bude nějaká blbost, ale nějak ne a ne přijít.
Předem děkuji za jakékoliv tipy, které nebudou říkat "vyprdni se na časovou osu" :-) Bylo by fajn dostat na časovou osu týden, ale to je asi jen zbožné přání.

Díky
M@

Co takhle Kontingenční tabulka a graf a k němu vložená časová osa, která umožní výběr užšího výběru, v podstatě takový "zoom".

M@

Děkuji za Tip, v české verzi se jmenuje "Z SQL Serveru (starší verze)" a je to funkční řešení, jen teda doufám, že to některý update v budoucnu neodstřihne úplně.

Zatím jsem obcházel tak, že jsem načetl nějaké existují a to si změnil k obrazu svému. Teď už můžu tvořit zas nová připojení :-).

Ale i tak se zeptám lze nějak makrem přepsat SQL dotaz Excelového Dotazu vytvořeného editorem dotazů?

Díky
M@

Ahoj asi jen něco přehlížím, nebo nevím, ale dříve v excelu na záložce data bylo tlačítko připojení, kde jsem si mohl vytvářet nová připojení do SQL a ovládat to makrem přes OLEDBConnection.
S novou aktualizací Excelu tam místo toho mám Dotazy a připojení, kde můžu vytvořit dotaz, spravovat existující připojení, ale nějak ne a ne najít možnost pro vytvoření nového připojení, tak abych s tím mohl dělat jak jsem zvyklý. Místo toho mi to přijde hodně orientované na Dotazy, kde jsem zatím nepřišel jak pomocí makra upravit CommandText dle potřeby, protože zde jsou ty dotazy tvořeny asi tím M jazykem.

Takže otázka zní
- jak vytvořit nové připojení (nikoliv dotaz)?
- případně jak makrem měnit SQL dotaz (CommandText) dotazu?

Office 365 verze 1708 build 8431.2236
Díky
M@

Co se opravy záznamu týče, tak každý záznam v SQL by měl mít jedinečné ID, přes toto pak lze použít UPDATE dotaz.
Co se makra na straně excelu týče tak bude v podstatě stejné jako v případě vkládání, akorát místo INSERTOVÉHO dotazu se bude předávat UPDATE dotaz, který má jinou syntaxi a je nutno mu dodat podmínku, která jednoznačně identifikuje záznam který chcete UPDATOVAT
"UPDATE TABULKA SET POLE = 'NovaHodnota' WHERE ID = 1".

Co se času vložení týče, tak v SQL lze vytvořit POLE typu datetime a nejlépe mu i nastavit výchozí hodnotu na SYSDATETIME(), čím se do daného pole s každým novým záznamem vloží aktuální datum a čas, tudíž vůbec není třeba řešit v dotazu.

S tím přihlášením a odhlášením už jsem to moc nepobral :-), přihlášení a odhlášení kam?

M@

Z toho plyne, že Databáze se nejmenuje Table, ale merkur, což je potřeba upravit v connection stringu
Initial Catalog=merkur
Tabulka se jmenuje TABULKA, takže je potřeba upravit i SQl.
No a poslední dost podstatné je ten čas. Jelikož se nejedná o délku trvání (číslo), ale o datum a čas, tak je potřeba ho zformátovat do podoby pro SQL, což se mi čistě vložením obsahu buňky nikdy nepodařilo, takže je potřeba jej ošetřit v dotazu...
conn.Execute ("INSERT INTO TABULKA (JMENO, CAS, DUVOD) VALUES ('" & Cells(rd, 1) & "', '" & Replace(CStr(Format(Cells(rd, 2), "yyyy.mm.dd HH:MM:SS")), ".", "/") & "', '" & Cells(rd, 3) & "')")

Určitě by šlo ošetřit i v SQL jazyce přeformátováním, ale mě se to lépe dělá už ve VB :-).

M@

V příloze je příklad, Je potřeba v makru specifikovat tabulku, kam se má vkládat. No a pak pokud SQL běží doma, tak si nejsem jistý jestli by nemělo běžet přes localhost\sqlexpress.

M@

Po té úpravě místo activecell na Range by se měl QR objevit vždy v G18.

Příloha.

M@

Už to trochu "przníme", ale budiž :-)
Nahraďte
Selection.Left = ActiveCell.Left
Selection.Top = ActiveCell.Top


za

Selection.Left = Range("G18").Left
Selection.Top = Range("G18").Top

M@

V referencích VBA přidat referenci na Microsoft ActiveX Data Objects 2.8 Library.
a pak následující kód...
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NazevDB;Data Source=NazevServeru"
conn.Open
For rd = 2 To ActiveSheet.UsedRange.Rows.Count
If Cells(rd, 1) <> "" Then
conn.Execute ("INSERT INTO TABULKA (JMENO, CAS, DUVOD) VALUES ('" & Cells(rd, 1) & "', " & Cells(rd, 2) & ", '" & Cells(rd, 3) & "'")
End If
Next
conn.Close


Použitý connection string využívá ověření windows, nikoliv SQL.
M@

Úplně nulové asi nedáme, ale s odkazem na ...
https://developers.google.com/chart/infographics/docs/qr_codes#details
by měl jít nastavit margin.

Takže když do funkce QRX před text
&choe=ISO-8859-1/chart.png
vložíte
&chld=M|0

tak to číslo za | říká jaký má být okraj.
M@


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 53

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Makro smyčka

elninoslov • 18.4. 0:18

Makro smyčka

MilanKop • 17.4. 21:33

Automatické generování souborů

Majki • 17.4. 13:48

Automatické generování souborů

elninoslov • 17.4. 13:27

Automatické generování souborů

Majki • 17.4. 13:25

Automatické generování souborů

elninoslov • 17.4. 13:11

Makro smyčka

elninoslov • 17.4. 13:09