< návrat zpět

MS Excel


Téma: Zápis do databáze a dotaz na zobrazení dat rss

Zaslal/a 18.5.2021 22:38

Dobrý den,
prosím o pomoc.
V souboru NPZP mám makro na zápis dat do externí databáze. Potřeboval bych, až proběhne zápis do databáze, aby se mi v souboru NPZP.xlsm aktualizovaly data z databáze.
Nyní mi to funguje jen při prvním spuštění makra, ale jakmile je dotaz spuštěn, tak už dále makro vidí databázi jen pro čtení a nabízí ji uložit pod jiným soborem.
Nevím, co s tím, poradí, prosím, někdo?

Příloha: rar50700_zapis_do_databaze.rar (29kB, staženo 12x)
Zaslat odpověď >

#050701
elninoslov
Nedovolí to systém. Ten v systémovej zložke Users, kvôli prístupovým právam, nedovolí zápis do iných zložiek, ako je Vaše konto. Ak dám súbor inde, do nesystémovej zložky, na iný disk, alebo do svojej zložky v Users, tak to prejde.citovat
#050702
avatar
Nevím, jestli Vás chápu, ale i když přesunu soubor jinam, tak je problém stále. Při druhém zápisu dat se data zapisují do databáze, která je jen pro čtení.

Mezitím jsem našel náhradní řešení - nemít připojení power query, ale požadovaná data zkopírovat z databáze do potřebného souboru. Zatěžuje mi to schránku a win se mě ptá, zda si přeji data nechat ve schránce. To nepotřebuji a nechci, aby se mi taková hláška zobrazovala. Taky mi toto řešení nepřijde moc elegantní. Při představě, že tak budu kopírovat 30.000 řádků, tak nevím....
Příloha: rar50702_zapis_do_databaze2.rar (33kB, staženo 11x)
citovat
#050705
avatar
Možná krkolomné, ale asi jsem problém vyřešil. Zatím mi to funguje.
Po zápisu dat do databáze vyvolám nové makro StahnoutData. Během procedury jen potlačím hlášku o schránce ve Windows. Uvidím, jak bude fungovat, až bude zaplněno prvních 5000 řádků. Zatím to jde docela rychle.

Sub StahnoutData()

Application.ScreenUpdating = False 'odstraní "problik"
Application.DisplayAlerts = False

Dim Master As Workbook
Dim wbLocal As Workbook
Dim masterNextRow As Long

Set wbLocal = ThisWorkbook
Set wbMaster = Workbooks.Open("\\...místo,kde je uložena databáze \NPZP_Database.xlsm")

Dim rgSource As Range
Dim rgDestination As Range

'Zkopírování dat do listu input
Set rgSource = wbMaster.Worksheets("DATA").Range("A2:AB5000")
Set rgDestination = wbLocal.Worksheets("Input").Range("A14")

'Vložení dat do listu input
rgSource.Copy
rgDestination.PasteSpecial xlPasteValues

wbMaster.Close True 'True je argument pro uložení souboru

Application.ScreenUpdating = True 'konec akce odstraní "problik"
Application.DisplayAlerts = True

End Subcitovat

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