Andmepääsuobjektid (DAO) LastUpdated atribuudi tagastab vale kuupäevad/kellaajad Microsoft Accessi andmebaasis

Täpsem: nõuab asjatundjate kodeerimist, koostalitlusvõimet ja multikasutajaoskust.See artikkel kehtib ainult Microsoft Accessi andmebaasifaili (. mdb).

Sümptomid

Andmepääsuobjektid (DAO) Lastupdated atribuudi tagastab vale kuupäevad/kellaajad Microsoft Accessi vormid, aruanded, makrod ja moodulid.

Põhjus

Microsoft Access ei teavita Microsoft Jet andmebaasimootorit Accessi kindlate objektide (vormid, aruanded, makrod ja moodulid) muutmisest; Seetõttu ei värskendata Dateupdate veeru MSysObjects tabelis õige kuupäev ja kellaaeg. Sama käitumine on tõsi Microsoft Access 2007, mis kasutab Microsoft Accessi andmebaasimootor.

Olek

Microsoft on kinnitanud, et see probleem on Microsofti toodetes, mis on loetletud käesoleva artikli alguses.

Lisateave

Selle Lastupdated atribuudi Dao tagastab õige kuupäev/kellaaeg andmebaasimootor objektid (tabelid, päringud ja seosed), kuid see tagastab ainult loomise kuupäev, mitte viimase muudetud kuupäev Microsoft Accessi konkreetsed objektid (vormid, aruanded, makrod ja moodulid). Enne Microsoft Access 2000 kasutas Microsoft Access Jet-andmebaasifaili (mdb), et salvestada nii andmebaasiobjekte (tabelid, päringud ja seosed) kui ka Microsoft Accessi spetsiifilisi objekte (vormid, aruanded, makrod ja moodulid). Microsoft Access säilitas oma konkreetsed objektid Jet süsteemi tabelid, konkreetselt MSysObjects ja MSysModules (või MSysModules2) tabelid. Tabelis MSysObjects veeru Dateupdate vastutab objekti viimase muutmise kuupäeva talletamiseks ja on veerg, mis Dao lastupdated atribuut kasutab objekti viimase muutmise kuupäev tagasi. Kui kasutaja muudetud ja salvestatud objekti varasemates versioonides, teatas Microsoft Access Jet andmebaasi mootor, et objekt oli muudetud ja Jet värskendatud Dateupdate veeru praeguse kuupäeva ja kellaaja. Microsoft Access 2000 kasutusele Accessi projekti (. adp) faile, mis on võime ühendada otse Microsoft SQL serveri andmebaasid Jet andmebaasimootorit kasutamata. Kuna ADP faile ei kasuta Jet andmebaasi mootor (või Accessi andmebaasimootor), Access ei saa kasutada sama salvestusvorming varem Jet andmebaasid Accessi kindlate objektide. See pidi neid salvestada uue OLE doc ladustamise vormingus, mis on kättesaadav nii Jet andmebaasid ja Accessi projektid. Kui kasutaja algselt loob uue Microsoft Accessi konkreetse objekti, näiteks vormi), andmebaasi mootor sisestab endiselt praegune kuupäev ja kellaaeg Datecreate ja Dateupdate veergude MSysObjects tabelis. Kuid kui kasutaja muudab ja salvestab objekti, Microsoft Access ei teavita andmebaasimootorit; Seetõttu jääb Dateupdate veerg alati samaks. Lisaks võib olla märganud, et andmebaasi aken (versioonides enne juurdepääsu 2007) ja navigeerimispaanil Access 2007 või Access 2010 kuvatakse õige kuupäev ja kellaaeg objekti viimase muudatuse. Seda sellepärast, et Microsoft Access kasutab oma sisemise mehhanismi loodud kuupäeva ja muutmiskuupäeva talletamiseks, sõltumatu andmebaasimootorit. Kahjuks ei avalda Microsoft Access seda teavet oma objektimudelis; Seetõttu ei ole programmiline viis saada selle teabe Microsoft Accessi.

Käitumise taasesilekutsumise sammud

  1. Käivitage Microsoft Access ja looge uus tühi andmebaas.

  2. Saate kujundusvaates luua uue tühja vormi.

  3. Saate vormile lisada tekstiboksi.

  4. Salvestage vorm Frmlastupdatedja seejärel sulgege see.

  5. Access 2003 ja Accessi varasemates versioonides valige menüü Vaade ja klõpsake nuppu üksikasjad. Rakenduses Access 2007 või Access 2010 paremklõpsake vasakpoolsel navigeerimispaanilkategooria päist ja klõpsake käsku Kuva üksikasjadega. See kuvab iga objekti muudetud ja loodud kuupäevad. Pange tähele, et nii muudetud ja loodud veergude frmLastUpdated vormi on seatud sama kuupäeva ja kellaaja.

  6. Vajutage klahvikombinatsiooni CTRL + G vahetu akna avamiseks Visual Basic Editoris. (Rakenduses Access 2007 või Access 2010 peate esmalt lubama sisu või andmebaasi peab olema usaldusväärses asukohas.)

  7. Tippige järgmine rida vahetu akna ja vajutage sisestusklahvi ENTER:

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

    Pange tähele, et tagastatud kuupäev ja kellaaeg vastab andmebaasi aknas muudetud ja loodud veergudele.

  8. Vajutage klahvikombinatsiooni ALT + F11, et naasta Microsoft Accessi.

  9. Avage frmLastUpdated vormi Kujundusvaade.

  10. Lisage vormile teine tekstiboks ning salvestage ja sulgege see. Pange tähele, et andmebaasi aknas muudetud veerg sisaldab värskendatud kuupäeva ja kellaaja vormi.

  11. Korrake samme 7 ja 8.

MärkusLastupdated atribuudi ikka tagastab algse kuupäeva ja kellaaja asemel uue kuupäeva ja kellaaja muudetud veerus andmebaasi aken.

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×