allora
codice:
Call apri_connessione
Call apri_rsSQUADRE(56)
rsSQUADRE.MoveFirst
num_squadre = rsSQUADRE.RecordCount
ReDim lista_squadre(num_squadre)
ReDim tmp_array(num_squadre)
ind = 1
Do Until rsSQUADRE.EOF
lista_squadre(ind) = rsSQUADRE("id_squadra")
ind = ind + 1
rsSQUADRE.MoveNext
Loop
num_giornate = num_squadre - 1
Conn_Calcetto.Execute "DELETE FROM CALENDARIO_APP"
Randomize
For count = 1 To num_giornate
For count1 = 1 To UBound(lista_squadre) 'Assegno l'arrey ad un arrey temporaneo
tmp_array(count1) = lista_squadre(count1)
Next count1
Do
Do
num_squadra1 = Int((num_squadre * Rnd) + 1)
squadra1 = tmp_array(num_squadra1)
If (squadra1 <> "") Then
tmp_array(num_squadra1) = ""
Exit Do
End If
Loop
Do
Do
num_squadra2 = Int((num_squadre * Rnd) + 1)
squadra2 = tmp_array(num_squadra2)
If (squadra2 <> "") Then
Exit Do
End If
Loop
Call apri_rsCALEN_APP2(squadra1, squadra2) ' controllo se esiste l'incontro squadra1 vs squadra2 e viceversa
If rsCALEN_APP2.EOF Or rsCALEN_APP2.BOF Then
Conn_Calcetto.Execute _
"INSERT INTO CAlendariO_APP( " & _
"GIORNATA, SQ_CASA, SQ_FUORI ) " & _
"VALUES( " & count & " , " & _
Int(squadra1) & " , " & Int(squadra2) & " ) ", dbFailOnError
incontro_creato = True
Else
incontro_creato = False
End If
Call chiudi_rsCALEN_APP2
If (squadra2 <> "") And (incontro_creato = True) Then
tmp_array(num_squadra2) = ""
Exit Do
End If
Loop
continue = False
For count1 = 1 To UBound(tmp_array) 'Controllo che nell'array esistano ancora squadre
If tmp_array(count1) <> "" Then continue = True
Next count1
If continue = False Then Exit Do
Loop
Next count
Call chiudi_connessione
sembra funzionare
però a volte va in loop, penso che sia dovuto alla funzione random
mi puoi dare una mano a capire cosa può essere?