franco maggio
unread,Feb 16, 2024, 10:29:23 AM2/16/24You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Salve a tutti,
ho un'applicativo sviluppato con Access 2016 che lancia una stampa unione con Word, dopo aver creato la tabella di partenza con Excel: l'utente seleziona una serie di record da una tabella Access con la quale generare la stampa unione, io genero un file Excel con i records selezionati dall'utente e questo file.xlsx è la tabella per la stampa unione di Word.
Finora ha sempre funzionato. Ora, alla creazione del file Excel viene chiesto all'utente di assegnare una proprietà di riservatezza al file (l'azienda è passata di recente a Office 365). L'utente deve assegnare una proprietà qualsiasi, dopodiché il programma riprende normalmente. E' possibile assegnare tale proprietà (una qualsiasi) alla creazione del file?
Di seguito il listato che uso.
Function Stampa(strQuery As String, Optional strMaschera As String = vbNullString)
'avvia la stampa unione con Word
'strQuery=la query che contiene i dati da stampare
'strMaschera=la maschera di partenza
On Error GoTo Errore
Dim dblPersonale As Double
Dim objExcel As Object
Dim xlsFile As Object
Dim xlsFoglio As Object
'esporto la query
DoCmd.OutputTo acOutputQuery, strQuery, acFormatXLSX, PercorsoDB("FE") & "Assegnazioni.xlsx", False
'rinomino il foglio di Excel
Set objExcel = CreateObject("Excel.Application")
Set xlsFile = objExcel.Workbooks.Open(PercorsoDB("FE") & "Assegnazioni.xlsx")
Set xlsFoglio = xlsFile.Sheets(strQuery)
xlsFoglio.Name = "Assegnazioni"
xlsFile.Save
'conto i records nel file di Excel
dblPersonale = xlsFoglio.Cells.Find(What:="*", SearchDirection:=2, SearchOrder:=1).Row
If dblPersonale < 2 Then
MiaMsgBox "Non ci sono assegnazioni per la scelta effettuata.@Riprova.@"
xlsFile.Close
GoTo Uscita
End If
'avvio la stampa unione
xlsFile.Close
Call StampaUnione(strQuery, "\Assegnazioni.xlsx", "\Assegnazioni.docm", True)
If strMaschera = "" Then
Else
DoCmd.Close acForm, strMaschera
End If
Uscita:
Set xlsFoglio = Nothing
Set xlsFile = Nothing
Set objExcel = Nothing
Exit Function
Errore:
MiaMsgBox "Si è verificato il seguente errore:@N° " & Err.Number & " - " & Err.description & "@"
Resume Uscita
End Function
Grazie
Franco