Newsgroup: it.comp.appl.access
Titolo: Esportazione in formato Excel - funziona senza Office installato?

Sto usando questa riga
 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, query, file
 
da una procedura Access 2013, su un pc Win10 vergine sul quale e' 
installato solamente il run-time di Access
Dovrebbe funzionare anche senza Office intero (quindi con Excel) oppure 
si appoggia a pezzi di Excel e quindi e' normale che non funga?
C'e' modo di uscire in formato Excel (xls/xlsx/csv) avendo solo il 
runtime di Access installato?


Il  DoCmd.TransferText   non vale perche' necessita di "specifica 
esportazione", che non riesco a fornire perche' la query passata al 
comando di esportazione, puo' variare le colonne restituite
Che poi non si capisce come mai sul 2003 la specifica esportazione non 
sia necessaria, mentre sul 2013 sia indispensabile
Oppure se si fosse modo di creare la 'specifica esportazione' in 
funzione della query fornita, potrei usare anche il TransferText

Per quanto ho avuto modo di vedere senza Excel è un problema.
 
La specifica di esportazione si può editare anche a runtime... ma sei certo non sia meglio esportare in CSV.
Csv non ha nulla a che vedere con Excel... basta ciclare il recordset è scrivere il file usando un CommaSeparator... io uso TAB oppure ;
Access tuttavia consente in modo nativo:
 
DoCmd.TransferText acExportDelim, , "tmpExport", "C:\export.csv"
 
@Alex


No, almeno Access 2013 32bit su file mdb ver 2003 non consente quel 
comando li, che ho provato come primo tentativo
 
Sembra sia indispensabile la specifica esportazione
Anche se nell'help e' indicata come opzionale
Ho anche provato a crearla al volo, seguendo questo esempio
 
https://www.access-programmers.co.uk/forums/showthread.php?t=25408
 
(terz'ultimo post)
 
Ma sull'  ExportSpec_Add   va a scrivere sulla MSysIMEXSpecs e sul mio 
db mica c'e' quella tabella li', vedo le altre, nascoste, ma questa nin 
ce sta'
Eppure la procedura creazione 'specifica esportazione' l'ho seguita, 
esportando una tabella come testo, alla fine procedura salvando la 
specifica con nome Esportazione_nome_query, quindi almeno una dentro al 
db devo avercela
Se entro e la vedo col suo bel nome, induve l'e' che Access se la memorizza?
 
 
 

Intanto le tabelle da usare sono 2... 
 
MSysIMEXSpecs
MSysIMEXColumns
 
Se non ricordo male relazionare 1-M
 
Hai 2 modi per generarle... generi 1 specifca fittizia che poi cancelli... ed Access le crea poi tu le usi...
 
Oppure con 2 comandi DDL le crei tu...
Qui trovi gli scripts: 
 
https://social.msdn.microsoft.com/Forums/en-US/7dae40f1-b751-4f04-928b-b24c4a4cd1d5/problem-with-creating-the-msysimexspecs-table?forum=accessdev
 
 
In qualcuno dei miei giochetti avevo fatto un wizard per creare ed usare le specifiche di importazione... ma non ricordo più quale e dove...
 
Se trovo qualche cosa... lo dico.
 
Considera seriamente di scrivere da codice... sono 5 righe in tutto.
 
@Alex


Si, tabelle create usando quelle query
Non capisco perche' non ci vedo niente dentro dopo che ho salvato una 
specifica di esportazione
E l'ho salvata perche' se chiudo e riapro l'mdb la vedo
Ho provato anche la creazione da vba seguendo questo esempio
 
https://www.access-programmers.co.uk/forums/showthread.php?t=25408
 
 
Ma crea niente dentro le MSys..
E non da' nessun errore
Forse che le specifiche esportazione vengono salvate da qualche altra 
parte sul 2013 ?


premetto che NON ho consultato nessuno dei link indicati
 
e che si può appurare la presenza delle tabelle di sistema
MSysIMEXSpecs 
MSysIMEXColumns 
 
manualmente: valorizzando a SI' il flag mostra tabelle di sistema
da codice: scorrendo i nomi tabelle che iniziano con "MSys"
 
poi penso che accada questo:
 
con l'import da Excel NON si aggiungono righe nelle due tabelle
 
con l'import da file testo (txt, csv ...)
si aggiungono righe nelle due tabelle SE si conferma manualmente
la registrazione della specifica DAL PULSANTE <AVANZATE>
che appare nelle form di guida all'operazione
(pulsante non presente nell'import da Excel)
 
Al termine delle operazioni guidate appare UN'ALTRO tipo di salvataggio,
che credo sia quello recuperabile con
docmd.RunSavedImportExport
 
ma non sarà di aiuto se cambiano percorsi e/o nomi degli oggetti 
interessati nelle operazioni successive
 
 


Si, l'export su file di testo di una tabella dati e' la procedura che ho 
usato, alla fine della quale ti viene chiesto se vuoi salvare la 
specifica esportazione ed il nome da affibbiargli
E difatti la ritrovo (la specifica esportazione) se chiudo e riapro il 
file mdb, vuol dire che da qualche parte Access l'ha salvata
Di sicuro NON dentro le due tabelle incriminate perche' se ci guardo 
dentro non si vede nessuna riga