Error -2147217864

Řádek nelze nalézt a aktualizovat. Pravděpodobně byly od posledního čtení změněny některé hodnoty.
Run-time error: -2147217864 (80040e38):
The specified row could not be located for updating. Some values may have been changed since it was last read.

Tato chyba se objeví v případě, že do otevřeného recordsetu ukládáme stejnou hodnotu jaká už v databázi je, a následně tento recordset chceme Updatovat. Sloupec HODNOTA obsahuje znaky „ABCD“ a do stejného sloupce opět vkládám znaky „ABCD“ Procedura skonci popisovanou chybou na červeném řádku při pokusu o rs.Update

Příklad:

sText = „ABCD“
Set rs = DataEnvironment1.rsUloz
DataEnvironment1.Uloz
rs.Fields(„HODNOTA“).Value = sText
rs.Update
rs.Close

Řešení:
Kontrolovat zda vkládaná hodnota není stejná jako již existující záznam v databázi (Stejný výsledek dostaneme i při pokusu o vložení NULL do sloupce který NULL obsahuje).

sText = „ABCD“
Set rs = DataEnvironment1.rsUloz
DataEnvironment1.Uloz
If rs.Fields(„HODNOTA“).Value <> sText Then

rs.Fields(„HODNOTA“).Value = sText
rs.Update

End If
rs.Close

Po této úpravě již procedura proběhne bez uvedené chyby.

About Mirek Šalamon

Jsem programátor na volné noze a cestovatel.
This entry was posted in Visual Basic. Bookmark the permalink.

Comments are closed.