Lettura da file testo errore tipo dato



  • Lettura da file testo errore tipo dato
    di Stenthemexican (utente non iscritto) data: 29/07/2015 08:59:00

    Ciao a tutti,
    vi spiego brevemente il mio problema. Ho un file precedentemente creato da un altra sub in random che scrive su file una serie di record. Ogni record non è altro che una variabile type con una serie di campi precedentemente dichiarati come string in quanto gli dovevo dare una lunghezza definita per scriverli su file, compreso il campo DATA (dove viene inserito un dato di tipo date su una variabile string di 10) In fase di scrittura tutto ok, in fase di lettura ok nel momento in cui devo popolare la listbox, ma se leggo per scrivere su celle di excel, nessun problema per i dati di tipo string. Nel momento in cui provo a scrivere data dice che tipo non corrispondente. Non solo se provo a eliminare il codice che ho scritto resta in errore.
     
    Type dbintermec
      dispositivo As String * 2
      seriale As String * 15
      nome As String * 20
      data As String * 10
      assenza As String * 4
      stato As String * 11
      note As String * 200
    End Type
    .
    .
    .
    .
    
    Sub importazione()
       Dim dato As dbintermec
       Set foglio = Sheets("db")
       
       Open "\128.00.0.201REPdbintermec.adrdb" For Random As #1 Len = Len(dato)
          For x = 2 To 35
             Get #1, x, dato
             foglio.Cells(x, "B") = dato.nome
             foglio.Cells(x, "E") = dato.stato
             foglio.Cells(x, "H") = dato.note
             foglio.Cells(x, "C") = dato.data
            
          Next x
       Close #1
    End Sub



  • di Vecchio Frac data: 29/07/2015 11:24:38

    Farei una conversione esplicita della data con CDate prima dell'immissione in cella.
    Dipende anche da come si presenta la data, al limite puoi anche forzare il formato con Format prima del cast esplicito.





  • di stenthemexican (utente non iscritto) data: 01/08/2015 07:50:37

    Trovata soluzione! Nella realtà il problema era banale in quanto il CDate andava in errore nel momento in cui incappava in una stringa vuota in quanto non gli erano stati assegnati valori da convertire.

    Ne sono uscito con un semplice IF