Newsgroup: it.comp.appl.access
Titolo: aggiungere un campo ad un recordset

E' possibile creare un recordset e associarlo ad una tabella, ma poi
aggiungere un campo all'insieme fields?
Dovrei fare dei calcoli e mostrare il risultato in una maschera continua,
percio' vorrei un campo in piu', non
presente sulla tabella. Con un controllo non associato non riesco, mi serve
proprio un campo del recordset.
Ho letto da qualche parte di recordset presenti solo sul client. Qualcuno mi
saprebbe dire cosa sono? Grazie, Luca

 ha scritto nel messaggio
news:ByCG6.14486$sb5.1...@news.infostrada.it...

Creati una query basata sulla tua tabella.
Nella query aggiungi un campo calcolato, nel quale specifichi il tuo
algoritmo di calcolo.
Come origine record della maschera usa la query anzichè la tabella.
Comunque, visto che la maschera ha visualizzazione a Maschere continue, per
farlo direttamente nella maschera scrivi la formula del calcolo nell'origine
controllo della casella di testo non associata; è molto più facile no?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
TIA, Luca

 TIA, Luca
Come farei te lo ho già detto, però a te non piace.


 Come farei te lo ho già detto, però a te non piace.
Come sopra. Alla fine sto quindi tentando la carta del recordset non
associato. Che ne pensi?
Comunque, ti ringrazio per l'aiuto. Ciao, Luca


Ti assicuro che non mi sono affatto offeso: sarebbe stato sciocco l'avessi
fatto. Solo che per andare avanti nella discussione era per me necessario
capire perché tu avevi scartato una soluzione che comunque ti forniva il
risultato voluto.
Non avevo affatto capito (o tu non l'avevi mai detto) che stavi lavorando
con sql server. Non ho mai usato sql server e non conoscendo le
problematiche legate all'utilizzo di sql server, chiaramente ho insistito su
soluzioni che probabilmente non funzionano; chiaramente, invece, non ho la
giusta competenza per darti un aiuto.
Sicuramente anche il problema dei 27000 record usati con delle funzioni di
aggregazione, in termini di performance, ha una valenza diversa a seconda
che il recordset si trovi sullo stesso PC oppure no.
E' da capire anche se il risultato finale deve essere visualizzato in un
report: se così fosse, probabilmente la soluzione migliore potrebbe essere
quella di usare i totali parziali del report per ottenere ciò che ti serve.
C'è poi sempre la possibilità (come dici tu alla fine), se il recordset è
debitamente ordinato, di scorrerlo dall'inizio alla fine con un codice VBA e
crearti una tabella temporanea che riporta sia i dati prelevati dal
recordset di input che (in un campo calcolato) il valore di una variabile il
cui valore andrai ad aggiornare ogni volta che leggi un record. Così facendo
ogni record verrà letto una sola volta e quindi dovresti ottenere il massimo
della performance possibile.
C'è poi un'altra possibilità: non è necessario effettuare il calcolo su
tutti i 27000 record. Magari l'analisi va fatta solo per i record di un
determinato ordine; in quel caso puoi operare sui risultati di una query di
selezione e sicuramente la "lungaggine" delle funzioni di aggregazione non
ti peserebbe.
Forse il tuo problema andrebbe analizzato nel contesto globale del tuo
database e della sua architettura e non in maniera settoriale.


 Roberto
Grazie Luca