Newsgroup: it.comp.appl.access
Titolo: Caricamento di un recordset in una matrice

Public Function EsportaTutto()
Dim DB As Database, Rs As Recordset
Dim tdf As TableDef 'servirà per la ricerca tabella
Dim i As Integer, j As Integer, numRec As Integer, numCdc As Integer, k As
Integer
Salve,
Sto cercando di caricare un recordset in un vettore, per poi usare il
vettore stesso come fonte per una query con parametri
La tabella da caricare (tCDC) è un elenco di centri di costo, in pratica
carico solo il primo record (cioè rs(0)= 3100) e poi si blocca dicendomi che
"item not found in this collection, run time error 3265". Quello che non
riesce a trovare rs(i)
Cosa posso fare?
Questo è il codice..
Grazie.
Max
Dim RsSql As String
Dim CurrentValue As Variant
Dim CurrentField As Variant
Set DB = DBEngine.Workspaces(0).Databases(0)
      RsSql = "SELECT tCDC.cdc FROM tCDC;"
      Set Rs = DB.OpenRecordset(RsSql, DB_OPEN_DYNASET)
      Rs.MoveLast
      numRec = Rs.RecordCount
      Rs.MoveFirst
Do Until Rs.EOF 'cioè arriva all'ultimo record
          For i = 0 To numRec
              CurrentField = Rs(i)
          Rs.MoveNext
          Next i
 Loop

Ciao a tutti ho un grosso problema.
Ho una tabella con dei numeri , io devo trovare quali di questi numeri
sommandosi tra loro mi danno un certo totale che gli devo indicare di volta
in volta.ù
La quantità dei numeri che possono dare il mio risultato non sono fissi.
Come posso fare.
Grazie Sove

.


 Questo è il codice..
inizia con il guardarti come si dichiarano le matrici:
es. Dim arr(10,3)
in particolare tu hai bisogno di una matrice dinamica, quindi guardati come si
usa redim
es. ReDim Preserve arr(10,5)
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
mailto:
it_db_...@usa.net
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------

 > in volta.
Questi numeri li devi sommare a coppie, a terne o in una combinazione di
addendi variabile e non definibile?
--
Silvio
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access

 wrote in message
8vh423$2fp$1...@fe2.cs.interbusiness.it...



Per prima cosa rispondi dopo i messaggi precedenti, grazie. :-)
Non mi ricordo + molto di calcolo combinatorio, ma mi sembra una
permutazione di combinazioni.
Premesso che x posizione intendo la posizione dell'addendo, cioè, se abbiamo
3 + 5 + 2 + 9, 3 è in posizione 1, 5 è in posizione 2, 2 è in posizione 3, 9
è in posizione 4, la traccia potrebbe essere:
1) - Leggi il 1° valore
        controlli che non sia maggiore del risultato
2) - leggi il valore successivo
        controlli che non sia maggiore del risultato
        lo aggiungi alla somma precedente
        controlli che non sia maggiore del risultato
se minore del risultato
        vai al punto 2)
se = risultato
        hai finito
se maggiore del risultato
        scarti l'ultimo valore
se non è l'ultimo valore in tabella
        vai al punto 2)
altrimenti
        scarti il valore di posizione precedente (se esiste)
        vai al punto 2)
Non sono sicuro di aver considerato tutte le possibilità (controlla): quello
che appare chiaro è che devi avere un vettore, dimensionato a n, con n=n°
dei valori,  dove memorizzi i contatori delle varie posizioni.
Procurati un PC molto veloce e dotato di una buona ram, di tanto tempo a
disposizione e buon divertimento.



Ti ringrazio per l'aiuto , ora provo a metterlo in pratica.
Ciao Davide.

 Non ho capito perche' vuoi fare questa cosa, ma va bene lo stesso
Lo scopo che vorrei raggiungere è questo. Da una tabella contenente tutti i
dati contabili, tra cui i centri di costo, vorrei lanciare una serie di
query, una per centro di costo. Una volta creato il recordset lo esporto su
un foglio excel e lancio una macro per formattarlo. Dopodichè riprendo il
ciclo con il successivo centro di costo. Perciò nel codice che ho pubblicato
ho calcolato il numero di centri di costo disponibili, dopodichè ho
dichiarato (o perlomeno pensavo di averlo fatto) la matrice sapendo già da
subito quanti dati doveva contenere, e quindi il numero di iterazioni.
Infine, ammesso che sia possibile, vorrei passare ciclicamente il dato della
matrice in un'espressione del tipo RsSql = "SELECT * FROM [tCDCex] ecc. e
ottenere quello che serve.
Non so se sia corretto, ma è l'unica cosa che mi è venuta in mente. Al
momento riesco solo ad esportare un centro di costo alla volta.
Grazie.
Ciao


 un foglio excel e
BLA BLA BLA
Una volta creato il recordset quello che fai su excel lo fai con access!!!
Antonio


Era esattamente quello che volevo dire io. Grazie Antonio x l'aiuto.
Ciao


 Era esattamente quello che volevo dire io. Grazie Antonio x l'aiuto.
Eh he he
Prego
Antonio