Esportare dati filtrati in una tabella temporanea

di il
11 risposte

Esportare dati filtrati in una tabella temporanea

Salve a tutti,

in una maschera ho creato il seguente filtro:

task = "select * from tblArchivio where (" & strCriteria & ") order by [Cognome]"

vorrei copiare i dati filtrati in una nuova tabella temporanea tblFiltro.

Come posso fare?

grazie

Maurizio

11 Risposte

  • Re: Esportare dati filtrati in una tabella temporanea

    Hai un valido motivo per esportare/accodare in una tabella temporanea? Potresti considerare quel recordset filtrato come una query.

  • Re: Esportare dati filtrati in una tabella temporanea

    Ciao

    La tabella temporanea la devo esportare in excel togliendo alcuni campi

    Maurizio 

  • Re: Esportare dati filtrati in una tabella temporanea

    Puoi fare tutto con una query.

  • Re: Esportare dati filtrati in una tabella temporanea

    Hai ragione ma non so come trasformare in query  l'istruzione che ho scritto:-(

    Maurizio 

  • Re: Esportare dati filtrati in una tabella temporanea

    Da dove viene strCriteria?

  • Re: Esportare dati filtrati in una tabella temporanea

    È una stringa che costruisco io in base ad alcune scelte fatte dall'utente 

  • Re: Esportare dati filtrati in una tabella temporanea

    21/03/2024 - Doggydog ha scritto:


    È una stringa che costruisco io in base ad alcune scelte fatte dall'utente 

    È frutto di un insieme di “concatenazioni/espressioni” logiche oppure da un insieme di istruzioni in VBA? 

    Nel primo caso la query deve contenere la stessa ricostruzione.

    Nel secondo caso potresti creare una Public Function in un modulo standard, quindi aggiungere una colonna nella query che sfrutta la Function.

    Avere informazioni più dettagliate, aiuterebbe meglio la comprensione.

  • Re: Esportare dati filtrati in una tabella temporanea

    La tabella Temporanea direi che non è funzionale, per esportare dati in Excel ci sono vari metodi, purtroppo nel tuo caso usi un metodo di applicazione dei criteri che poco ti aiuta… se avessi usato le proprietà FILTER di Mascher avresti avuto a disposizioe il RS già filtrato oppure la WHERE CONDITION da applicare in modo più funzionale…!

    In ogni caso se devi selezionare i campi da usare, io avevo fatto un Tool per fare queste cose, ma il tool è molto complesso da implementare.

    https://1drv.ms/u/s!Are2sGzrs4WCqjxL_OqLmG3Fzos3?e=1IcZab

    Ho allegato una vecchia versione, molto semplificata, ma rende l'idea se vuoi provarla.

    In buona sostanza, puoi realizzare una maschera di gestione con una ListBox in MultiSelezione estesa che elenca i campi dell'Origine Records della maschera, le ListBox hanno questa impostazione “Tipo Origine riga=Elenco Campi”, se gli dai la stessa origine della Form ottieni tutto.

    Dall'elenco selezioni i campi che ti serve esportare, a quel punto ricostruisci una Query di Query per filtrare i campi, semplicemente facendo una cosa simile:

    SELECT <Campo1,Campo3,Campo5> FROM (SELECT ORIGINALE)

    La Query originale la prendi dalla proprietà RecordSource di Form, concateni le stringhe ed hai finito.

    Questa Query la puoi poi esportare salvandola come Query TEMP ed esportandola con il metodo TransferSpreadSheet.

    E' più difficile da spiegare che da fare…

  • Re: Esportare dati filtrati in una tabella temporanea

    Hai ragione.

    In una maschera continua di nome Archivio (prende i dati dalla tabella anch'essa di nome Archivio), in alto l'utente inserisce dei dati da cercare e io costruisco una stringa per poi filtrare i dati

    Ad esempio:
    strCriteria = "[Nome]= " & "'" & Forms!Archivio!RicercaNome & "'"

    alla fine ho scritto:
    task = "select * from Archivio where (" & strCriteria & ") order by [Cognome]"
    DoCmd.ApplyFilter task
    Forms!Archivio.FilterOn = True

    il filtro funziona bene ma adesso c'è la necessità di esportare in Excel i dati filtrati. Non tutti i campi visualizzati nella maschera continua ma solo alcuni.

    Ho pensato di creare una tabella temporanea con il risultato del filtro, poi con una query estraggo solo i campi che mi interessano e li esporto in Excel. I campi da estrarre potrebbero variare ma creo 2-3 pulsanti per fare questa operazione.

    Mi sono bloccato nel portare i dati filtrati in una tabella temporanea. Poi so come procedere

  • Re: Esportare dati filtrati in una tabella temporanea

    Ok grazie

    Ci provo

    Buona giornata

    Maurizio 

  • Re: Esportare dati filtrati in una tabella temporanea

    La sparo grossa…e senza provare. Che succede se crei la query così:
    1. Apri una nuova query in visualizzazione struttura
    2. Importi la tabella Archivio
    3. Trascini l'asterisco nella griglia (ma non Visualizzato)
    4. Trascini i campi che desideri visualizzare
    4. In Criterio del campo asterisco scrivi
    [Maschere]![Archivio].Filter

    Boh!

Devi accedere o registrarti per scrivere nel forum
11 risposte