Newsgroup: it.comp.lang.visual-basic
Titolo: sto impazzendo con le date!!!!

ragazzi,  in una tabella di un  database access, ho un archivio di
indirizzi di documenti creati....
La tabella è così composta:
IDDoc, IDtipoDoc, Nomedoc, Data, Destinatario, Autore, Oggetto,
Attne...
i documenti sono stati registrato dal 97 al 2005....
Ho implementato la ricerca dei file per mezzo di caselle di testo in
cui si scelgono le condizioni, visualizzo poi i file in una
MSHFlexGrid...
Il fatto è che non mi visualizza tutti i documenti ma si arresta a
dicembre 99....
se poi faccio query richiedendo dal 2001 in poi mi si ferma tipo al
2003,..... che succede? dove sbaglio?... una query semplice è postata
qui, dovrebbe prelevare tutti i documenti Fax fatti da sempre, senza
filtro date...
Dim cn As ADODB.Connection ' DICHIARO L'OGGETTO CONNECTION
    Dim rs As ADODB.Recordset  ' DICHIARO L'OGGETTO RECORDSET
 Set cn = New ADODB.Connection
        Set rs = New ADODB.Recordset
        ' APRO LA CONNESSIONE E LANCIO LA QUERY PER RECUPERARE IL
RECORD SELEZIONATO
        cn.Open "driver={Microsoft Access Driver
(*.mdb)};dbq=GESDOC.mdb"
        rs.Open "SELECT * FROM TDocumenti WHERE IDTipoDoc = '" &
txtTipoDoc.Text & "' ", cn, 1
 ' passo i dati alla MSHFlexGrid
   Set MSHFlexGrid1.DataSource = rs
     Set MSHFlexGrid1.DataSource = rs
' Fisso la dimensione di ogni colonna in larghezza
 With MSHFlexGrid1
.ColWidth(0) = 300
.ColWidth(1) = 800
.ColWidth(2) = 800
.ColWidth(3) = 1400
.ColWidth(4) = 1400
.ColWidth(5) = 800
.ColWidth(6) = 800
.ColWidth(7) = 3000
.ColWidth(8) = 1400
'Fisso la centratura del testo nella colonna
.ColAlignment(0) = flexAlignCenterCenter
.ColAlignment(1) = flexAlignCenterCenter
.ColAlignment(2) = flexAlignCenterCenter
.ColAlignment(3) = flexAlignCenterCenter
.ColAlignment(4) = flexAlignCenterCenter
.ColAlignment(5) = flexAlignCenterCenter
.ColAlignment(6) = flexAlignCenterCenter
.ColAlignment(7) = flexAlignCenterCenter
.ColAlignment(8) = flexAlignCenterCenter
End With
rs.Close
cn.Close

 La cosa da ridere è che i filtri funzionatutti, cioè nessun errore
di connessione o che cosa, ma nessuno fa il suo dovere fino in fondo...
se incrocio i campi di ricerca, ottengo delle cose assurde...
Ad esempio è possibile che il recordset inizia a scorrere e poi si
blocca all'improvviso? per quale motivo logico? io non ne vedo...mah...

COME PENSAVO!!!!!
Ho fatto un test passando i dati ad una cmbbox e li prende tutti
regolarmente!!!
Il problema sta sulla MSHFlexGrid...... cosa sbaglio?

Allora, dopo una lunga ricerca estenuante ho scoperto che il
MSHFlexGrid legge solo fino ad un massimo di 2048
record!!!!!!!!!!!!!!!!!!!!!!!!
quindi dal sito microsoft ho trovato come risolvere il problema: questo
è il codice per chi ne è interessato:
sostituire l'assegnazione della MSHFlexGrid con questo: ( a partire da
set MSHFlexGrid.Data....
  rs.MoveLast
   rs.MoveFirst
   Dim rsVar As Variant
   Dim i As Integer
    MSHFlexGrid1.Rows = rs.RecordCount + 1
   rsVar = rs.GetString(adClipString, rs.RecordCount)
   MSHFlexGrid1.Cols = rs.Fields.Count
   ' Set column names in the grid
   For i = 0 To rs.Fields.Count - 1
       MSHFlexGrid1.TextMatrix(0, i) = rs.Fields(i).Name
   Next
   MSHFlexGrid1.Row = 1
   MSHFlexGrid1.Col = 0
   ' Set range of cells in the grid
   MSHFlexGrid1.RowSel = MSHFlexGrid1.Rows - 1
   MSHFlexGrid1.ColSel = MSHFlexGrid1.Cols - 1
   MSHFlexGrid1.Clip = rsVar
   ' Reset the grid's selected range of cells
   MSHFlexGrid1.RowSel = MSHFlexGrid1.Row
   MSHFlexGrid1.ColSel = MSHFlexGrid1.Col
' Fisso la dimensione di ogni colonna.
 With MSHFlexGrid1
.ColWidth(0) = 800
.ColWidth(1) = 1200
.ColWidth(2) = 1200
.ColWidth(3) = 1400
.ColWidth(4) = 800
.ColWidth(5) = 1200
.ColWidth(6) = 3700
.ColWidth(7) = 1600
'Fisso la centratura del testo nella colonna
.ColAlignment(0) = flexAlignCenterCenter
.ColAlignment(1) = flexAlignCenterCenter
.ColAlignment(2) = flexAlignCenterCenter
.ColAlignment(3) = flexAlignCenterCenter
.ColAlignment(4) = flexAlignCenterCenter
.ColAlignment(5) = flexAlignCenterCenter
.ColAlignment(6) = flexAlignCenterCenter
.ColAlignment(7) = flexAlignCenterCenter
End With
rs.MoveFirst
Con l'aggiunta di una semplice gestione errori per quando la ricerca ha
esito nullo e quindi il recordset non può spostarsi...