+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Formato data

  1. #1
    L'avatar di clock62
    clock62 non è in linea Scolaretto
    Post
    174
    Like Inviati  
    0
    Like Ricevuti  
    0
    Buona sera a tutti,
    ho un Datagrid popolato di dati, tra questi ci sono delle date che visualizzo correttamente.
    Quando copio il DG su un foglio excel la data mi viene invertita ( da 03 gennaio 08 al 01 marzo 08).
    Qualcuno sa indicarmi quale è l'istruzione giusta da inserire.
    inoltre, come posso fare per copiare i valori di alcune colonne del foglio 1 sul foglio 2?
    Questo è il codice che uso:

    Private Sub Command12_Click()
    ' Copia tutto l'archivio compreso l'intestazione
    Dim oExcel As Object
    Set oExcel = CreateObject("Excel.Application")
    Dim oWorkBook As Object
    Dim oWorkSheet As Object
    Dim i As Integer, j As Integer
    Dim lRow As Long
    Dim LastRow As Long
    Dim LastCol As Long
    oExcel.Visible = True
    oExcel.Workbooks.Open App.Path & "\Richiami.xls"
    Set oWorkSheet = oExcel.Workbooks("Richiami.xls").Sheets("Foglio1")
    oWorkSheet.Range("A1", "AU100").Value = ""
    For i = 1 To DataGrid1.Columns.Count
    oWorkSheet.Cells(1, i) = DataGrid1.Columns(i - 1).Caption
    For j = 0 To DataGrid1.VisibleRows - 1
    oWorkSheet.Cells(j + 2, i) = DataGrid1.Columns(i - 1).CellText(DataGrid1.RowBookmark(j))
    Next j
    Next i
     
      'oWorkSheet.xlApplication.Visible = True
    Set oExcel = Nothing
    Set oWorkBook = Nothing
    Set oWorkSheet = Nothing
    End Sub
    

  2. #2
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Post
    6,238
    Like Inviati  
    21
    Like Ricevuti  
    11
    Se usi un database Access (MDB) è normale, perchè il formato interno della data è quello americano MM/DD/YYYY, quindi dovrai passare la data a Excel usando
    Format(tuaData, "DD/MM/YYYY")
    ℹ️ Leggi di più su gibra ...

  3. #3
    L'avatar di clock62
    clock62 non è in linea Scolaretto
    Post
    174
    Like Inviati  
    0
    Like Ricevuti  
    0
    il file è .dbf e lo apro così:
    strConn = "Provider=VFPOLEDB.1;Data Source=C:\Archivio;"

  4. #4
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Post
    6,238
    Like Inviati  
    21
    Like Ricevuti  
    11
    Quote Originariamente inviato da clock62 Visualizza il messaggio
    il file è .dbf e lo apro così:
    strConn = "Provider=VFPOLEDB.1;Data Source=C:\Archivio;"
    Quindi usi l'accesso a tabelle DBF in modalità 'free table'.
    Se non dipende dal formato del campo del database (io non posso saperlo), allora potrebbe essere il formato data impostato in Excel.

    Hai controllato ?
    Hai provato ad usare la funzione Format() ?
    ℹ️ Leggi di più su gibra ...

  5. #5
    L'avatar di clock62
    clock62 non è in linea Scolaretto
    Post
    174
    Like Inviati  
    0
    Like Ricevuti  
    0
    Grazie della risposta Gibra,
    in effetti il campo del database mi visualizza la data in ingele es: 05/25/2007 nel datagrid vedo 25/05/2007.
    Avendo solo pochissima conoscenza del VB cerco di prendere spunti da libri, esempi e aiuto del forum.
    La mia intenzione era di inserire nel listato proposto una cosa del genere:
    If oWorkSheet.Cells(i) = 7 Then
     oWorkSheet.Cells(j, i) = Format(oWorkSheet.Cells(j, i), "dd/mm/yyyy")
     End If
    
    in modo che quando legge la colonna sette dove è contenuta la data viene trasformata e scritta su excel.
    Il codice così scritto non da errore ma neanche mi cambia la data, sicuramente non è giusto
    Spero in un tuo aiuto e di tutti gli amici del forum. Grazie

  6. #6
    eugenio non è in linea Scolaretto
    Post
    171
    Like Inviati  
    0
    Like Ricevuti  
    0
    Se riesci ad estrarre la data, diciamo data_da_trasferire dal campo del file dbf, puoi provare con questo metodo artigianale:

    data_trasferita=cdate(mid$(data_da_trasferire,4,2) & "/" & mid4(data_da_trasferire,1,2) & "/" & mid$(data_da_trasferire,7,4))

    Ciao.

  7. #7
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Post
    6,238
    Like Inviati  
    21
    Like Ricevuti  
    11
    Quote Originariamente inviato da clock62 Visualizza il messaggio
    Grazie della risposta Gibra,
    in effetti il campo del database mi visualizza la data in ingele es: 05/25/2007 nel datagrid vedo 25/05/2007.
    Avendo solo pochissima conoscenza del VB cerco di prendere spunti da libri, esempi e aiuto del forum.
    La mia intenzione era di inserire nel listato proposto una cosa del genere:
    If oWorkSheet.Cells(i) = 7 Then
     oWorkSheet.Cells(j, i) = Format(oWorkSheet.Cells(j, i), "dd/mm/yyyy")
     End If
    
    in modo che quando legge la colonna sette dove è contenuta la data viene trasformata e scritta su excel.
    Il codice così scritto non da errore ma neanche mi cambia la data, sicuramente non è giusto
    Spero in un tuo aiuto e di tutti gli amici del forum. Grazie
    Beh, se è il database che ha la data in americano (non inglese!) a questo punto non credo che basti la Format() per risolvere.

    Premetto che ODIO Excel perchè è troppo invasivo e formatta i dati come cavolo gli pare!
    Finchè lo usi direttamente, potrebbe anche essere passabile, ma quando devi interagire con l'automazione sono sempre problemi, e non solo con quella.

    Probabilmente non devi formattare la data che passi, ma direttamente la cella di Excel che dovrà contenerla modificando cioè il formato della cella.
    Non ricordo in Excel quale sia il nome della proprietà (potrebbe essere DataFormat, NumberFormat, o qualcosa del genere.).
    Ad ogni modo fai clic destro su una cella di Excel e dal menu dovrebbe esserci la voce.
    Ovviamente dovrai farlo con l'automazione quindi dovrai poi cercare sulla guida VBA di Excel il nome di questa proprietà.
    ℹ️ Leggi di più su gibra ...

  8. #8
    L'avatar di clock62
    clock62 non è in linea Scolaretto
    Post
    174
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ogni volta che ci sono le date di mezzo sono dolori !!!
    Nel listato su esposto c'è un modo per fargli passare ad excel tutto in formato testo ?
    Così potrei poi con la funzione stringa.estrai invertire il mese con il giorno.
    Provandolo a fare adesso che la cella è formattata in Data non mi accetta stringa.estrai.

  9. #9
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Post
    6,238
    Like Inviati  
    21
    Like Ricevuti  
    11
    Quote Originariamente inviato da clock62 Visualizza il messaggio
    Ogni volta che ci sono le date di mezzo sono dolori !!!
    Nel listato su esposto c'è un modo per fargli passare ad excel tutto in formato testo ?
    Così potrei poi con la funzione stringa.estrai invertire il mese con il giorno.
    Provandolo a fare adesso che la cella è formattata in Data non mi accetta stringa.estrai.
    Non funziona.
    Anche se tu passi la data in formato testo Excel 'vede' che è una data, quindi la formatta di conseguenza.
    ℹ️ Leggi di più su gibra ...

  10. #10
    L'avatar di clock62
    clock62 non è in linea Scolaretto
    Post
    174
    Like Inviati  
    0
    Like Ricevuti  
    0
    Inserendo questa istruzione:
    oWorkSheet.Range("A28") = CDate(Mid$(oWorkSheet.Cells(2, 7), 4, 2) & "/" & Mid$(oWorkSheet.Cells(2, 7), 1, 2) & "/" & Mid$(oWorkSheet.Cells(2, 7), 7, 4))
    grazie a l'aiuto di Eugenio riesco a converire la data nel modo giusto.
    Come posso fare ora per mettere questa istruzione quando si sta trasferendo il Datagrid ?
    Set oWorkSheet = oExcel.Workbooks("Richiami.xls").Sheets("Foglio1")
    oWorkSheet.Range("A1", "AU100").Value = ""
    For i = 1 To DataGrid1.Columns.Count
    oWorkSheet.Cells(1, i) = DataGrid1.Columns(i - 1).Caption
    For j = 0 To DataGrid1.VisibleRows - 1
    oWorkSheet.Cells(j + 2, i) = DataGrid1.Columns(i - 1).CellText(DataGrid1.RowBookmark(j))
    Next j
    Next i

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. cambiare il formato di una data
    Da Gaucho972 nel forum Microsoft Word
    Risposte: 6
    Ultimo Post: 06-05-2012, 15:49
  2. Formato Data su access??!??
    Da Minf nel forum Microsoft Access
    Risposte: 12
    Ultimo Post: 01-07-2011, 17:41
  3. Access data da formato data a formato testo
    Da TORNADO71 nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 08-09-2009, 22:02
  4. textbox formato data
    Da alexander nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 21-12-2008, 16:59
  5. Formato data
    Da toronto nel forum Microsoft Word
    Risposte: 2
    Ultimo Post: 19-12-2005, 15:17