Newsgroup: it.comp.lang.visual-basic
Titolo: Formattare date in una griglia

Buongiorno a tutti, scusate la banalità del problema, ma MI SONO
BLOCCATO....
Sto realizzando 1 programmino banale in VB6.0 che fa 1 ricerca su un
database di polizza assicurative. Tra i tanti campi, ho INIZIO e FINE
polizza in formato data/ora ( access ) e fin qui....
Faccio 1 select normalissima, va a buon fine, la faccio eseguire
        rkcercapoli.Open strcercascadenza, con, 1, 3
setto la mia griglia :
          Set griglia.DataSource = rkcercapoli
e qui...problema!!!!!!!!
mi visualizza i valori nella griglia ( NOME , COGNOME ) ma il campo
data lo visualizza in modo strano....
Sul DB è in formato gg/mm/aaaa sulla griglia mi viene mm/gg/
aaaa.......
COME POSSO FAREEE
Grazie anticipatamente a tutti, vi prego di essere il più chiaro
possibile data la mia inesperienza
Grazie ancora

 aaaa.......
Sul DB è una data, quindi non ha formato.
Sulla griglia segue le impostazioni locali dell'utente.
Quindi, o l'utente che utilizzi ha le proprie impostazioni di data in 
mm/gg/aaaa, oppure c'è stato qualche traffico strano in fase di 
inserimento.
Ma ovviamente senza avere un po' di codice, non si può dire niente 
altro.
Alberto
-- 
La forza di volontà è guardare negli occhi una ragazza in topless.

 altro.
Imho potrebbe essere anche il provider ADO o quel che è.
Potrebbe controllare
Rs("CAMPODATA").Type e vedere cosa viene fuori.

Grazie x le risposte....
"""" Quindi, o l'utente che utilizzi ha le proprie impostazioni di
data in
mm/gg/aaaa, oppure c'è stato qualche traffico strano in fase di
inserimento  """"
X quanto riguarda le impostazioni utente non dovrei avere problemi,
anche xkè le date dei file e quelle in genere di windows le visualizzo
correttamente....Posto parte di codice
strcercascadenza = "SELECT Poliz.npolizza, Poliz.targa,
anagrafica.nome, anagrafica.cognome, Poliz.datainizio,
anagrafica.indirizzo1, Poliz.datafine "
strcercascadenza = strcercascadenza & " FROM anagrafica INNER JOIN
Poliz ON anagrafica.codanag = Poliz.codanag "
 If Len(gg.Text) = 0 Then
        Else
            If flag_primo = 1 Then
                 strcercascadenza = strcercascadenza & " AND
(day([datafine])) = " & gg.Text & ""
            Else
                strcercascadenza = strcercascadenza & " where
((day([datafine]))) = " & gg.Text & ""
                flag_primo = 1
           End If
        End If
        If Len(mm.Text) = 0 Then
        Else
            If flag_primo = 1 Then
                 strcercascadenza = strcercascadenza & " AND
(month([datafine])) = " & mm.Text & ""
            Else
                strcercascadenza = strcercascadenza & " where
((month([datafine]))) = " & mm.Text & ""
                flag_primo = 1
           End If
        End If
        If Len(aaaa.Text) = 0 Then
        Else
            If flag_primo = 1 Then
                 strcercascadenza = strcercascadenza & " AND
(year([datafine])) = " & aaaa.Text & ""
            Else
                strcercascadenza = strcercascadenza & " where
((year([datafine]))) = " & aaaa.Text & ""
                flag_primo = 1
           End If
        End If
