Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Esportazione in formato Excel - funziona senza Office installato?

76 views
Skip to first unread message

RobertoA

unread,
Apr 16, 2019, 10:37:25 AM4/16/19
to
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?

RobertoA

unread,
Apr 16, 2019, 10:55:13 AM4/16/19
to
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

@Alex

unread,
Apr 16, 2019, 11:23:35 AM4/16/19
to
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

RobertoA

unread,
Apr 16, 2019, 12:34:48 PM4/16/19
to
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?



@Alex

unread,
Apr 16, 2019, 1:39:31 PM4/16/19
to
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

RobertoA

unread,
Apr 17, 2019, 2:23:26 AM4/17/19
to
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 ?

GiorgioDaPrato

unread,
Apr 17, 2019, 9:04:32 AM4/17/19
to
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


RobertoA

unread,
Apr 17, 2019, 10:02:26 AM4/17/19
to
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



0 new messages