Se non ho capito male ci sono diverse cosette da sistemare:
1) tutto il record viene letto in un'unica variabile di tipo Variant (x.Data), poichè l'istruzione Input #fn, x.Data indica l'inserimento di quanto è stato letto in x.Data.
2) il ciclo non è del tutto preciso.
Io comincerei a correggere la struttura del record rendendola identica ai dati presenti nel file (per esempio, da quello che ho capito nel record non esiste un campo id, ma lo gestisci tu nel programma).
Es: Considero un file composto così:
v1 v2 v3
v4 v5 v6
.. .. ..
.. .. ..
codice:
Type giorno
dato1 As String * 2
filler1 As String * 1
dato2 As String * 2
filler2 As String * 1
dato3 As String * 2
filler3 As String * 1
End Type
Attenzione: la dimensione delle variabili della struttura del record DEVE essere uguale a quella dei dati nel file (altrimenti VB legge i dati in modo errato).
Poi, con un ciclo leggi i record del file e inserisci i valori nella Flex:
codice:
'Dichiaro la variabile di appoggio per la struttura del record
Dim x as Giorno
'Apro il file
Open "pippo.dat" For Input As #fn 'o qualcosa di simile...
id = 0
r = 0
Do While Not EOF(fn)
Input #fn, x
id = id + 1
If id >= 17 Then
flex.Row = r
flex.Col = 0
flex.Text = x.dato1
flex.Col = 1
flex.Text = x.dato2
flex.Col = 2
flex.Text = x.dato3
End If
r = r + 1
Loop
Spero di aver capito bene il tuo problema e di averti aiutato con questo esempio.
Ciao