Set rkcercapoli = New ADODB.Recordset
    rkcercapoli.Open strcercascadenza, con, 1, 3
   appo = rkcercapoli.RecordCount
    MsgBox (num & appo)
        If rkcercapoli.EOF Then
            MsgBox (" Non sono presenti polizze con scadenza pari a :
")
        Else
           Set griglia.DataSource = rkcercapoli
        End If
End Sub
gli oggetti gg mm aaaa sono combo box, e griglia è 1 MSHFlexgrid!!!
X rispondere ad Andrea, non so come fare quel controllo, posso solo
dirti che la " formazione " della query è corretta.....
GRAZIE ANCORA

 gli oggetti gg mm aaaa sono combo box, e griglia è 1 MSHFlexgrid!!!
A parte alcuni appunti sulla mancanza di controlli sull'apertura del 
recordset e sulla sua caratterizzazione (CursorType, CursorSide, 
ecc...), diciamo che le cose potrebbero funzionare anche così.
Andrei a questo punto a controllare l'inserimento dei dati.
Posta per piacere la composizione della stringa SQL di inserimento, in 
particolare nella formattazione della data nella sintassi del db che 
utilizzi (a proposito, qual'è?).
Poi verificherei che il tipo del campo Data nel db sia effettivamente 
data e non testo.
Ciao
Alberto
-- 
Friedrich Nietzsche: Un po' di salute ogni tanto è il miglior rimedio 
per l'ammalato.

 
e.palo...@email.it
 scriveva il 18/12/2007 :

Ti posto il codice di inserimento, cmq ho controllato e la data è in
formato date/ora (gg/mm/aaaa)
If gg.Text = "" And mm.Text = "" And aaaa.Text = "" Then
     MsgBox (" DATA INIZIO POLIZZA : Dati obbligatori ")
    Else
        If gg.Text = "" Or mm.Text = "" Or aaaa.Text = "" Then
            MsgBox "DATA INIZIO POLIZZA incompleta", 64
            Exit Sub
            If gg.Text = "" Then
            MsgBox "DATA INIZIO POLIZZA incompleta", 64
              Exit Sub
                gg.SetFocus
                flag_obbligatorio = 1
            ElseIf mm.Text = "" Then
            MsgBox "DATA INIZIO POLIZZA incompleta", 64
              Exit Sub
                mm.SetFocus
                flag_obbligatorio = 1
            ElseIf aaaa.Text = "" Then
                MsgBox "DATA INIZIO POLIZZA incompleta", 64
              Exit Sub
                aaaa.SetFocus
                flag_obbligatorio = 1
            End If
        End If
    End If
    If Len(LTrim(numeropolizza)) = 0 And Len(LTrim(targa)) = 0 And
Len(LTrim(tiposcadenza)) = 0 And Len(LTrim(datainizio)) = 0 And
Len(LTrim(datafine)) = 0 Then
        MsgBox "NUMERO POLIZZA, TARGA, TIPO SCADENZA, DATA INIZIO
POLIZZA, DATA SCADENZA POLIZZA sono dati obbligatori", 64
        flag_obbligatorio = 1
    Else
                If Len(LTrim(numeropolizza)) = 0 Then
                MsgBox "NUMERO POLIZZA: Dato obbligatorio", 64
                numeropolizza.SetFocus
                flag_obbligatorio = 1
            Else
                If Len(LTrim(targa)) = 0 Then
                    MsgBox "TARGA: Dato obbligatorio", 64
                    nome.SetFocus
                    flag_obbligatorio = 1
              Else
                If Len(LTrim(tiposcadenza)) = 0 Then
                    MsgBox "TIPO SCADENZA: Dato obbligatorio", 64
                    nome.SetFocus
                    flag_obbligatorio = 1
              Else
               End If
            End If
        End If
    End If
If flag_obbligatorio = 1 Then   '' verifica l'esistenza di cognome
nome e codice fiscale come dati obbligatori
        MousePointer = 0
        Exit Sub
    End If
    strsql = " select* from Poliz "
Set rekpoliz = New Recordset
rekpoliz.Open strsql, con, 1, 3
        rekpoliz.AddNew
        If Len(codanagra) <> 0 Then
            rekpoliz("codanag") = LTrim(RTrim(codanagra))
            flag_ins = 1
        End If
        If Len(numeropolizza) <> 0 Then
            rekpoliz("npolizza") = LTrim(RTrim(numeropolizza))
            flag_ins = 1
        End If
        If Len(compagnia) <> 0 Then
            rekpoliz("compagnia") = LTrim(RTrim(compagnia))
            flag_ins = 1
        End If
            If Len(targa) <> 0 Then
            rekpoliz("targa") = LTrim(RTrim(targa))
            flag_ins = 1
        End If
        If Len(tiposcadenza) <> 0 Then
            rekpoliz("tiposcad") = LTrim(RTrim(tiposcadenza))
            flag_ins = 1
        End If
        If Len(datainizio) <> 0 Then
            rekpoliz("datainizio") = LTrim(RTrim(datainizio))
            flag_ins = 1
        End If
        If Len(datafine) <> 0 Then
            rekpoliz("datafine") = LTrim(RTrim(datafine))
            flag_ins = 1
        End If
         If flag_ins = 1 Then
            rekpoliz.Update
            MsgBox "Nuovo Polizza inserita CORRETTAMENTE", 64
End If
End Sub
TI RICORDO CHE GG MM AAAA SONO COMBO BOX,  nn so se può creare
problemi....sto diventando scemo.....scherzo, già lo ero...

             rekpoliz("datafine") = LTrim(RTrim(datafine))
Questa proprio non la seguo..
Se il campo datafine del db è di tipo Data, allora anche la variabile 
che inchiodi nel .Value del Field deve essere di tipo data. Ma una 
variabile di tipo data non è una stringa, quindi applicando Len LTrim 
ed RTrim si va a fare una conversione implicita che non ha senso.
Scusami, ma proprio non ci capisco più niente.
Pur avendo io visto cose che voi umani..., cose così non ne ho mai 
viste...
Alberto
-- 
Karl Marx: Le circostanze fanno l'uomo non meno di quanto l'uomo faccia 
le circostanze.

 dirti che la " formazione " della query è corretta.....
Metti la msgbox dove ti ho indicato, sostituendo nome campo al nome del
campo DATA. Dicci cosa appare nella msgbox.
Se non ti appare 7 c'è qualcosa che non va....