Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

access convertire formato data da americano ad europeo

47 views
Skip to first unread message

Marco Ferrato

unread,
Sep 23, 2022, 12:00:24 PM9/23/22
to
buon pomeriggio a tutti. Non riesco a capire come risolvere il problema che mi pongo.
Ho una tabella A e non devo modificare alcuna formattazione dei suoi campi , visto che è collegata ad altro database che poi entrerebbe in conflitto in caso di cambiamento della formattazione. Contiene due campi (DataRilascio e DataScadenza) formattati come test , ordinato come YYYYDDMM (nota bene: 8 caratteri senza alcuna separazione).
Ho creato una maschera m_A che ricalca ogni campo che mi serve per correggere alcuni dati che riscontro essere errati o da aggiornare. Vorrei trovare un modo per visualizzare DataRilascio e DataScadenza in formato DDMMYYYY e per effettuarvi gli aggiornamenti nello stesso formato DDMMYYY. Parallelamente, in maniera del tutto automatica, questa data vorrei fosse aggiornata nella tabella A con il formato originario YYYYDDMM .

in rete avevo trovato una soluzione da riportare in VBA ma non riesco ad adattarla alla mia maschera ed ai suoi campi

vardtedate = CDate(Format(Me.dtedate.Value, "dd/mm/yyyy"))
DoCmd.RunSQL "INSERT INTO table (dtedate) VALUES (#" & Format(vardtedate, "yyyy-mm-dd") & "#);"

al posto di Me.dtedate.Value ho provato con Me.DataRilascio
e dal posto di INSERT INTO table (dtedate) ho provato con
INSERT INTO table (A)

Tra l'altro mi chiedo, se inserire l'istruzione all'evento afterupdate del campo DataRilascio o se inserirla nell'evento Load della Maschera m_A

Sicuramente faccio qualche sbaglio madornale visto che uso il VBA solo a tentoni senza averlo mai studiato tramite un libro, i vs chiarimenti sono graditi e vi ringrazio anticipatamente

Marco Ferrato

unread,
Sep 23, 2022, 4:01:22 PM9/23/22
to
in alternativa pensavo di ingannare access attivando all'apertura della maschera m_A la richiesta di sostituire tutti i campi della colonna DataRilascio con un nuovo ordine di lettura dove aggiungerei lo slash di separazione e succesivamente all'evento di chiusura della stessa maschera aggiungere una formula più o meno inversa che riporta i numeri alla versione originale, compatibile con l'altro database.
Questa sarebbe l'istruzione della prima fase (all'apertura della maschera) ma purtroppo vedo che non funziona

Private Sub Form_Open(Cancel As Integer)

[tables]![A]![DataRilascio] = CDate(Right([tables]![A]![DataRilascio], 2) & "/" & Mid([tables]![A]![DataRilascio], 5, 2) & "/" & Left([tables]![A]![DataRilascio], 4))
End Sub

La formula inversa non vien riportata perché dipende ovviamente dalla riuscita di quella precedente che non mi è andata a buon fine
0 new messages