Newsgroup: it.comp.appl.access
Titolo: Esportare immagini in Excel

Salve a tutti,
ho la necessità di esportare una query di Access in Excel. Finora non ho avuto mai problemi, utilizzando il codice:
 
DoCmd.OutputTo acOutputQuery, "QueFirme", acFormatXLSX, , True
 
ora però tra i campi da esportare ce n'è uno che contiene un oggetto ole, un'immagine (la scansione di una firma), ma quando esporto la query il campo in Excel mi risulta vuoto.
 
Ho letto un articolo di Microsoft dove spiega come esportare i dati in Excel:
https://support.office.com/it-it/article/esportare-dati-in-excel-64e974e6-ae43-4301-a53e-20463655b1a9#top
 
 
dove dice che "Gli elementi grafici, ad esempio i logo, i contenuti dei campi Oggetto OLE e gli allegati inclusi nei dati di origine, non vengono esportati."
 
ma si riferisce all'esportazione da menu.
 
Non c'è un modo per esportare da VBA anche le immagini?
Tra l'altro la mia tabella contiene una sola riga, con il nominativo di chi firma e la sua firma scansionata.
Uso Access 2016 su Windows 10.
 
Grazie
Franco


devi per forza salvarla in un campo ole la firma? non è pratica consigliata
 
se la salvi in un file immagine esternamente in una apposita cartella
tipo
c:\mieFirme\firma.png
ti propongo questa soluzione
 
sapendo che la firma è li e avendo la tua query una sola riga  non serve 
neppure esportare la query
se sai il nome della persona (esempio mario rossi) e il percorso della 
firma (c:\miefirme\mariorossi.png)
 
con questo codice ottieni un foglio excel con nome e firma
 
Dim objExcel As Object
Dim objWorkbook As Object
On Error Resume Next
Set objExcel = GetObject(, "Excel.Application")
If Err.Number Then
	Err.Clear
	Set objExcel = CreateObject("Excel.Application")
	If Err.Number Then
		MsgBox "Can't open Excel."
	End If
End If
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add
 
objExcel.Cells(1, 1) = "Mario Rossi"
objExcel.activesheet.Pictures.Insert ("c:\miefirme\mariorossi.png")
 
 
...
 
ciao
BFS
 
 
 
 
 

Premetto che userei assolutamente la soluzione di BSF... però POTREBBE porre problemi o avere qualche limite.
Ovvero serve salvare in formato che supporta le macro, quindi XLSM w non XLSX, e serve che eventualmente, in caso di Sistema inserito in un network management, acconsenta l'uso di file con le macro..., purtroppo in diverse aziende strutturate mi è capitato di constatare che questoqnon era consentito... anche nel 2020.
 
Detto ciò... qui potresti avere un suggerimento di come fare l'export
 
 
https://stackoverflow.com/questions/18232987/export-pictures-from-excel-file-into-jpg-using-vba
 
 
https://www.mrexcel.com/board/threads/export-a-picture-on-a-worksheet-to-a-file.15584/
 
 
Saluti
@Alex

Rettifico solo per una precisazione... non sono certo che il File XLSX aperto via automazione possa supportare il codice... temo di no... da cui a questo punto l'obbligo di salvare in XLSM.
 
I LINK invece sono relativi all'esportazione da excel in quanto avevo frainteso l'origine... 
 
@Alex


Grazie ad entrambi per la risposta.
La soluzione dell'oggetto ole è stata scelta per semplicità, essendo solo una l'immagine.
In realtà l'esportazione in Excel mi serve perché poi l'utente userà tale elenco per eseguire una stampa unione. Finora non esisteva il campo "Firma", è stata una richiesta successiva del responsabile che deve firmare una mole considerevole di stampati.
Quindi il campo "Firma" è in un solo record di tabella, ma tramite query genero un elenco con numerosi records contenenti la firma. La richiesta dell'utente è quella di avere la firma su tutti i records dell'elenco, così da associare il relativo campo unione in Word.
Nella soluzione di BFS, dover verrebbe inserita l'immagine? E' possibile replicarla per n righe?
Saluti
Franco


da quel che ne so, non essendo pratico di excel non puoi inserire una 
immagine dentro una cella per avere la lista nome/immagine firma sulla 
stessa riga. la puoi mettere nel foglio ed al massimo posizionare 
tramite x/y
 
e anche se fattbile ho dubbi che poi la stampa unione te la mostri la firma
 
hai valutato di realizzare la stampa attualmente in word direttamente 
come report access?
 
quando dici "è stata una richiesta successiva del responsabile che deve 
firmare una mole considerevole di stampati."
se la firma è sempre la sua, non fai prima a metterla fissa nel foglio word?
 
BFS
 
 
 
 
 


E' vero, le immagini in Excel non stanno dentro una cella, quindi quella via non é fattibile. Ho provato la stampa unione direttamente tra Word e Access, ma il campo della query contenente l'immagine restituisce in Word una stringa alfanumerica (151C1E00) e non l'immagine.
L'idea di inserire la firma scansionata direttamente in Word può andar bene, ma purtroppo in alcuni rari casi il firmatario non è sempre lo stesso, e la tabella Access delle firme può contenere anche due records.
Sto pensando anche a creare due documenti Word, uno con una firma e uno con l'altra, e trovare il modo di scegliere uno o l'altro a seconda del firmatario.
Ogni suggerimento è ben accetto.
Saluti
Franco


Scusa, ho letto meglio il tuo suggerimento, tu parlavi di creare la stampa con un report di Access: potrebbe essere una soluzione, ma gli utenti sono abituati alla stampa unione, proverò a proporla come soluzione.
Saluti
Franco


la trovo la soluzione ottimale che in più ti svincola dal avere word 
installato nel PC
 
ad esempio io la uso su un software per un cliente che fa 
formazione/sicurezza
 
a corso ultimato quando vanno stampati gli attestati un automatismo 
legge il campo che contiene il nome del docente e carica nell'attestato 
la relativa firma
 
tutti i docenti hanno dovuto semplicemente scansionare la loro firma in 
una apposita cartella
 
nella tabella docenti ho quindi il nome del docente e il percorso di 
dove si trova il file png della firma da caricare nell'attestato
 
BFS