Spremembe v drevesu se ne shranijo
Vozlišče, ki ste ga v pogledu obrazca preimenovali, premaknili, dodali ali izbrisali, ali celica, ki ste jo
uredili v drevesnem seznamu, je v kontrolniku videti spremenjena, tabela pa je nespremenjena; po Requery ali
ponovnem odprtju obrazca sprememba izgine.
Okolje
Vse različice kontrolnikov WklTreeView in WklTreeList.
Vzrok
Velja eno od naslednjega:
AutoSaveje False: spremembe vplivajo samo na prikaz. Celico je takrat mogoče urejati ne glede na to, kaj dovoljuje vir; vnesena vrednost ostane na zaslonu, doklerRequeryznova ne prebere vira.ValidateCellpride, preden je vrednost prevzeta (sCancel),AfterCellUpdatepa po tem (brez njega). Aplikacija, ki spremembo zapiše sama (na primer s shranjeno proceduro), to naredi vValidateCellin prekliče, če pisanje ne uspe, kerAfterCellUpdateprikaza ne more več razveljaviti; vrednosti, ki jih pisanje spremeni drugje (različica vrstice, časovni žig), se prikažejo poRequery.- Drevo je bilo naloženo iz
Recordsetali zLoadFromFile,LoadFromStream,LoadFromStringaliAsJSONbrezRecordSource: ni vira zapisov, v katerega bi lahko pisal. BeforeUpdate(aliAfterLabelEdit,NodeDrop,ValidateCell) je nastavilCancel = True; celotna operacija je bila razveljavljena.- Access je pisanje zavrnil (pravilo za veljavnost, obvezno polje, zaklenjen vir ali vir samo za branje, na primer poizvedba, ki je ni mogoče posodobiti). Drevo takrat ostane nespremenjeno,
DataErrorpa sporoči vzrok.
Rešitev
- Preverite
AutoSave(list z lastnostmi, zavihek Drugo). - Če je treba spremembe shraniti, vežite z
RecordSourcenamesto zRecordset. Obravnavajte
DataError, da vidite sporočilo Accessa:Private Sub Tree1_DataError(ByVal DataErr As Long, ByVal Description As String, Response As Integer) Debug.Print DataErr, Description End Sub- Preverite, ali je vir zapisov mogoče posodobiti: odprite ga kot podatkovni list in isto polje spremenite ročno.
sl/wiki/msaccess/comctl/troubleshooting/changes-not-saved.txt · Zuletzt geändert: von Wolfgang van der Stille