otázka
Chyba #3022 - Požadované změny tabulky se nepodařily, protože by vytvořily duplicitní hodnoty ...
odpověď
Jedná se o duplicitní záznamy v indexovaných sloupcích databáze účetní jednotky, většinou jde o sloupec ID, výjimečně sloupec Cislo. Chyba může nastat z důvodu nestability síťového připojení, chybné funkce operačního systému, případně při nestandardním ukončování aplikace.
V tomto případě je nutné nalézt duplicitní záznamy a tyto záznamy smazat a znovu zapsat. Pro zobrazení duplicitních záznamů je možné vhodně využít možností jazyka SQL a volby „Upravit dotaz“, kterou nabízí program POHODA.
Postup odhalení duplicit v něktré hlavní tabulce je následující:
-
V závěrečném logu o provedených operacích po Správě databáze nebo pokusu o převod účetní jednotky naleznete agendu, ve které došlo k chybě. Informace o chybné agendě a také tabulce s duplicitními hodnotami, jsou viditelné v okamžiku výskytu chybového hlášení na panelu s průběhem operací (ProgressBar) vlevo dole. Zde si opište název tabulky, který je zapsán v závorce.
-
Pokud dojde k chybě při převodu účetní jednotky na vyšší verzi, je nutné nejprve ponížit instalovaný Release programu POHODA na Release, ve kterém byla účetní jednotka až dosud provozována (nainstalovat zpět starší verzi).
-
Otevřete Účetní jednotku, a pokud bylo chybové hlášení zobrazeno v existující agendě programu POHODA, otevřete tuto agendu. Pokud není možné agendu otevřít, řešení touto cestou není možné.
-
Z nabídky Záznam/Výběr/Upravit dotaz zobrazte dialog pro úpravu dotazu. Pokud je volba „Upravit dotaz“ nepřístupná, pravděpodobně nemáte v agendě uložený žádný dotaz. V tom případě je nutné nejprve vytvořit jakýkoliv filtr nebo dotaz, který bude následně možné pomocí výše zmíněné volby upravit.
-
V dialogovém okně SQL definice zapíšete následující část SQL dotazu (jedná se o klauzuli WHERE), přičemž použijte název tabulky, dále jen zkratka TAB: TAB.ID IN (SELECT ID FROM TAB GROUP BY ID HAVING COUNT(*)>1).
Dotaz je možné přejmenovat a případně uložit mezi Uložené dotazy. Jakmile dotaz potvrdíte, dojde k zobrazení položek s duplicitními hodnotami v poli ID.
-
Ve výsledném výběru záznamů, dojde k zobrazení pouze těch záznamů, jejichž ID je duplicitní. Tyto záznamy je nutné zkontrolovat, smazat a případně znovu zapsat ty, které jsou chybné.
Po smazání záznamů je nutné provést Údržbu databáze.
Příklad:
Pokud dojde k chybovému hlášení při Správě databáze u tabulky Faktury(FA), jedná se o duplicitu v agendách
Fakturace. V tomto případě je nutné otevřít každou agendu fakturace a upravit dotaz na (FA.ID IN (SELECT ID
FROM FA GROUP BY ID HAVING COUNT(*)>1)).
Tímto způsobem není možné zobrazit duplicity v položkách dokladů.
V rámci služeb zákaznické technické podpory lze za úplatu provést opravu databáze tak, aby nedošlo ke ztrátě informací (nebo alespoň minimální ztrátě informací). Jedná se o expertní servisní službu. Tuto službu je nutné předem objednat buď e-mailem nebo přes web Objednávka individuálních služeb, kde je nutné vyplnit formulář pro objednání těchto služeb.
K provedení opravy databáze je dále nutné zaslat zálohu účetní jednotky, ve které se duplicity vyskytují.
Odeslání databáze proveďte takto:
-
V POHODĚ si zobrazte seznam účetních jednotek povelem Soubor/Účetní jednotky.
-
Ve sloupci Datový soubor najděte název souboru, jak je uložen na disku, ten si zapamatujte (např. 12345678_2023.mdb).
-
Nyní použijte volbu Databáze/Otevřít datovou složku.
-
V otevřeném průzkumníku otevřete složku Data a v ní najděte soubor s daným názvem.
-
Klikněte na soubor pravým tlačítkem myši a použijte volbu Odeslat->Komprimovaná složka (metoda ZIP).
-
Zazipovaný soubor odešlete přes Servisní schránku na webu https://stormware.cz/schranka