Post by AshericCiao,
grazie per la risposta ma non ho capito bene oppure mi sono spegato male
io:-)
praticamente io ho una lista di codici con adiacente un valore
Codice Valore
ADF 10
ASF 5
ARG 15
AWQ 20
Somma totale 50
Devo trovare i codici che sommando il rispettivo valore mi danno per esempio
25
Nell'esempio specifico 25 è dato sia dalla somma del 1° e 3° codice, sia
dalla somma del 2° e 4° codice.
Per me è indifferente che la query restituisca la somma del 1°+3° piuttosto
che la somma del 2°+4°, l'importante è che mi evidenzi i codici di una delle
due combinazione che hanno formato 25.
Non so se mi sono spiegato bene...è un pò complessa (almeno per me) come
richiesta.
Grazie
Allora non ho capito cosa aveva a che vedere Excel e biglie varie.....!
E se fossero 3 i records da sommare per ottenere 25....?
Le specifiche che hai dato sono troppo generiche, implementare una
funzione
che cicla il Recordset alla ricerca di un record piuttosto che di N i
quali sommati
danno 25(XX per generalizzare) è decisamente diversa...., credo che
tra le altre
cose, per motivi di velocità non convenga lavorare con Recordset, ma
direttamente con
una Matrice precaricata in memoria con i valori ricavati dal
Recordset...!
In sostanza si tratta di ciclare la Matrice, che io farei
Mondimensionale ma su una
variabile di Tipo:
Private Type MyField
ID_PK As Long
Valore As TuoTipoDato
End Type
Private mt() as MyField
Ora la carichi ciclando il Recordset, quindi inizi l'algoritmo di
calcolo partendo dal primo
all'ultimo, poi dal 2° all'ultimo, poi dal 3° all'ultimo....sempre
che tu non voglia ipotizzare la somma di N records come ti dicevo
prima....!
@Alex
nel caso di N records, una soluzione potrebbe anche essere quella di
utilizzare una variabile long ogni 30 records (per esempio, 80 records, 3
variabili) ed utilizzare il singolo bit come marcatore per ogni record. Per
esempio, se abbiamo 25 records, e il contatore incrementale di uno è
arrivato al numero 11256, significa che:
11256 binario 10101111111000
Cioè il numero 11256 corrisponderà alla somma dei records che hanno il bit
postato a 1, cioè il n. 4,5,6,7,8,9,10,12 e 14
Così si è sicuri, una volta arrivati a 2^26-1 (che sarà l'ultimo valore per
l'incremento, 67.108.863 bin 1111111111111111111111111) di aver eseguito
tutte le combinazioni possibili
Michele