Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  33 34 35 36 37 38 39 40 41   další » ... 140

Hech - a teď mně napadlo vyzkoušet ještě následující:
Bavím se o objektu Tabulka

1. Import tabulky tak jak je - vytvoří se propojení a data jsou načtena do Tabulky
2. Po prvním importu na požadované místo kliknout pravým tlačítkem a Vložit sloupec tabulky vlevo
3. Přejmenovat si sloupec
4. Aktualizovat

A sloupec tam zůstal a je prázdný
Chce to asi delší test, ale zdá se že to takhle stačí.

A už končím ;)

Není zač, jen malé vylepšení - bez závislosti na jakémkoliv poli ;))SELECT ID,IIf(Date()<1,0,Null) AS AAAA,Pole1 FROM Tabulka1

@AL
tak v Exceli sa mi cez datové pripojenie daný stĺpec vôbec nezobrazí
Viz minulý post ;))

IIf(ID Is Null,0,Null)ID nikdy není Null, proto vždy vloží Null - musel jsem ho ošálit ;)

Mimochodem - pokud je to schůdné dělat to pomocí datového připojení tak se mi podačilo toto

Vytvořil jsem si Tabulku1 se dvěma sloupci ID a Pole1. Pole ID není nikdy prázdné.
Vytvořil jsem připojení pomocí SQL dotazuSELECT ID,IIf(ID Is Null,0,Null) AS AAAA,Pole1 FROM Tabulka1a funguje mi to - importuje prázdné. Při první aktualizaci mi to sloupec AAAA vložilo na konec (i když ho mám uvnitř), ručně jsem ho v tabulce přesunul a po další aktualizaci už to bylo správně.

Poznámka - musel jsem použít IIf na neprázdné pole. Původně jsem zkoušel, toto
SELECT ID,Null AS AAAA,Pole1 FROM Tabulka1nefunguje, excel AAAA jako prázdný po připojení odstraní. Pokud víš, jak tomu zamezit - zatím jsem na to nepřišel - nemusíš použít IIf.

@AL
Do Excelu chcem nakopírovať výsledok dotazu z Access (prosté copy/paste, ale úplne rovnaké by to bolo i keby som použil datové pripojenie).

Udělal jsem pár krátkých testů a není to to samé.
Pokud kopíruješ manuálně, tak sloupec není prázdný, jak píšeš (JE.TEXT vrací PRAVDA).
Pokud provedeš import dat (připojení), tak prázdná je. Funkce JE.PRÁZNÉ vrací PRAVDA.

Access 2010

ale ja tam proste tú nulu zapísanú mať nechcem.

;)))
jo jo, tohle znám

pokud nefunguje Null a nechceš použít ani druhý můj geniální nápad, tak jdu dál pít ;))
hezký víkend

Možná dvě hloupé poznámky v pátek večer a k accessu se dostanu až v pondělí
čo potom vzorec nevyhodnotí ako číslo, resp. pokiaľ očakáva číslo, tak v danom prípade vyhodnotí ako chybu.
Takže v buňce čekáš číslo a buňka má být prázdná - prázdná buňka vrací nulu, tak mně napadáSELECT 0 AS EstimatedSavings
nebo - kopíruješ to předpokládám do tabulky - tvůj sloupec dej na konec (v excelu budeš mít o jeden sloupec více - v dotauze se na něj víš co) - data z access vložíš a tabulka rozšíří včetně tvého nulového sloupce
ale možná to vidím moc jednoduše

@checkboy

DAAL to napsal úplně přesně.
Řítíte se k řešení, které bude špatně udržovatelné, pomalé atd...
v excelu to neuřídíte.
Všichni, co jsme vám tu odpovídali, jsme schopni vytvořit přesně to, co chcete. Ale ani jeden z nás to neudělá, protože je to špatná cesta, navíc to nemáme jak otestovat. Na tom vzorku 400 záznamů, co jste dodal to bude běhat úžasně, ale co 1500000...

Včera jsem jen krátce otestoval to, co už tu v podstatě zaznělo:
Databáze v Access (pochopil jsem, že máte) - těch vašich 400 záznamů + parametrický dotaz z excelu pomocí MSQuerry. Pěkné řešení, naprosto bez VBA, pouze jeden řádek se vzorci, který mi zřetězil položky. Jak jsem říkal, běhalo to krásně, navíc 2 miliony záznamů by měl Access zvládnout v pohodě. Nicméně jsem MSQuerry na 2 miliony řádků ještě nikdy nepoužil, takže co to udělá, netuším.
V excelu by se počet načtených řádků dal omezit na např. 10000 + hláška, že nebyly načteny všechny (také bez VBA)

@AL
hehe - s Accessem dělám teprve od března, takže si nedovolím tvrdit, že bych mohl někomu radit. Navíc mi absolutně nevyhovuje ten tvůrce dotazů - to je naprostá katastrofa, takže všechny dotazy vytvářím v Notepad++.

