Newsgroup: it.comp.appl.access
Titolo: RecordSource in chiusura maschara

Si tratta di un argomento gia trattato qua e là in rete, ma non riesco a 
venirne a capo...
Quando chiudo un applicativo Access, la proprietà RecordSource (Origine 
Record) di una maschera conserva la stringa della query alla successiva 
riapertura.
Di conseguenza, quando l'applicativo apre quella maschera, la query viene 
rieseguita bloccando Access fino al completamento. Può durare diversi 
secondi se la query recupera parecchi dati...
Vorrei dunque cancellare la proprietà RecordSource, che viene effettivamente 
azzerata con il comando Me.RecordSource="" nei due eventi "Su scaricamento" 
e "Su chiusura", ma alla successiva riapertura la query rimane nelle 
proprietà della maschera...!!!
Chiedo quindi qual è il modo per azzerare la proprietà RecordSource, grazie. 
 

Se generi un MDE/ACCDE, perchè questi sono quelli da usare... non accade.
 
Se vuoi usare MDB/ACCDB, allora vai in struttura, cancella il contenuto del RecordSource, e vedrai che assegnandolo/rimuovendolo da Codice non rimane.
 
@Alex

RecordSource, e vedrai che assegnandolo/rimuovendolo da Codice non rimane.
 
Uso il secondo formato, quindi l'unico modo è la cancellazione manuale... 
Grazie lo stesso. 
 

Ma forse non hai capito bene...
La cancellazione la fai solo 1 volta la prima in cui rimuove il riferimento che hai  inserito tu a mano quando hai disegnato l'oggetto.
Allo stesso modo cancelli... fatto quello da lì in avanti non serve più farlo a mano ma da codice...
 
@Alex


Purtroppo anche facendo cosi, il testo della query rimane nella proprieta 
Origine.
Non sono sicuro che venga, invece, cancellato lanciando l'applicativo in 
modalità Runtime, domani controllo. 
 

 modalità Runtime, domani controllo.
 
appare una situazione con recordsource variabile (imposto da codice)
 
cosa accade se imponi il recordsource "di avvio" (ANCHE NULLO) da codice
all'apertura (o caricamento, non ricordo bene l'evento migliore) ? 
 
In pratica è una situazione simile a quella della definizione dei filtri

 In pratica è una situazione simile a quella della definizione dei filtri
 
Infatti utilizzo proprio questo meccanismo:
- all'avvio impongo RecordSource="" (ma non ha effetto)
- durante l'utilizzo, l'utente inserisce una stringa di ricerca in una 
textbox e poi preme il pulsante Cerca; il programma VBA compone la stringa 
della query e la assegna a RecordSource; questo succede parecchie volte 
durante l'esecuzione del programma
- all'uscita non riesco a cancellare con RecordSource="" né su scaricamento 
nè su chiusura maschera.
 
 


se la query origine è sempre la stessa,
e cambiano le righe trovate in corrispondenza del (i) criterio(i)
puoi provare ad imporre un criterio che certamente NON ottiene righe
(facendolo equivalere a RecordSource="")
 
... per la serie: se maometto non va alla montagna ...

... per la serie: se maometto non va alla montagna ...
 
Esatto grazie :-) a questo punto generalizzo come se fosse un metodo la 
routine di composizione della stringa-query, e poi la richiamo con parametri 
diversi a seconda dei casi. 
 

riapertura.
 
La causa del problema sembra essere la seguente: se cambio un'impostazione 
della form, la query nel recordsource viene mantenuta e quindi rieseguita 
alla successiva riapertura del programma. Per esempio: eseguo una query, poi 
scopro una colonna, quindi chiudendo la maschera mi chiede di salvare le 
impostazioni. Il salvataggio, salva anche la query nella proprietą 
RecordSource.