Problema di aggiornamento subform

di il
7 risposte

Problema di aggiornamento subform

Buongiorno a tutto il forum e grazie di avermi accettato.
Ringrazio in anticipo tutti per l'eventuale aiuto. Specifico che sono un puro dilettante.
Ho un problema con l'aggiormanto dati di una subform (non so neanche se si possa fare)
1. la subform viene popolata da qry che a sua volta contine il codice di altre 3 qry di ricerca (per potere utilizzare una sola form - soluzione suggerita da @Alex)
2. le 3 qry selezionano i dati in base al valori provenienti da 3 CaselleCombinate della form principale (quindi qry_1 con selezione da cbo_1 etc.)
3. in base al valore della cbo_1 si attiva la qry_1 con "requery" popolo la subform in questione.
4. il problema sorge da adesso in poi dalla qry_2 non riesco piu a far aggiornare la subform.

Il codice per le qry inserito all'evento click della cbo_1 è il seguente

Private Sub cboLG0_Click()
    	CurrentDb.QueryDefs("Q_Veicoli_LG_All").SQL = CurrentDb.QueryDefs("Q_Veicolo_LG0").SQL
	Sm_veicoli.requery
End Sub
5. dalla seconda cbo non riesco più ad aggiornare. e non so neanche se sia possibile farlo. Visto che la subform si popola in questo modo.

Mi scuso se non sono riuscito a spiegare bene.

Grazie in anticipo

