Newsgroup: it.comp.appl.access
Titolo: data di creazione del database

ho una procedura che esegue una sfilza di operazioni su un file temporaneo
 
alla fine compatta questo file temporaneo scrivendone uno diverso, 
precedentemente cancellato
 
qui controllo se esiste (Dir_Exist) e cancello, l'operazione viene sempre 
eseguita senza errori
 
If Dir_Exist(Me.APP_PATH & NN & Ty & CO & MA & "DATI_REP.Mdb") <> "" Then 
Kill Me.APP_PATH & NN & Ty & CO & MA & "DATI_REP.Mdb"
 
qui compatto il temp (DATI_REP.MDB) scrivendo quello nuovo
 
DBEngine.CompactDatabase Me.APP_PATH & "DATI_REP.MDB", Me.APP_PATH & NN & 
Ty & CO & MA & "DATI_REP.Mdb"
 
cosa succede?
 
se eseguo il codice normalmente, lasciando fare senza debug, il file di 
destinazione viene correttamente creato ma la data/ora di creazione resta 
inspiegabilmente quella del file precedentemente cancellato (10 luglio)
 
se eseguo passo passo... funziona: la data/ora di creazione č quella del 
momento stesso in cui eseguo l'istruzione (19 luglio)
 
al momento non mi capacito di questa cosa...
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

 
 
addendum: mi serve la data di creazione (gestita da windows e recuperabile 
con 
 
 
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oF = oFSO.GetFile(Me.APP_PATH + MyName)
CreationDate = oF.DateCreated 
 
 
e non quella di ultima modifica del file in quanto ogni volta che lo apro 
viene aggiornata


 addendum: mi serve la data di creazione (gestita da windows
 
le prime prove erano su windows 7, ma confermo che anche server 2016 fa lo 
stesso scherzo :/


 
 
la butto li
mettere uno sleep di qualche secondo prima di scrivere quello nuovo?
se provi a salvarlo in cartella diversa da dove era precedentemente 
salvato quello cancellato cambia qualcosa?
 
BFS

 
 
nope
 
nice try ;)
 
questa č la conclusione della fase di calcolo:
 
https://i.imgur.com/DtbBgZr.png
 
 
e questo č l'elenco dei database disponibili:
 
https://i.imgur.com/wtOkku4.png
 
 
nonostante il ritardo di due secondi il file CANCELLATO e rigenerato ha la 
stessa data di creazione
 
che sia una magagna di NTFS?
 
piů tardi provo a generarlo con un nome diverso e a rinominarlo subito dopo 
(prima devo cercare il codice VBA per l'operazione di rename)


 
 
test con un nome diverso, poi rinominato:
niente da fare :(
 
ora test in una cartella diversa, poi spostamento


 
 
ho modificato il codice per creare il file compattato in temp e poi 
spostarlo nella sua posizione corretta
 
        Dim DBfilename As String
 
        DBfilename = NN & Ty & CO & MA & "DATI_REP.Mdb"
        If Dir_Exist(Me.APP_PATH & DBfilename) <> "" Then
            Kill Me.APP_PATH & DBfilename
        End If
        DBEngine.CompactDatabase Me.APP_PATH & "DATI_REP.MDB", Me.APP_PATH 
& "temp\" & DBfilename
        Name Me.APP_PATH & "temp\" & DBfilename As Me.APP_PATH & DBfilename
 
        DBfilename = NN & Ty & CO & MA & Format(Me.RIFYEAR, "0000") & 
Format(Me.RIFMONTH, "00") & "DATI_REP.Mdb"
        If Dir_Exist(Me.APP_PATH & DBfilename) <> "" Then
            Kill Me.APP_PATH & DBfilename
        End If
        DBEngine.CompactDatabase Me.APP_PATH & "DATI_REP.MDB", Me.APP_PATH 
& "temp\" & DBfilename
        Name Me.APP_PATH & "temp\" & DBfilename As Me.APP_PATH & DBfilename
 
il log riporta i passaggi correttamente eseguiti
 
 
- 10:25:14 Calc phase completed, click on CLOSE, then on STOP to exit
- 10:25:14 Created DATI_REP(YM) CHNANALL202107DATI_REP.Mdb
- 10:25:13 Deleted CHNANALL202107DATI_REP.Mdb
- 10:25:13 Created DATI_REP CHNANALLDATI_REP.Mdb
- 10:25:12 Deleted CHNANALLDATI_REP.Mdb
Import Start : 22/07/2021 10:23:22
Import Stop  : 22/07/2021 10:25:12
Total Time   : 00:01:50
---------------------------------------
 
ho fatto due prove, la prima passo passo per verificare che tutto fosse a 
posto, controllando di volta in volta che il file fosse cancellato, 
costruito in temp, spostato nella cartella giusta
la seconda prova senza fermare il codice
 
la prima (verde) è ok, si vedono i due file evidenziati in verde con la 
data di creazione giusta
 
la seconda (giallo) no, i due file hanno la data di creazione del file 
preesistente, sebbene sia stato cancellato
 
https://i.imgur.com/QBITIrA.png
 
 
ho infine provato infilando un po' di DoEvents dopo le operazioni Kill e 
Name...
 
niente da fare
 
https://i.imgur.com/K0IRCtt.png
 
 
boh...
