Aggiornare dati query da codice vba

di il
6 risposte

Aggiornare dati query da codice vba

Buon giorno,
Ho una query non associata a nessuna maschera, il cui nome è Query1. Il mio scopo è quello di aggiornare i dati di questa attraverso un pulsante su una maschera. Non ho intenzione di aprirla, ma solo di aggiornare i dati al suo interno; il motivo è che questa query è collegata ad un'altra query che deve frequentemente esportata in excel.
Come posso aggiornare la query tramite pulsante, con codice vba?

Ringrazio per l'ascolto

Jibi

6 Risposte

  • Re: Aggiornare dati query da codice vba

    Supposto che esista già una query qDati per modificarne il codice Sql si può fare nel modo seguente:
    
    Dim qry As QueryDef
        Set qry = CurrentDb.QueryDefs("Query1")
        qry.SQL = "SELECT tblDati.* FROM tblDati"
        Set qry = Nothing
    
  • Re: Aggiornare dati query da codice vba

    Grazie mille !!
  • Re: Aggiornare dati query da codice vba

    jibi ha scritto:


    ...Non ho intenzione di aprirla, ma solo di aggiornare i dati al suo interno;
    La prima cosa da verificare è se quella query è modificabile. Cerca sul forum e nel web in generale le situazioni che rendono una query non modificabile (o meglio i dati che essa contiene, ovviamente). In ogni caso la prova è facilmente realizzabile anche "a mano": se provi a modificarla e dà errore di query non modificabile ecco la riposta.
    I modi per modificare (i dati contenuti in) una query sono essenzialmente due: una query di aggiornamento o l'uso di un recordset da mettere in Edit e da "chiudere" con un Update. Probabilmente è da preferire la prima ma senza conoscere in cosa consistono le modifiche è difficile dare una risposta precisa. Il tutto in una transazione.
    Il fatto che tu non voglia aprirla non significa niente, "vederla" con la classica visualizzazione in foglio dati non ha alcun senso in questo momento (cosa che in generale non va mai fatta, visto che i dati si visualizzano in maschere e report, non aprendo le query e le tabelle).
    Ricapitolando:
    1) Metodo Execute di un oggetto QueryDef (la query di aggiornamento)
    0
    2) Aprire un recordset sulla Query1 e via di Edit, modifiche ed Update, cambio record e avanti.
    Prova con una query di aggiornamento e se sei in crisi facci sapere.

    Ops... alla luce dei post precedenti credo di aver preso una cantonata colossale. Se così è, basta ignorare il post, se invece avevo visto bene può venir buono per il proseguimento (per questo lo pubblico ugualmente)
  • Re: Aggiornare dati query da codice vba

    jibi ha scritto:


    Buon giorno,
    Ho una query non associata a nessuna maschera, il cui nome è Query1. Il mio scopo è quello di aggiornare i dati di questa attraverso un pulsante su una maschera. Non ho intenzione di aprirla, ma solo di aggiornare i dati al suo interno; il motivo è che questa query è collegata ad un'altra query che deve frequentemente esportata in excel.
    Come posso aggiornare la query tramite pulsante, con codice vba?

    Ringrazio per l'ascolto

    Jibi
    Cosa intendi per AGGIORNARE...?
    Una query è SEMPRE aggiornata al momento in cui viene eseguita... e se fosse parametrica rilegge il parametro al momento dell'esecuzione.
    Eventualmente devi assicurarti che il Valore del Parametro sia aggiornato.

    Quindi spiega bene perchè non si capisce quello che vuoi.
  • Re: Aggiornare dati query da codice vba

    Vi ringrazio molto ragazzi. Scusate se rispondo solo ora. Praticamente io ho una maschera con delle sottomaschere associate a query. una di questa query (Qy2) riepiloga al cuni dati estrapolati da un'altra query(Qy1), che è associata a una di quelle sottomaschere. aggiorno tutte queste query, e sottomaschere tramite pulsante con codice Requery. Quindi ecco il mio problema, o aggiorno una query alla volta (una sottomaschera alla volta) , e per ultima aggiorno Qy2, o pesnavo di usare il codice di Carletto

    Ringrazio molto per l 'aiuto

    jibi
  • Re: Aggiornare dati query da codice vba

    Lascia stare la modifica Runtime della query... nel tuo caso non ha senso.

    Prima cosa hai fatto una cosa troppo ingarbugliata e dovresti riflettere prima su questo...
    In ogni caso non hai ancora capito che la query non si deve aggiornare ma devi costringere l'oggetto a rieseguirla dopo le modifiche... quindi opererai 2(n) Requery in base a quanti oggetti sono coinvolti ma aggiornare l'oggetto associato non impatta sull'altro oggetto... fai molta molta molta confusione.
Devi accedere o registrarti per scrivere nel forum
6 risposte