7 Risposte

  • Re: Problema di aggiornamento subform

    Non è che mi fa impazzire ma funziona
    
        DoCmd.OpenQuery "Q_VeicoliVar_E"
        DoCmd.OpenQuery "Q_VeicoliVar_T"
        Sm_Veicoli.Requery
    
    Ho creato un tbl (diciamo variabile)
    eseguo una qry di eliminazione, subito dopo una di accodamento ed il requery.
    al carimento ed alla chiusura lancio la qry di eliminazione
    
    Private Sub cboLG0_Click()
        	CurrentDb.QueryDefs("Q_Veicoli_LG_All").SQL = CurrentDb.QueryDefs("Q_Veicolo_LG0").SQL
    	DoCmd.OpenQuery "Q_VeicoliVar_E"  	'Elimina contenuto della tbl
    	DoCmd.OpenQuery "Q_VeicoliVar_T" 	'Accoda alla tbl i valori di Q_Veicoli_LG_All
    	Sm_Veicoli.Requery 			'Aggiorna la subform
    End Sub
    
    non lo so se è ortodosso per funziona. Ma cerco soluzioni, per così dire, più "eleganti"

    Grazie
  • Re: Problema di aggiornamento subform

    Non mi è chiarissimo il motivo che ti spinga a cambiare il predicato SQL... tuttavia, spesso si confonde il Container delle SubForm con l'Oggetto FORM... prova così:
    
    Private Sub cboLG0_Click()
        	CurrentDb.QueryDefs("Q_Veicoli_LG_All").SQL = CurrentDb.QueryDefs("Q_Veicolo_LG0").SQL
    	Me!Sm_Veicoli.Form.Requery
    End Sub
    oppure:
    
    Private Sub cboLG0_Click()
        	CurrentDb.QueryDefs("Q_Veicoli_LG_All").SQL = CurrentDb.QueryDefs("Q_Veicolo_LG0").SQL
    	Me!Sm_veicoli.Form.recordsource=Me!Sm_veicoli.Form.recordsource
    End Sub
    Ciao
  • Re: Problema di aggiornamento subform

    Grazie mille sempre @Alex. Disponibile come sempre. (ero in Masterdrive)

    provato
    "errore di run-time '2465'
    Errore definito dall'applicazione o dall'oggetto"
    niente da fare.
    CurrentDb.QueryDefs("Q_Veicoli_LG_All").SQL = CurrentDb.QueryDefs("Q_Veicolo_LG0").SQL
    questa era una soluzione che mi avevi suggerito tu in precedenza, che trovo sempre molto utile, utilizzando piu query di ricerca che puntano ad una sola form.
    Avevi suggerito di costruire tante qry per le ricerche che volevo effettuare. Raggrupparle in una unica qry (qry_All) associata alla form e richiamare le ricerche con quel comando. Evitando cosi di dover fare tante form identiche tanto fossero le qry di ricerca.
    Spero di essermi riuscito a spiegare...
  • Re: Problema di aggiornamento subform

    Detta così non riesco a ricostruire il suggerimento...!
    Dovrei capire meglio in cosa consistono le differenze delle Query di Ricerca.

    Ad esempio quello che riporti fatico a comprenderlo:
    
    CurrentDb.QueryDefs("Q_Veicoli_LG_All").SQL = CurrentDb.QueryDefs("Q_Veicolo_LG0").SQL
    Se hai già una query che si chiama [Q_Veicolo_LG0] non toccare la Query [Q_Veicoli_LG_All] altrimenti fai un macello di predicati SQL... ma è sufficiente modificare il RowSource della Subform
    
    Me!Sm_Veicoli.RecordSource="Q_Veicoli_LG_All"
    oppure
    Me!Sm_Veicoli.RecordSource="Q_Veicolo_LG0"
    oppure...
    Tuttavia, spesso i suggerimenti vengono dati non solo pensando a come fare le cose perfette ma anche per farle che l'utente le comprenda...
    Quindi se capisco meglio lo scenario intero, magari la soluzione potrebbe essere più funzionale e magari ora hai più dimestichezza con il codice e si trova qualche cosa di più funzionale.
  • Re: Problema di aggiornamento subform

    @Alex ha scritto:


    Detta così non riesco a ricostruire il suggerimento...!
    Dovrei capire meglio in cosa consistono le differenze delle Query di Ricerca.

    Ad esempio quello che riporti fatico a comprenderlo:
    
    CurrentDb.QueryDefs("Q_Veicoli_LG_All").SQL = CurrentDb.QueryDefs("Q_Veicolo_LG0").SQL
    Se hai già una query che si chiama [Q_Veicolo_LG0] non toccare la Query [Q_Veicoli_LG_All] altrimenti fai un macello di predicati SQL... ma è sufficiente modificare il RowSource della Subform
    
    Me!Sm_Veicoli.RecordSource="Q_Veicoli_LG_All"
    oppure
    Me!Sm_Veicoli.RecordSource="Q_Veicolo_LG0"
    oppure...
    Tuttavia, spesso i suggerimenti vengono dati non solo pensando a come fare le cose perfette ma anche per farle che l'utente le comprenda...
    Quindi se capisco meglio lo scenario intero, magari la soluzione potrebbe essere più funzionale e magari ora hai più dimestichezza con il codice e si trova qualche cosa di più funzionale.
    Scusa se non sono stato chiaro
    Le qry sono 3 LG0 LG1 E LG3 uguali ma che hanno criteri di ricerca diversi presi da 3 combobox diverse. Queste qry le faccio confluire in una form con la modalità sopra descritta. Tral'altro non posso usare tre distinte form perché questa dove faccio confluire i dati è una subform visibile nella form principale (non popup). Se fosse stata una subform aperta all'esterno della form principale il problema non si sarebbe creato.
    Modificare il rowsoruce?... Anche se la subform è all'interno della principale? Comunque a sapere come... Facile per te...

    Ps... Perdonami. Non ci riesco a spiegarmi meglio di così... Dilettante sono...

    Ps2. Grazie della pazienza.
  • Re: Problema di aggiornamento subform

    Che sia una SubForm o una Form non cambia nulla in termini di possibilità di Manipolazione... sulla parte tecnica ti ho già mostrato come cambiare il RECORDSOURCE(Origine Dati)....!

    Purtroppo come dicevo, serve un minimo di dimestichezza, pertanto se non hai la padronanza sufficiente segui la soluzione che riesci ad attuare, che tecnicamente non è il massimo ma...
  • Re: Problema di aggiornamento subform

    @Alex ha scritto:


    Che sia una SubForm o una Form non cambia nulla in termini di possibilità di Manipolazione... sulla parte tecnica ti ho già mostrato come cambiare il RECORDSOURCE(Origine Dati)....!

    Purtroppo come dicevo, serve un minimo di dimestichezza, pertanto se non hai la padronanza sufficiente segui la soluzione che riesci ad attuare, che tecnicamente non è il massimo ma...
    Provo vediamo cosa riesco a combinare. Grazie sempre per la disponibilità... e pazienza sopratutto..
Devi accedere o registrarti per scrivere nel forum
7 risposte