Newsgroup: it.comp.appl.access
Titolo: Conversione date

Salve, scusate l'ignoranza. Ho la necessità di convertire con una Function
una
data proveniente con formato "aaaammgg" da un collegamento OBDC di altro
sistema, in una form Access 2000  nel formato "ggmmaaaa".
Grazie e scusate ancora.
pndec



Salve, scusate l'ignoranza. Ho la necessità di convertire con Function una
data proveniente da un collegamento OBDC di altro sistema su Access 2000 da
un formato "aaaammgg" al formato "ggmmaaaa". Grazie e scusate ancora. pndec

 ha scritto nel messaggio
news:XQ8v6.74107$yl2.6...@news1.tin.it...

Se il controllo che contiene la data importata si chiama DataStringa,
nell'origine controllo del controllo in cui vuoi il risultato scrivi:
=DateSerial(Val(Left([DataStringa];4));Val(Mid([DataStringa];5;2));Val(Right
([DataStringa];2)))
Comunque dai uno sguardo sull'help alla funzione DareSerial.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


^^^^^^^^
Scusami, alla funzione DateSerial.


 ha scritto nel messaggio
news:1hkv6.22004$dJ6.1...@news.infostrada.it...


 Se non ho capito male non puoi risolvere il mio problema?
Non ho detto questo!
Il tuo problema è risolvibilissimo usando la funzione DateSerial unitamente
alle funzioni per la manipolazione delle stringhe (Left, Mid, Right ecc.).
Naturalmente la sintassi delle funzioni suddette cambia a seconda che le
adoperi in un codice VBA oppure no.


 wrote in message
ffkv6.21994$dJ6.1...@news.infostrada.it...



Ciň che visualizzi č solo un problema del formato e non del valore del
campo/controllo/variabile; la rappresentazione interna di un
campo/variabile/controllo di tipo Data/ora č un numero reale che contiene
nella parte intera la data e nei decimali l'ora.
Insomma l'8 marzo 2001 č memorizzato con il numero 36958; lo vedi come
08/03/2001 se il formato č gg/mm/aaaa e lo vedi come 8/3/2001 se il formato
č g/m/aaaa.
Poichč nella query il confronto viene effettuato con il valore e non con il
formato di un campo la tua ricerca non funziona, a mio modesto parere,
perchč i criteri potrebbero non essere stati scritti correttamente.
Perchč non provi a postare il codice SQL della query, cosě possiamo dare
un'occhiata alla clausola Where?
Ti ricordo che, quando si lavora con il codice SQL (quindi nelle query) le
date vanno espresse nella forma mm/dd/yyyy, e se non lo sono vanno
formattate (vedi anche Sito Comune, Sezione Queries, "Problemi con le date
nelle stringhe SQL." di Federico Luciani).


 Perchè non provi a postare il codice SQL della query, così possiamo dare



[CUT]
Le risposte scrivile dopo e non prima dei messaggi precedenti.
Nei criteri di una query le costanti data vanno scritte racchiuse tra due
caratteri # (#08/03/2001#).



Un dubbio: la data compresa fra i caratteri # nella query dovrà essere
sempre in formato mese/giorno/anno o anche nel formato giorno/mese/anno?
dickie

 ha scritto nel messaggio
news:9aq5gc$57d$1...@pegasus.tiscalinet.it...

Se la costante la stai scrivendo nella riga criteri della griglia di una
query, scriverai:
#08/03/2001#
se invece la stai scrivendo in un codice SQL, la scriverai:
#3/8/2001#


 wrote in message
4a1A6.27107$wG3.1...@news.infostrada.it...


 Ciao Axel
[CUT]
In questo caso nei criteri devi scrivere solamente
[Inserisci Data:]
e nella finestra di dialogo scrivi solamente
8/3/2001
Dal modo con cui digiti la costante Access capisce che è una data, così come
avviene quando la digiti in un controllo non associato di una maschera.


 avviene quando la digiti in un controllo non associato di una maschera.
Ciccia no va, se imposto [Inserisci Data:] anche mettendo 08/03/2001
8/3/2001 3/8/2001 non esce nessun
record.
SELECT DISTINCTROW PREZZICLIENTI.CodiceArt, PREZZICLIENTI.UltimaData,
DateSerial(Val(Left([UltimaData],4)),Val(Mid([UltimaData],5,2)),Val(Right([U
ltimaData],2))) AS Espr1
FROM PREZZICLIENTI.CodiceArt
GROUP BY PREZZICLIENTI.CodiceArt, PREZZICLIENTI.UltimaData,
DateSerial(Val(Left([UltimaData],4)),Val(Mid([UltimaData],5,2)),Val(Right([U
ltimaData],2)))
HAVING ((PREZZICLIENTI.CodiceArt="237136") AND
((DateSerial(Val(Left([UltimaData],4)),Val(Mid([UltimaData],5,2)),Val(Right(
[UltimaData],2))))=[Inserisci Data:]));
Una cosa ho creato una query a campi incrociati usando la trasformazione
della data 20010101 in 01/01/2001 dove non c'è data access non visualizza il
record, anche se il join è corretto (esterno, tutti i record della prima
tabella e solo quelli della seconda tabella) e c'è l'errore "uso di null non
valido", se invece non uso la trasformazione (faccio scrivere la data
20010101) il join funziona.
TRANSFORM First([Acquistato Vasto Ss].UltimaData) AS PrimodiUltimaData
SELECT [ASSORTIMENTO VS SS].[Ordine scaffale], [ASSORTIMENTO VS
SS].Codice_Articolo, [ASSORTIMENTO VS SS].DescrizPrimariaArtic,
[ASSORTIMENTO VS SS].[Codice Ean], [ASSORTIMENTO VS SS].Note,
ESISTENZA.Esis, LISTINO2.Prezzo
FROM (([ASSORTIMENTO VS SS] LEFT JOIN ESISTENZA ON [ASSORTIMENTO VS
SS].Codice_Articolo = ESISTENZA.Codice_Articolo) LEFT JOIN LISTINO2 ON
[ASSORTIMENTO VS SS].Codice_Articolo = LISTINO2.Codice_Articolo) LEFT JOIN
[Acquistato Vasto Ss] ON [ASSORTIMENTO VS SS].Codice_Articolo = [Acquistato
Vasto Ss].CodiceArticolo
GROUP BY [ASSORTIMENTO VS SS].[Ordine scaffale], [ASSORTIMENTO VS
SS].Codice_Articolo, [ASSORTIMENTO VS SS].DescrizPrimariaArtic,
[ASSORTIMENTO VS SS].[Codice Ean], [ASSORTIMENTO VS SS].Note,
ESISTENZA.Esis, LISTINO2.Prezzo
PIVOT [Acquistato Vasto Ss].CodClienteFornitore;
Ciao Axel

 Ciao Axel



per favore, eviteresti di indicare un address che appartiene ad altri?