Sto facendo un "programmino" in VB6 ma mi sono trovato davanti un problema che non riesco a capire che senso abbia...![]()
in pratica il programma serve per calcolare automaticamente delle clasifiche di alcune gare sportive. Memorizza tutti i risultati in un db access e poi li visualizza sotto forma di classifiche creando pagine html, in modo che possano essere pubblicati sul sito dell'organizzazione sportiva.
Il problema in realtà non centra niente con la natura del programma.
In pratica quando vado a leggere con ADO i dati della tabella dei risultati mi restituisce un record in meno di quelli presenti, e non ho usato clausole particolari, solo un "SELECT * FROM tabella ORDER BY colonna DESC". Se apro il db con access vedo che il record che non mi restituisce è sempre l'ultimo della tabella.
La cosa assurda è che se prima di formulare la query ci metto un msgbox("scritta qualunque"), ADO mi restituisce il numero giusto di record, se invece non ci metto il msgbox un record non viene restituito.![]()
Che cavolo succede??? Non mi è mai capitata una cosa del genere...
Il problema lo risolverei lasciando il msgbox, ma è una cosa che non ha senso!!!
La parte problematica del codice è questa (ScoreOrder è la variabile che mi indica l'ordine dei dati):
con questo codice mi da tutti i risultati della tabella meno l'ultimo recordcodice:If (ScoreOrder = 0) Then Query = "SELECT * FROM tabella ORDER BY col DESC, col1 ASC" ElseIf (ScoreOrder = 1) Then Query = "SELECT * FROM tabella ORDER BY col ASC, col1 ASC" End If frmMainForm.adoCompetitors.RecordSource = Query frmMainForm.adoCompetitors.Refresh Dim Data As ADODB.Recordset Set Data = frmMainForm.adoCompetitors.Recordset
Se invece aggiungo il msgbox prima della formulazione della query ADo mi restituisce tutti i record. Ecco il codice che funziona:
Vi dico anche che le righe le leggo dopo con un Do While Loop, ma non penso che centri qualcosa...codice:MsgBox("") If (ScoreOrder = 0) Then Query = "SELECT * FROM tabella ORDER BY col DESC, col1 ASC" ElseIf (ScoreOrder = 1) Then Query = "SELECT * FROM tabella ORDER BY col ASC, col1 ASC" End If frmMainForm.adoCompetitors.RecordSource = Query frmMainForm.adoCompetitors.Refresh Dim Data As ADODB.Recordset Set Data = frmMainForm.adoCompetitors.Recordset
Vi prego datemi una mano...![]()
grazie a tutti

Rispondi quotando

: