+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Esportare query vba o recordset in excel

  1. #1
    maxs84 non è in linea Scribacchino
    Ciao a tutti,
    ho googlerato molto prima di aprire questo 3d.
    Ho due esigenze, che vorrei risolvere nella maniera più snella possibile.

    1-Una è quella di esportare il risultato di una query su un file excel.
    Ho creato e salvato la query (EsamiExport) come oggetto e tramite questa riga, ottengo l'effetto desiderato:
    DoCmd.TransferSpreadsheet acExport, 8, "EsamiExport", "c:\Voti esame", False, ""
    
    Adesso mi chiedo, potrei scrivere la stessa query su VBA e inserirla in qualche modo sulla stessa riga di codice per esportarla?

    2-Vorrei fare la stessa cosa, ovvero esportare su una cartella excel, il contenuto di una maschera filtrata...

    In rete, ho trovato diverse routine molto complesse... speravo in qualcosa di semplice come per TransferSpreadsheet acExport.
    Ho anche trovato una demo del buon @Alex che addirittura permette di scegliere quali campi esportare!!

    Grazie.

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da maxs84 Visualizza il messaggio
    ...
    In rete, ho trovato diverse routine molto complesse... speravo in qualcosa di semplice come per TransferSpreadsheet acExport.
    Ho anche trovato una demo del buon @Alex che addirittura permette di scegliere quali campi esportare!!

    Grazie.
    Facci capire, vuoi fare cose più complesse ma con codice semplice...? Quindi chi fa le cose con codice complesso deve essere abbastanza "stupido"...!
    Giusto per tarare la risposta... perchè quello che chiedi, necessita di elaborazioni, di conseguenza non puoi farlo con 1 riga di codice come pensi... devi andare perforza in direzioni più complesse.
    ℹ️ Leggi di più su @Alex ...

  3. #3
    maxs84 non è in linea Scribacchino
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Facci capire, vuoi fare cose più complesse ma con codice semplice...? Quindi chi fa le cose con codice complesso deve essere abbastanza "stupido"...!
    Giusto per tarare la risposta... perchè quello che chiedi, necessita di elaborazioni, di conseguenza non puoi farlo con 1 riga di codice come pensi... devi andare perforza in direzioni più complesse.
    Mamma quanta polemica sterile...
    Poi, sempre se ti va, mi spieghi da dove hai dedotto che fra le righe io avessi detto che chi usa più codice è "stupido".

    Io ho solo scritto che vorrei raggiungere l'obbiettivo andando dritto alla sostanza e usando meno codice possibile, visto che qui l'unico stupido sono io.

    In rete, per esportare una query su excel, ho trovato diverse routine molto lunghe e complesse che poco comprendo, ma cercando cercando mi sono poi imbattuto su quella "banale" riga di codice che fa proprio quello che mi serve, senza fronzoli, e mi sono "accontentato" pur di non fare un brutale "ctrl-c/ctrl-v".

    Adesso, tornando ai due quesiti proposti, mi basta esportare tutto su un foglio excel magari senza stare a curare intestazioni di colonne, bordi delle celle, nome del foglio stesso, percorso e nome file etc etc

    Visto che sono ignorante preferisco meno righe in vba per poi "aggiustarmi" il file manualmente.

    Grazie.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da maxs84 Visualizza il messaggio
    Mamma quanta polemica sterile...
    Poi, sempre se ti va, mi spieghi da dove hai dedotto che fra le righe io avessi detto che chi usa più codice è "stupido".

    Io ho solo scritto che vorrei raggiungere l'obbiettivo andando dritto alla sostanza e usando meno codice possibile, visto che qui l'unico stupido sono io.

    In rete, per esportare una query su excel, ho trovato diverse routine molto lunghe e complesse che poco comprendo, ma cercando cercando mi sono poi imbattuto su quella "banale" riga di codice che fa proprio quello che mi serve, senza fronzoli, e mi sono "accontentato" pur di non fare un brutale "ctrl-c/ctrl-v".

    Adesso, tornando ai due quesiti proposti, mi basta esportare tutto su un foglio excel magari senza stare a curare intestazioni di colonne, bordi delle celle, nome del foglio stesso, percorso e nome file etc etc

    Visto che sono ignorante preferisco meno righe in vba per poi "aggiustarmi" il file manualmente.

    Grazie.
    Non è polemica... ma quando sento considerazioni che di TECNICO non hanno nulla, esprimere disappunto è opzionale... ma di certo deve costringere a riportare il ragionamento sul tecnico, altrimenti si chiude la discussione.

    Quanto chiedi nel punto 2(Esportare il contenuto di una Form), che poi è il vero oggetto del discorso, dipende molto da come lavori, e, stai BANALIZZANDO la domanda e le soluzioni quando dici che la riga di codice fa quello che chiedi... perchè dietro servirebbe un ragionamento decisamente più costruttivo e costruito...

    Ti faccio un esempio, affinhè tu capisca che il LIMITE è nel MODO di lavorare non nelle risposte che si ottengono...!

    Supponi di avere una Form alimentata da una Tabella o Query, i dati nella Form di norma possono essere FILTRATI ed ORDINATI..., ed in un gestionale direi che è normale, poi tu non ne hai bisogno... BASTA SAPERLO.

    I metodi che lo sviluppatore mette in essere per FILTRARE/ORDINARE i dati rappresentati nella maschera condizionano moltissimo il metodo che si deve usare per la manipolazione successiva degli stessi, non da meno l'esportazione.

    Diciamo che nella normalità di uno sviluppo flessibile e funzionale, difficilmente si MODIFICA il predicato SQL di una QUERY riassegnandola all'oggetto per filtrare e riordinare i dati in una maschera, ma si utilizzano gli strumenti che il sistema mette a disposizione, vale a dire FILTER e ORDERBY, propreties di Form.

    Se usi pertanto il modo più flessibile, chiaramente ti inibisce la possibilità di usare il metodo che hai trovato e che con 1 riga fa tutto... perchè non hai una QUERY corrispondente, ma all'origine dati vanno applicati i criteri WHERE ed ORDERBY... cosa che complica molto il tutto se la Query di Iniziale ha già dei Criteri di BASE da mantenere, quindi personalmente reputo questo sistema tecnicamente poco funzionale.
    La soluzione migliore, esige che sia usato il Recordset di mashera che rispecchia esattamente quello che è il MOSTRATO... e quì per chi non ha basi tecniche il problema inizia a porsi...

    Pensa solo a chi lascia abilitati i FILTRI in base a maschera nativi dei Menù che nemmeno sono intercettabili in modo completo da Eventi di Form...

    Queste osservazioni sono quelle che devono essere fatte prima con consapevolezza, tu ora fai le tue, ed in base a come hai sviluppato puoi decidere di "RAGIONARE TECNICAMENTE" o complicarti la gestione.
    ℹ️ Leggi di più su @Alex ...

  5. #5
    maxs84 non è in linea Scribacchino
    I records che mostra la maschera sono il risultato di una query scritta su "Origine record" della scheda "Dati" delle proprietà della maschera ed essendo una lista di allievi, vengono ordinati alfabeticamente per cognome e nome (order by appunto).

    Inoltre, sulla stessa maschera, sono presenti diverse combobox che uso per filtrare i dati della query.
    In questo caso il filtro viene abilitato da vba con:
    Me.Filter = "filtro"
    Me.FilterOn = True

    Spero di avere risposto.

  6. #6
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da maxs84 Visualizza il messaggio
    I records che mostra la maschera sono il risultato di una query scritta su "Origine record" della scheda "Dati" delle proprietà della maschera ed essendo una lista di allievi, vengono ordinati alfabeticamente per cognome e nome (order by appunto).

    Inoltre, sulla stessa maschera, sono presenti diverse combobox che uso per filtrare i dati della query.
    In questo caso il filtro viene abilitato da vba con:
    Me.Filter = "filtro"
    Me.FilterOn = True

    Spero di avere risposto.
    Che caso...
    Penso di averti già dato la risposta sulla soluzione... e non è quella che vede l'uso del TransferSpreadsheet...
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. esportare più query in un file excel
    Da salto quantico nel forum Microsoft Access
    Risposte: 9
    Ultimo Post: 19-06-2020, 00:29
  2. esportare 2 query in fogli specifici di excel
    Da Lorenzo Gallo nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 12-11-2012, 16:54
  3. Esportare query complessa in excel
    Da Silverfox63 nel forum Visual Basic 6
    Risposte: 13
    Ultimo Post: 01-10-2008, 22:14
  4. Esportare una query in excel
    Da Carmen nel forum ASP 3, ASP .Net
    Risposte: 0
    Ultimo Post: 16-09-2008, 10:24
  5. Esportare risultati di una query in excel
    Da queen_live78 nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 05-10-2005, 17:03