Vlastnosť údajov Access objekty (DAO) Lastaktualizovaných vráti nesprávne dátumy/časy v databáze programu Microsoft Access

Pokročilé: vyžaduje expert kódovanie, interoperabilitu a viacerými používateľmi zručnosti.Tento článok sa vzťahuje len na databázu programu Microsoft Access (. mdb).

Príznaky

Vlastnosť údajov Access objekty (DAO) Lastaktualizovaných vráti nesprávne dátumy/časy pre formuláre programu Microsoft Access, zostavy, makrá a moduly.

Príčina

Microsoft Access neoznamuje databázový nástroj Microsoft Jet o úprave objektov špecifických pre prístup (formuláre, zostavy, makrá a moduly); preto Dateupdate stĺpec v tabuľke Msysobjects nie je nikdy aktualizovaný na správny dátum a čas. Rovnaké správanie platí pre Microsoft Access 2007, ktorý používa databázový nástroj Microsoft Access.

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené na začiatku tohto článku.

Ďalšie informácie

Vlastnosť Lastaktualizovaných , ktorú poskytol DAO, vráti správny dátum a čas pre objekty databázového motora (tabuľky, dotazy a vzťahy), ale vráti iba dátum vytvorenia, nie posledný upravený dátum pre špecifické objekty programu Microsoft Access (formuláre, zostavy, makrá a moduly). Pred Microsoft Access 2000, program Microsoft Access používa Jet Database (. mdb) súbor uložiť obe databázové objekty (tabuľky, dotazy a vzťahy), ako aj Microsoft Access špecifické objekty (formuláre, zostavy, makrá a moduly). Microsoft Access uložené svoje konkrétne objekty v tabuľkách Jet systému, konkrétne MSysObjects a MSysModules (alebo MSysModules2) tabuliek. Dateupdate stĺpec v tabuľke MSysObjects je zodpovedný za uloženie objektu posledný dátum modifikácie a je stĺpec, ktorý vlastnosť DAO lastaktualizovaných používa na vrátenie objektu posledný upravený dátum. Keď používateľ upravil a uložil objekt v starších verziách, Microsoft Access oznámila Jet databázový nástroj, ktorý objekt bol upravený a Jet aktualizovaný Dateupdate stĺpec aktuálny dátum a čas. Microsoft Access 2000 predstavil Access Project (. adp) súbory, ktoré majú schopnosť pripojiť priamo k databázam Microsoft SQL Server bez použitia Jet databázový engine. Pretože ADP súbory nepoužívajú databázový nástroj Jet (alebo databázový nástroj Access), prístup nemohol použiť rovnaký formát ukladacieho priestoru predtým používané v Jet databáz pre prístup špecifické objekty. To muselo uložiť v novom formáte OLE doc skladovanie, ktorý je prístupný v oboch Jet databáz a prístup projektov. Keď používateľ najprv vytvorí nový špecifický objekt programu Microsoft Access, napríklad formulár), databázový nástroj stále zadá aktuálny dátum a čas do Datecreate a dateupdate stĺpce v tabuľke MSysObjects. Avšak, keď používateľ upraví a uloží objekt, Microsoft Access neoznámi databázový engine; preto Dateupdate stĺpec vždy zostane rovnaká. Okrem toho možno ste si všimli, že okno databázy (vo verziách pred prístup 2007) a navigačná tabla v programe Access 2007 alebo Access 2010 zobrazuje správny dátum a Čas poslednej modifikácie objektu. Je to spôsobené tým, že program Microsoft Access používa vlastný interný mechanizmus na ukladanie dátumu vytvoreného a dátumu úpravy nezávisle od databázového nástroja. Bohužiaľ, Microsoft Access nevystavuje tieto informácie vo svojom objektovom modeli; Preto neexistuje žiadny programový spôsob, ako získať tieto informácie v programe Microsoft Access.

Kroky na reprodukovanie správania

  1. Spustite program Microsoft Access a potom vytvorte novú prázdnu databázu.

  2. Vytvorte nový prázdny formulár v návrhovom zobrazení.

  3. Pridať textové pole do formulára.

  4. Uložte formulár ako Frmlastaktualizovanýcha potom ho zavrite.

  5. V Access 2003 a staršie verzie programu Access, vyberte zobrazenie menu a kliknite na tlačidlo Podrobnosti. V programe Access 2007 alebo Access 2010, kliknite pravým tlačidlom myši na hlavičku kategórie na navigačnej table vľavo a kliknite na položku Zobraziť podľa podrobností. Zobrazí upravené a vytvorené dátumy pre každý objekt. Všimnite si, že modifikované a vytvorené stĺpce pre frmlastaktualizovanú formulár sú nastavené na rovnaký dátum a čas.

  6. Stlačením kombinácie klávesov CTRL + G otvorte okno Immediate v editore jazyka Visual Basic. (V programe Access 2007 alebo Access 2010, musíte najprv povoliť obsah alebo databáza musí byť v dôveryhodnom umiestnení.)

  7. Do okna Immediate zadajte nasledovný riadok a stlačte kláves ENTER:

    ?CurrentDb.Containers("Forms").Documents("frmLastUpdated").LastUpdated

    Všimnite si, že dátum a čas vrátený zodpovedá upravené a vytvorené stĺpce v okne databázy.

  8. Stlačením klávesov ALT + F11 prepnite späť do programu Microsoft Access.

  9. Otvorte Frmlastaktualizovanú formulár v návrhovom zobrazení.

  10. Do formulára pridajte druhé textové pole a potom ho uložte a zavrite. Všimnite si, že upravený stĺpec v okne databázy obsahuje aktualizovaný dátum a čas pre formulár.

  11. Opakujte kroky 7 a 8.

Poznámka: Vlastnosť Lastaktualizovaných stále vráti pôvodný dátum a čas namiesto nový dátum a čas zobrazený v stĺpci upravený v okne databázy.

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Považujete poskytnuté informácie za užitočné?

Ďakujem za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×