Vnořeným dotazem myslím (sorry za terminologii - oba jsou SQL, ale nevím jak jinak to rozlišit) vnoření SQL dotazuSELECT t2.něco FROM (SELECT t1.něco FROM (SELECT tabulka.něco FROM tabulka) AS t1) AS t2 JOIN (SELECT...)a toto mi excel vůbec nezobrazí

Nevím jak je to s vnořením Access dotazuSELECT něco FROM accQuerrytam to možná excel chápe (ale stejně říkáš, že špatně). Já se tomu zatím vyhýbám, protože mám děravou paměť a nepamatoval bych si, kde všude jsem to použil (ano - jsou tam Závislosti objektů), ale když člověk spěchá...
Navíc, pokud vím, že se na danou věc budu odkazovat, tak mi ta tabulka přijde praktičtější a věřím, že u složitějších dotazů i rychlejší.

Taky z tabletu a taky zbrucha

Chyba je tam - clUp má být xlUp

A taky bych řekl, že hledá poslední prázdnou (v pracovní oblasti) 2
Kdyby hledal první, stačilo by xlDown

A taky bych řekl, že to jde bez proměnné...Range(Cells(1,1),Cells(Rows.Count,1).End(xlUp)).Value = cosik

Pokud chci mít 100% jistotu, že se mi převedou pouze hodnoty, které chci, tak se asi cyklu nevyhnu - a asi je vhodné využít ErrorsSub subTextToValues()
Dim bSett As Boolean
bSett = Application.ErrorCheckingOptions.NumberAsText
Application.ErrorCheckingOptions.NumberAsText = True

Dim rErrors As Range
Dim rCell As Range
For Each rCell In Selection.Cells
If rCell.Errors.Item(xlNumberAsText).Value Then
If rErrors Is Nothing Then
Set rErrors = rCell
Else
Set rErrors = Union(rErrors, rCell)
End If
End If
Next rCell
Set rCell = Nothing

If Not rErrors Is Nothing Then
rErrors.FormulaLocal = rErrors.FormulaLocal
Set rErrors = Nothing
End If

Application.ErrorCheckingOptions.NumberAsText = bSett
End Sub

@marjankaj
zkusil jsem to doma na 2007Selection.Replace What:=",", Replacement:="."
text 1,6 převedlo na číslo 1,6
ale
text a,b,c,d převedlo na a.b.c.d
text 3 546,2 převedlo na 3 546.2

Tak jsem otestaval toto With Selection
.TextToColumns Destination:=.Cells, DecimalSeparator:=Application.International(xlDecimalSeparator), ThousandsSeparator:=Application.International(xlThousandsSeparator)
End With 'Selection
na všech typech hodnot, na které jsem si vzpomněl

Funguje to perfektně, teda skoro ;))
1,6 zadanou jako text převede na číslo 1,6 - hurá
1,6 zadanou jako číslo převede na text 1.6 - brr

jinak datum, chyba, logická i text v pohodě
asi to bez cyklu nepude, takže bych udělal cyklus nadSelection.SpecialCells(xlCellTypeConstants, xlTextValues)

@AL
používam radšej early binding, nie som úplne kovaný v syntaxi jednotlivých príkazov a intellisense mi potom uľahčuje život

Já taky. Proto si ten kód napíšu přímo v aplikaci, kterou volám, odladím a teprve pak přenesu do aplikace, kde bude spuštěn. Pokud to není možné (nemá VBA), tak vytvořím referenci a po odladění odstraním. Proč? Protože, když to pak přenesu do jiného PC a ta aplikace tam není, nefunguje ve VBA ani to, co na ní není závislé. Prostě se v maximální míře vyhýbám referencím.

Ono ani vytvoření dotazů v Accessu s Excelem moc nespolupracuje. Jednoduché dotazy si excel najde, ale jakmile použiju vnořený dotaz, už ho v seznamu nemám a musím z něj vytvořit tabulku.

Osobně taky zatím dávám přednost MSQuery před PowerQuery. Za prvé jsem ještě neměl čas se v PQ hlouběji hrabat (kdyby někdo měl odkaz na nějaké dobré stánky, tak sem s nima) a za druhé mi to při každém zavření (Excel 2010) hodí hlášku "Excel provedl neplatnou operaci..." a taky jsem to ještě neměl čas řešit (nepoužívám, tak to nespěchá).

Mno, teď jen teoreticky. Pokud se bavíme o balíčku office, tak když chci obsluhovat tabulku access z excelu pomocí VBA, prostě použiju referenci na access (createobject)

Pokud se bavíme o tomto konkrétním případě, tak k tomu nevidím důvod
jen bych potřeboval případně do té databáze jednou za čas přijít a celou jí zaktualizovat.
Jednou za čas chápu tak, že to udělá klidně ručně v accessu a pak to bude nějakou dobu platit.
Tzn v excelu jen definovat dotaz na tabulku


Strana:  1 ... « předchozí  33 34 35 36 37 38 39 40 41   další » ... 140

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje