MA....LA DATA????

martedì 17 ottobre 2006 - 10.20

Slave Profilo | Junior Member

allora...ho bisogno che il mio programma estrapoli in un datagrid tutti i record di una tabella del mio DB che vanno da ... a ... !
a vedersi cosi sembra una cosa molto semplice ma il problema e che il campo data del mio db è di tipo stringa ed ha questo formato : YYMMDD....come posso fare???
Sono solo uno sballato in un mondo di sballati....

RedStripe Profilo | Newbie

Prova con una formattazione della variabile prima della visualizzazione:
la sintassi dovrebbe essere una di queste due

newdata = FormatDateTime(data, vbShortDate)

newdata = Format(data, "dd/mm/yyyy")


dove data è la variabile che contiene la data , oppure il campo del recordset che utilizzi

in alternativa puoi prendere le parti della data che ti interessano e ricomporle così:
miadata = Day(data) & "/" & Month(data) & "/" & Year(data)


CIAO!


fasol Profilo | Junior Member

stai occhio in un datagrid tutti i campi caricati vengono caricati come testo e nn con il formato dichiarato nel database... dei convertirlo in una data....

Fammi sapere...



meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....

Slave Profilo | Junior Member

allora.....ho risolto cosi,ho inserito in un modulo di access il seguente codice:

Public Function InverteData(DATA)
If (DATA) <> "" Then


InverteData = Right$(DATA, 2) & "/" & Mid$(DATA, 3, 2) & "/" & Left$(DATA, 2)
InverteData = CDate(Format(InverteData, "dd/mm/yyyy"))
End If
End Function


cosi salvo in una variabile il mio campo stringa DATA ,
dopo di che ho fatto una query dove ho aggiunto un campo e ho scritto:

datanew:invertedata([data])

in questo modo nella mia tabella viene creato un nuovo campo data dove viene visualizzata la data nel suo giusto fotmato e ordine....ed è qui che sorge un nuovo problema.....se carico la vecchia query(quella dove non compare l'espressione per convertire la dat) nel mio datagrid tutto funziona correttamente,ma se carico la query con il nuovo campo il mio datagrid rimane vuoto e non mi carica il recordset....perche?????
Sono solo uno sballato in un mondo di sballati....

fasol Profilo | Junior Member

secondo me è un metodo sbagliato di agire cmq hai provato ad usare nella qry di selezione il carattere speciale # che ti trasforma in data in formato internazionale
la sintassi è
SELECT * FROM tbl WHERE data=# tua data #
oppure potresti usare
SELECT * FROM tbl WHERE #data#=# tua data #


meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....

RedStripe Profilo | Newbie

prova a tipizzare la funzione
e metti un valore di ritorno di tipo date

-> Function invertidata (data) as date


sei sicuro che per fare il lavoro non basta un semplice format come avevo detto?
newdata:format([data];"dd/mm/yyyy")
altra cosa, invece di CDate usa la funzione DateSerial() e passagli i valori di giorno , mese e anno che hai ricavato.

se poi hai fatto una query per visualizzare il nuovo campo data che hai ricavato
allora l' origine dati del tuo datagrid deve essere la nuova query non più la vecchia tabella.

in bocca al lupo!



Slave Profilo | Junior Member

ho risolto....sono stato costretto ad aggiungere un campo al db dove la data vienne inserita nel suo formato normale......e adesso tutto va......grazie!!!
Sono solo uno sballato in un mondo di sballati....
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5