Newsgroup: it.comp.appl.access
Titolo: Come aggiornare il recordset

Salve ho sempre il problema di aggiornare una maschera che contine un 
recordset di una query con i paramtri , vorrei che i risultati della 
maschera fossero ordinati o per data o per RagioneSociale, sfrutto la 
proprieta orderby, decidendo come ordinarli con una combo-bo; funziona 
tutto ok solo che quando vario i valori della combo la maschera dovrebbe 
aggiornarsi ? come fare
Grazie
Rosario Ciotola


Devi sfruttare le proprietà OrderBy e OrderByOn della Form.
Altrimenti puoi anche modificare al volo lo statement SQL che sta alla base 
della form, aggiungendo o togliendo l'ordinamento desiderato.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

 
utilizzo orderby
ma come faccio a modificare SQL della query?

 ma come faccio a modificare SQL della query?
Se l'origine dati della form è una query di Access, allora non puoi modificarne 
il codice SQL in maniera banale da codice VBA.
Se, invece, l'origine dati della form è uno statement SQL, allora puoi gestire 
il tutto via codice. Sull'evento AfterUpdate della combo provvedi a modificare 
quello statement inserendo la clausola ORDER BY oportuna.


Gabriele Bertolucci ha scritto:

Scusa Gabriele ma forse tu riesci a portarmi alla soluzione ti spiego:
Ho una maschera che richieda un intervallo di date (DAL - AL) e ho un 
combo-box per decidere se ordinare i risultari per Data (cioe' DAL) o 
per RagioneSociale.
I parametri di Data agiscono su di una query che mi visualizza i risultati.
Questa maschera ha una sottomoschera al suo interno che visualizza i 
risultati della query, se vario le date in automatico mi aggiorna i 
risultati della sottomaschera.
Ho inserito la proprieta OrderBy  determinata dlla combo  al caricamento 
della sottomaschera; solo che mentre se vario l'intervallo di data la 
sottomaschera mi visualizza i risultari variati , ma se vario il combo 
non riesco a far cambiare l'ordinamento dei risultati, devo aprire e 
chiudere la visualizzazione struttura per avere la variazione
Please Help :-)
saluti
Rosario Ciotola

 chiudere la visualizzazione struttura per avere la variazione
Questo ti succede perché non c'è alcun legame tra lo statement SQL contenuto 
nella query e la combobox.
Purtroppo non puoi modificare la query inserendo una clausola dinamica per 
l'ordinamento.
Dal momento che gli ordinamenti che ti interessano sono solo due, quello 
che ti suggerisco di fare è una soluzione alternativa.
Modifica la prima query in modo da comprendere uno dei due ordinamenti, diciamo 
quello per data.
Duplica questa query e poi modifica la copia in modo che ordini i risultati 
per ragione sociale.
A questo punto sfrutti l'evento AfterUpdate della combo box, nel quale andrai 
a modificare la proprietà recordsource della sottoform, assegnandole il nome 
della relativa query.


 Ok.





Gabriele hai capito correttamente,
ok duplico la query , non mi e' chiaro dopo
Afterupdate del combo-box che deve fare? cioe' come assegno la query chemi
serve alla subform?
Grazie 10000 per il tuo chiariemento.
Rosario Ciotola
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie 10000 per il tuo chiarimento.
Tasto destro sulla combo -> Proprietą.
Nella finestra proprietą scegli la pagina Eventi.
Nella pagina Eventi clicca sulla combo "Dopo aggiornamento" e scegli "Routine 
evento".
Adesso premi il pulsante "..." che si trova alla destra della suddetta combo.
Access ti porta nella routine di codice associata all'evento.
In questa routine scriverai qualcosa di simile a questo:
   If Me!nomecontrollocombobox = unodeiduevalori Then
      Me.nomecontrollosubform.RecordSource = nomequeryuno
   Else
      Me.nomecontrollosubform.RecordSource = nomequerydue
   End If
Salvi il tutto provi il funzionamento della maschera.
Se ancora non dovesse funzionare, potrebbe voler dire che č necessario fare 
anche un Me.nomecontrollosubform.Requery, ma prima prova senza.
